diff --git a/.github/workflows/crowdin-download-workflow.yml b/.github/workflows/crowdin-download-workflow.yml index 3e9d3aee43..281f45399b 100644 --- a/.github/workflows/crowdin-download-workflow.yml +++ b/.github/workflows/crowdin-download-workflow.yml @@ -1,14 +1,15 @@ name: Crowdin Download Action on: + workflow_call: workflow_dispatch: inputs: target_branch: description: "Branch to run this workflow on" required: true default: "main" - schedule: - - cron: '25 20 * * *' # Runs daily at 20:25 UTC (15:25 Central) + # schedule: + # - cron: "20 14,18,22 * * 1,2,3,4,5" # Runs at 20 minutes past beginning/middle/end of day Mon-Fri (UTC-6) (an hour after the upload action) permissions: contents: write @@ -19,10 +20,8 @@ jobs: runs-on: ubuntu-latest env: - TARGET_BRANCH: - ${{ github.event.inputs.target_branch || 'main' }} - BRANCH_NAME: - feature/crowdin-download-${{ github.event.inputs.target_branch || 'main' }} + TARGET_BRANCH: ${{ github.event.inputs.target_branch || 'main' }} + BRANCH_NAME: feature/crowdin-download-${{ github.event.inputs.target_branch || 'main' }} steps: - name: Checkout target branch diff --git a/.github/workflows/crowdin-manual-workflow.yml b/.github/workflows/crowdin-manual-workflow.yml new file mode 100644 index 0000000000..7504086f2c --- /dev/null +++ b/.github/workflows/crowdin-manual-workflow.yml @@ -0,0 +1,12 @@ +name: Crowdin Manual Upload and Download + +on: + workflow_dispatch: + +jobs: + trigger-upload: + uses: ./.github/workflows/crowdin-upload-workflow.yml + + trigger-download: + needs: [ trigger-upload ] + uses: ./.github/workflows/crowdin-download-workflow.yml diff --git a/.github/workflows/crowdin-upload-workflow.yml b/.github/workflows/crowdin-upload-workflow.yml index f888ae2783..017299609f 100644 --- a/.github/workflows/crowdin-upload-workflow.yml +++ b/.github/workflows/crowdin-upload-workflow.yml @@ -1,9 +1,10 @@ name: Crowdin Upload Action on: + workflow_call: workflow_dispatch: - schedule: - - cron: '25 13 * * *' # Runs daily at 13:25 UTC (08:25 Central) + # schedule: + # - cron: "20 13,17,21 * * 1,2,3,4,5" # Runs at 20 minutes past beginning/middle/end of day Mon-Fri (UTC-6) jobs: crowdin-upload: diff --git a/Dockerfile b/Dockerfile index 9c289c7b24..693278c151 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,12 +24,13 @@ RUN yarn stellar-cli:build --no-minify --cli-ref=main RUN yarn stellar-cli:fix-links ENV NODE_OPTIONS="--max-old-space-size=4096" -RUN if [ "$BUILD_TRANSLATIONS" = "True" ]; then \ - yarn docusaurus build --no-minify; \ - else \ - # In the preview build, we only want to build for English. Much quicker - yarn build --no-minify; \ - fi +# RUN if [ "$BUILD_TRANSLATIONS" = "True" ]; then \ +# yarn docusaurus build --no-minify; \ +# else \ +# # In the preview build, we only want to build for English. Much quicker +# yarn build --no-minify; \ +# fi +RUN yarn build --no-minify FROM nginx:1.29 diff --git a/README.md b/README.md index 31f303feee..f9825bbc9c 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,6 @@ Welcome to the official home repository for [Documentation][docs] for the [Stell - [Using Markdown](#using-markdown) - [Markdown Basics](#markdown-basics) - [Custom Markdown](#custom-markdown) - - [Alert](#alert) - - [Code Example](#code-example) ## Contributing @@ -151,44 +149,39 @@ Our repository uses some custom React components that can be used inside the **Make sure that there is an empty line within the wrapper.** For example, ```text - + -Note: the testnet is reset every three months, so when building on it, make sure you have a plan to recreate necessary accounts and other data. For more info, check out the [best practices for using the testnet](../../learn/fundamentals/networks.mdx). - - - +```javascript +console.log("hello world"); ``` -#### Alert - -![Testnet reset alert](./readme-imgs/alert.png) - -`` is used to convey hints, warnings, etc. For example, -[Build a SEP-31 Anchor on Testnet][alert-example] - -```markdown -import { Alert } from "@site/src/components/Alert"; - - - -Note: the testnet is reset every three months, so when building on it, make sure you have a plan to recreate necessary accounts and other data. For more info, check out the [best practices for using the testnet](../../fundamentals-and-concepts/testnet-and-pubnet). +```python +print("hello world") +``` - + + ``` #### Code Example ![Create account code example](./readme-imgs/code-example.png) -`` is a code snippet component. You can include snippets for more -than one language. See an example including a snippet for `JavaScript` and -`Python` below. It is using [Prism React Renderer][prism] for syntax -highlighting. +`` is a code snippet component. You can use this component when +you want to include snippets for more than one language. See an example +including a snippet for `JavaScript` and `Python` below. It is using [Prism +React Renderer][prism] for syntax highlighting. If you're only making a code +snippet for a _single programming language_, you should just stick with a +"normal" markdown code fence using backticks. -````markdown -import { CodeExample } from "@site/src/components/CodeExample"; +> [!NOTE] +> The `CodeExample` component has been added to the list of globally available +> components, in `/src/theme/MDXComponents.ts`. This means it's not required to +> `import { CodeExample } ...` in a page if you're planning to use it. It's just +> always available in MDX file. +````markdown ```js @@ -222,14 +215,20 @@ Languages that are currently being used in Documentation and API Reference are below: ```js -// https://github.com/stellar/stellar-docs/blob/main/src/components/CodeExample.js +// https://github.com/stellar/stellar-docs/blob/main/config/constants.ts -const CODE_LANGS = { +export const CODE_LANGS = { bash: 'bash', cpp: 'C++', curl: 'cURL', + dart: 'Flutter', + flutter: 'Flutter', + swift: 'Swift', + docker: 'Dockerfile', go: 'Go', html: 'html', + kotlin: 'Kotlin', + kt: 'Kotlin', java: 'Java', javascript: 'JavaScript', js: 'JavaScript', @@ -237,6 +236,9 @@ const CODE_LANGS = { json5: 'JSON5', python: 'Python', scss: 'SCSS', + sql: 'SQL', + rust: 'Rust', + php: 'PHP', toml: 'TOML', ts: 'TypeScript', tsx: 'TSX', @@ -248,7 +250,6 @@ const CODE_LANGS = { **Remember that this is a community; we build together! 🫱🏻‍🫲🏽 Our code of conduct is [here](https://www.stellar.org/community/code-of-conduct) and our Privacy Policy is [here](https://www.stellar.org/privacy-policy).** [docs]: https://developers.stellar.org/docs -[api]: https://developers.stellar.org/docs/data/apis [stellar]: https://stellar.org [contrib]: https://github.com/stellar/.github/blob/master/CONTRIBUTING.md [coc]: https://github.com/stellar/.github/blob/master/CODE_OF_CONDUCT.md diff --git a/ap_versioned_docs/version-2.10/README.mdx b/ap_versioned_docs/version-2.10/README.mdx deleted file mode 100644 index 6f5587ec14..0000000000 --- a/ap_versioned_docs/version-2.10/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Anchor Platform Introduction -sidebar_position: 10 ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-2.10/admin-guide/architecture.mdx b/ap_versioned_docs/version-2.10/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-2.10/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/security/api_key.mdx b/ap_versioned_docs/version-2.10/admin-guide/component/security/api_key.mdx deleted file mode 100644 index c994a59941..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/security/jwt.mdx b/ap_versioned_docs/version-2.10/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 50153090a4..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/ap_versioned_docs/version-2.10/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-2.10/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index c6dd3abfb9..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.10.0 --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-2.10/admin-guide/events/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/events/integration.mdx b/ap_versioned_docs/version-2.10/admin-guide/events/integration.mdx deleted file mode 100644 index b2638a3481..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -:::caution - -The `--event-processor` will ignore any path segments specified in `callback_api.base_url` and will instead send events to `[scheme]://[host]:[port]/event`. This is a bug, but in order not to disrupt those using the event processor, we will defer the fix of including path segments in version 3 of the Anchor Platform. - -::: - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-2.10/admin-guide/getting-started.mdx b/ap_versioned_docs/version-2.10/admin-guide/getting-started.mdx deleted file mode 100644 index 9318c7a462..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.10.0 -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.10/admin-guide/overview.mdx b/ap_versioned_docs/version-2.10/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep1/README.mdx deleted file mode 100644 index 8344b44e88..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep10/README.mdx deleted file mode 100644 index 1db24083f6..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 09c8dc7090..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/example.mdx deleted file mode 100644 index 71b67e8f79..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.10.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/integration.mdx deleted file mode 100644 index ce7fd2d731..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep31/configuration.mdx deleted file mode 100644 index d68d781de3..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Lets test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -:::caution - -Note that as of 2.x path segments are not supported in `CALLBACK_API_BASE_URL` (such as `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep31/integration.mdx deleted file mode 100644 index 12407473b0..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`GET /fee`][get-fee] if your business wants to provide senders the option to skip the quote creation step -- [`GET /unique_address`][get-unique-address] if your business uses a custody service for on-chain assets -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.10.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_sender` status. The Receiving Anchor waits to receive the payment identified by the stellar_memo included in the POST /transactions response. - -Once your business detects that it has received an on-chain payment for a specific transaction, it has to update the transaction status. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Fee Callback Endpoint - -Your business may want to offer sending organizations the option to skip the quote creation process, allowing your business to use a rate determined at the time the funds are paid out to the recipient. In this case, the Anchor Platform will not make a `GET /rate` request, but you will still need to provide the fee your business will charge for these types of transactions using the [`GET /fee`][get-fee] endpoint. - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Unique Address Callback Endpoint - -Businesses must provide a unique Stellar account and memo pair for each transaction requested by sending organizations so that the Anchor Platform can identify and map the on-chain payment sent for the specific transaction. The Anchor Platform can generate these account & memo pairs itself, but most businesses use a custodial service to receive on-chain payments. In this case, the business must request the custodian to generate the Stellar account & memo. This is done by using the [`GET /unique_address` endpoint][get-unique-address]. - -### Configuration - -To configure the Anchor Platform to make these requests, add the following to your configuration: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -This endpoint may be removed during future major version updates of the Anchor Platform, when it adds support for connecting to custodial services and generating these addresses automatically. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep6/configuration.mdx deleted file mode 100644 index dea7867383..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -See the [KYC API][platform-api-kyc] and [Rates API][sep38] for details on the endpoints that must be implemented on your business server. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-2.10/admin-guide/sep6/integration.mdx deleted file mode 100644 index 98a4c3916f..0000000000 --- a/ap_versioned_docs/version-2.10/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's good practice to clean up inactive transactions in the `incomplete` status. To do so, make the following JSON-RPC request to expire a transaction. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/README.mdx deleted file mode 100644 index 54cf2996c5..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | ---------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/fee](./get-fee.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | -| GET | [/unique_address](./gen-address.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/gen-address.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-fee.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: eJztW+tv3DYS/1cGOuBi32m1TtIWxQL54CZua+CuDWIb/eD1ebnSyGIjkQpJ7WbPcP/2wwypxz78qJO768Of1pJIDuf9myF9HWVoUyNrJ7WKJtGpEcqKlJ4suEI4kGqhywWCW2pQWo3wQyMXokTlQCv4K+g8H6WFkAqEtegs7NkmLUBYODt585rGnDgsS2FAqAxyKRwcnb3bh6qxbqoai4Af00KoKwQjHAaqwiCkuqoaJVPhMAOnwRUIaSmJsqjrkj5IrcDghwatk+qKR7iegwR+KlCFORYq8R6nKgy37YpvS+FybSrItaEXWxuK14dZVBltUtqWcruSUGlBa2jI0aUFSJdM1VS9Y65SoWCOcC5Vxhtf4MVe4VxtJ+PxcrlMpFqgdbrGTIok1dXYoansWI77CR8a7TARtt4HbabqPJemetAi+ZiG9tMTOO23S3qA2uiFzOgdHL9hReHHWhovYJkTe1MVZN8JUAAty0JiRg95Qc9qu2AmbaobRRr02rU1pjKX6Q5NWr+vTtJSpWWTsUUgzPz4S5nNoBZGVOjQTJVXGutCWK14H0fSFWhgZrEsL0VF5GegDczmzap7XsqyJIUEIhlINeDM9jRsDPPGgcIFGphrVyRwrHhLVlQIS7GKpwqHJDMs5QLN6rJCV+hsxvJk4ltfKrG6bRObZGOwUqUIntRUBfbI5wbc+UdJyuncjt6xYKbqrGaHSVEuWn8xaGutLHoz9zrsdcBiWohSZsKht3IWIPNUG5ki6HxtHaZ07N+FiWREuZDlpivx4n7eHQ7+rHe0pXQFCPj+9PQtWCdcY6cq1RnvYfblwQv4RmTwnXC4FKsZb4QMas0Q4jUziGHGTMxir6Qcccaxp2U5I1vIdVnqpZ3QgiNyhxnbPA/Gj5KUNVUAo/59EhTBzlWIBYKAWltJbkxrN37LVl4pcgah3GWGqaxEaWeQYS6VNwYWOC0FqVa5vGq8Syab5Jx2ogzk8EMjylactqmYUjcyQ0eaSIIAwkrexTf3D69eee8emFq8Jk745VWwgr9BL1b4O7BsPPe6zMCZBh9GqrfiGG4ltbdJa38HsU1NZRotKO28yh7Cx45Fg0X98oqdrNWUsF7q0q3YRsmNdaMy8jE0RhvmHTi8rX/YWGX2/OBfe6NdZrE/m6oojpy4stHkPOKkEl3E0ceRxZpfnRy9Hb18HsX+j6/po67RG8xxFk2iK3R+Whz10S2anF9HklL/hwbNKoojJSqMJpFb1RjFm/CAEuyqZuslybaeiVkCxznMKCHM4rV44GUYIlzQh2yDIj9xqkF7KdwsieLIpgVWIppc+y1MIuuMVFdRHKFqKuK0T4lRHBHJ6OImjmgr0mAWTUhXN/Futro0ssXboQKZoXIyl2haNLALcFTifR88mX1KXNJS6gxpvrEesug8RwOZpB9aJkdk4NG/CeCETeu1p3X8xnbpiYi0gbxu5qVM4T2u+PXgsSUnGlcQBwSZYCEFkCk8P0igTc0+QCjbGJwqBlobK4X03EefNvRWwqUFUl4ZjH6v9FIR4TmWmkQSgg56C/cII3iNHORUz55WJWe/Ac18KHPKYgOGsp0ckcC9A8GyQM7C2pCbT9VgMsMYn0fIRFi7DNJom705eYySwLctrrEgyqVYdTNhfc2EffI2g725zQb7cLrTwXxAvMX4WHIk4A3UKVUPW/NNOKCm6vyQVz0OFh5W+1abSrgeRF5JVzRzho7WW137O6qNdjrV5Xhe6vm4EtahGWOq7co6rMYW69HBwcuvkyr7C5MdyTVSo5xJ7d8jsoe6ccfdPRLsbDyIqRfflsCGeOoPKLFBttstM58IGZYMJHGvGd5heAn8RMMo57YxkQSbavVzk4ZlXLEGyB7pUf0K9/E2cItfbRY7+YGenany/Azx5iMZ4qLJrC4J3e5k6fz45Ed4+fyrr0bPQZR1IUYve6NElSzle+nrQG2uxvQ0Pj758dLPuAwz9qFFzySLxqJ5ZiFtDGcmkWUGLWWmNtbaQjcll4aYOl929SGds0Bb93Eo16pbOrQGwtO8WY1JRlALyQiIuwIECKSbKgr7CyFLMS+Rs9BSU0ivNLcESCwS7SPF6qHGpcgdmp1i9ab+jECZ5UwxG6AT4CKI9ulkhR1E4MLaR5ph+udkJq0vxrhS9hW4xwpellM1p9Lg/Oz0NZBCv/7q4PlGSW81a1BaPaKvI9rDSKhsRHsIMSIpXFXug+e+z41BXwZdYxTMvjg4oAJpqt75nD6jLQo1LPWZQa1I3iyjIQSgBMyVSypUcIFW25+SBzdq4p1a8Z+GsUgbNlfvuNREIlDlV9qIX3pQ1wbZezao9hZ57k0Zp2oghr647Thk7M4TrVdv13noXWCA5dvaba2M3azh7o4mg+C42Tf4hCj5ieIW1Ehr4aZvJOBaUM2Nrn7nEt/ZxLlP5BeUh33FY+n7i4MD+lkX7kmTphRSozhKtXKoHI0ZbHn8s6WB19uE9PxnTCm71YaqOic9GQKp94+S2a5yan1vx2/a8DyMVT/8eApnJ0dvCFwrmNESr3q8PEsIf/QRchcVH6GiScSBi4LWFumj3g7WYurDyLPZ3M8fR3etFmgsEWp7V1SGZTBfDdEAbYKSV6PkFmggM6Om6iZQitl4dNOWulRYULXnu4VGZJL2IUrIpRIqxXht1SUH6jnF2hyNCdWc73zOhW0RLdfMw+gWhvgWa9vqY8chsTelWO9yjGhL8JBWB+ydG8w/N8xluqOwNbu/z/obAtMHafEOpDqEc7ej0mNqpwWBD2rzNnKtN457RLNWEMeQYR3qXK2g0Etf3FPzkB26t6oQCYnXAU79tazeAVzbZvsQfT6Q1aEFfFZOc9wZl7ZaLv4L+Pfztq/iCWS0GU0NhrrrMhNA6TZKDQFmwzdxQThn5LxxmGyFQO6QPkzoPJQ9xWPawCSz5WvOh+muK0JpqbahkxbCXLGME/gnuRw7fW3QIp+SSAW/mcKTGA794gHLwhhBoEI6rOz9ucdjj4cIjEZ2OQgxZsfFj6KqS4TZ4evvuascw+wbI/4tSyk4d6f0l88d/usJmgWFN/+ILg18DMjdt5tDcPhxl1F6G3iUA4cIHmzJd0v7fjy3k1u7pt50U+1tt+v3Zy2mn6PvOFu/iu//JwT9Bu2Acy/8bscXceSkK2nL1Aj+FvENL/8uAJfoZnO+95rW7LfnD2auT/RJOd7oOgzC3wXNGK423MRNHH3x4sU2fjpTtdGEoLg2PFJOulVbT/Fx0EA8vurBzEOHQchsVIbGOh0QbtvgpNM2X9nQGTFXTAKsB2zDwy1/+GepDLJbh8OPPdFqazNoS7Op4nI4dM1pGX9cUBHzV4MQuI5cusgdeu9zna08cv1MeJN3sbMLtQtjblqFnz0woyN+4TX+5S7EzAM2zoUfJmQv2u6cthMJdzxIuCyb34FkGGE7VARb/XHNe1xFk/bkJ464Rtp5AkRVSajz+PiHT35cEU2iMRcO5J9m0Z4CNaaMJlGbX1JRlnORvk/mjZUKrR35sUmIyKG5n+oqIjJS5ZrYDPg6mkQvk4PkYGdQPFmptDBa6cbC60DGwuHb4+52wHox0B6AbB5O10aTKrpjudvX9UWi7U/4K5Fh6zu9YRWSWk4uxGLyfD7G6LyVcZPYYWxsoeSztMFnfbxob5lYHFwu6CrgnvLm+F0k/PlfMI+evRPWShRHpUyR4meXc6PDWqQFwgtWQ6/d0FkS/JWbS2GqHf/j+PXRDydHoxfJAfeU2E5rbV0l1GDhd0hNuAVCe564kV07l3q6T/R0n+jpPtHTfaKn+0RP94me7hP9Fu8TeVRK5e64LoVUBFgZKlwHqHjue8wXcVRo6+j5+ppakmemvLmh1/6QgQBkJrkwy6JJLkqLd8CCvXcB++7D/+JK0U4uPYoO15wCho4iOjt5OB9Pd4ae7gw96s7QHRY5vKH2SLPccK8/wYWiO+S5dtvqcwv0D3O/6A4BDu9aPVJ+v7ULRveaS9ux/Dz8/n8uHd2n0s/A49MtpHti+fo1rk+Q9NPFpMdfTLpDQRsXwj5BQU93lHZdmLkv0G5fR/rvqOBPfm/pnlRwlxYu6MFIUkM0Oad/tChQZGgGJxGHaYr1MJNsnaOsHUR8d3Qa3dz8B08O754= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: eJylWEtz2zgS/isoXHKhJEf2ZLK8ZVyeqmztTDwj72VtlwwRTREJCTBo0LJKpf++1QAokpL8kMcXi2j0A41+fI0Nd2KJPL3lV4+gHfL7hD+NEGq/Nru6Hn3iif8/vYg/zj/SJlODFU4Z/VXylNcGnRfAEy4BM6tqovGU/w0ZqEdggv179u1PZhbfIXPMQm0BQTull0xoBsQ7vtM84RZ+NoDuNyPXPN3wzGhHctMNF3VdqswrnXxHkr7hmBVQCfrl1jXwlAcFPOG1JROdAiSqkr096KzSS75N4sI+IeGgm4oc4KzQKDJSOc8sCAeSJ4NVdMI1OM8KoZcHRLDWWJ7wn41x0BOQNehMBXbe1NIv3e+77aYA1pMUHMTIzDG7FJotgBkNzOTMFcByU5ZmpfQyvdMj9nDE6gc2YmIgcSWQRSJzhTXNsvCyZlfXDLSsjdIOx4wMqcW6NEIyhUxpv6mv4oHlCko5PlA9dA1ZQKxhlSwf2lOQPWHrP9LqfU7K/A9WW5MBIsWZG/r0ZC2DWwwO9UsDVz4q0brx/DP7cv31WTWet1Pgw1FVgE5U9bGYzI2thOMpp5AZ0VZiiYJfz4DeqejTaPiW8/T2kI0SUFmQFP+KohWh5gn/obT/8NfHEy4q02g3h6cashDVEtAp7fNzLrKMyIHBOpBz4SjKnXIlabvprJldXU8v+DZ5tyVv0XD+kW/vtzET310uEMpyHg7+Ah0RjpMXzfolbk9+lhmeamUB6ZRvDw6rsiP1jSLNOFHOn6f7cDb2mKeGhWrmoCyF/So/IBMWYoFH5grhmJJU4vM1FZRRg2CRCS1Z6CJsBlpSXn7RWWEsJmzROKaNa+mhdfR2jO/0nf7dWCb8lo9T1hbSJKSUkjGfGBamKSWVSWzyXGXKl0/D8qYs151dxNXKaBNz0aDSgPiB/SayH6DlntoDy6PyGPIP/ogPFVQmGoM9axqEfXmf3i/mTXF7rLV4T8XmsTu/haVCB7bXEIKbxxQRbUa/Kv9KuQJsKIIhOFjkZcayP5onkLsFIaUFxNYUo0dZIZRmdD1u7fWSB952KNrJHkXZwO6CPbzoTrhSrmCCYSFsZ0TCVgVYCM1pQKFqvbuPMd9uu+qyC3ufTL3280zliO3hhOztKfvLF61thxveWcB6Ii9bSdstLR9UWs/ZdZd+a+rV2AD5WhFYG41B/fTsjP4d3lHAMQoZNhn15ZCPsUmT57VkFoRcU7LaiB01PLkIEX0zbVWxhZFrEgZVHaPl4lXFSj+KUkmKRQvffe86JpVwp1AafVgEKFEBolhCCAR4cqBRGY2+if6ANU9b5JxwH4UvIujtPYW2K0wLn723XcFTPoGIpBHsI9igoLElT3nhXI3pZJKJslyI7Me4LVajsHcMT6KqSxC+oowzU3FSRGj57w5XX4VNbZx0cRjj5RnU24ETPj2bXozOPo+mn24+fk7PL9LpdPzLv379Hx8CkiHkGOqiXp5y7xPf0FMuoTaoXNfaU650ZshUB0cQB40EsZt2YmMD7aVeZFP6RAbTuBM5coC3cgQsueeRDsc85+HP5OE4NLy6r3Xd6zv9ReVg5zHjXueIudA330LeaImdB+Zh5eSbOsGNtVhXfmylFBl6U8n5rvz5Wr2LoLcKP8GOOLS+wXGtT17Z6MFqNHzey6NjJw0dcvjdnt3BEyVUv/28ZB3oRyjNsDm94ONIapXFTwpl09gMdlPAsG0fDAl9155wQ1tfRN+tiiq41aKc77fvt3uWKUlza7G71/k+R2/5GcasJGw6l6YSVKI61kjQooLD0nGsnvZmk/3loeeGk8je6v7W/tzxUujEWaLXTPojRu9Y3WQxPMCRKxp68wjS2hP7eloNMVRfhAcxSucebFLbDdjhfHw2PjsKN2drnRXWaNMgu4z9GGniZ1hDpvL4VMVyMwTDAe2z61I4wn0EfgiG+KngZbkScmr2LFYbZJWQwBZhjNnJWxWqBKY82Om9foiWjeXWVISKfXyx3quax0F3OoCHD7hDREhgzBWA0KkWeU4PeQPN+/uPqfBDyw6F7o438/CFJ7xUGWj08R0j/0stsgLY1F9DB4PSyWS1Wo2Fp46NXU4iK07+8/Xy6s/Z1Wg6PhsXrio9YCOMVQndE7x7mtTs6Ntl7/Hx9GfMXrJP6pJSexut30Scd8sDzrtPeEH4L73lm81CIPzXltstLf9swK55entPgNIqsSCn3VJnKEBICuEd8rwMlo5uAm6P+PPwyXQAO6+/zW4o7eNTa2Uk8VixosIlVjzlnB56Y9/ZhLUNL4VeNqH5B5n0939tl6DO -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-2.10/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/callbacks/versions.json b/ap_versioned_docs/version-2.10/api-reference/callbacks/versions.json deleted file mode 100644 index 923a4cadd5..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/README.mdx b/ap_versioned_docs/version-2.10/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-2.10/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-2.10/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-2.10/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-2.10/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/custody/versions.json b/ap_versioned_docs/version-2.10/api-reference/custody/versions.json deleted file mode 100644 index 5fe5133350..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 934d78e819..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.10.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index af6f303020..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-2.10/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/versions.json b/ap_versioned_docs/version-2.10/api-reference/platform/transactions/versions.json deleted file mode 100644 index 6bae1b77eb..0000000000 --- a/ap_versioned_docs/version-2.10/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-2.10/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.10/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-2.10/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-2.10/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.10/assets/sep31-transition-diagram.png b/ap_versioned_docs/version-2.10/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/ap_versioned_docs/version-2.10/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.10/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-2.10/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/ap_versioned_docs/version-2.10/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/README.mdx b/ap_versioned_docs/version-2.11/README.mdx deleted file mode 100644 index 6f5587ec14..0000000000 --- a/ap_versioned_docs/version-2.11/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Anchor Platform Introduction -sidebar_position: 10 ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-2.11/admin-guide/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/architecture.mdx b/ap_versioned_docs/version-2.11/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/error.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/request.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/response.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/rpc.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/security/api_key.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/security/api_key.mdx deleted file mode 100644 index c994a59941..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/security/jwt.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 50153090a4..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/ap_versioned_docs/version-2.11/admin-guide/component/security/security.mdx b/ap_versioned_docs/version-2.11/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/ap_versioned_docs/version-2.11/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-2.11/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index d202cb3862..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.11.0 --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-2.11/admin-guide/events/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/events/delivery.mdx b/ap_versioned_docs/version-2.11/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/ap_versioned_docs/version-2.11/admin-guide/events/getting-started.mdx b/ap_versioned_docs/version-2.11/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/ap_versioned_docs/version-2.11/admin-guide/events/integration.mdx b/ap_versioned_docs/version-2.11/admin-guide/events/integration.mdx deleted file mode 100644 index b2638a3481..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -:::caution - -The `--event-processor` will ignore any path segments specified in `callback_api.base_url` and will instead send events to `[scheme]://[host]:[port]/event`. This is a bug, but in order not to disrupt those using the event processor, we will defer the fix of including path segments in version 3 of the Anchor Platform. - -::: - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-2.11/admin-guide/getting-started.mdx b/ap_versioned_docs/version-2.11/admin-guide/getting-started.mdx deleted file mode 100644 index fed8d77a8b..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.11.0 -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.11/admin-guide/overview.mdx b/ap_versioned_docs/version-2.11/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep1/README.mdx deleted file mode 100644 index 8344b44e88..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep10/README.mdx deleted file mode 100644 index 1db24083f6..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 09c8dc7090..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/example.mdx deleted file mode 100644 index e8ccf420cf..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.11.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/faq.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/integration.mdx deleted file mode 100644 index ce7fd2d731..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep31/configuration.mdx deleted file mode 100644 index d68d781de3..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Lets test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -:::caution - -Note that as of 2.x path segments are not supported in `CALLBACK_API_BASE_URL` (such as `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep31/integration.mdx deleted file mode 100644 index b8fda8408d..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`GET /fee`][get-fee] if your business wants to provide senders the option to skip the quote creation step -- [`GET /unique_address`][get-unique-address] if your business uses a custody service for on-chain assets -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.11.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_sender` status. The Receiving Anchor waits to receive the payment identified by the stellar_memo included in the POST /transactions response. - -Once your business detects that it has received an on-chain payment for a specific transaction, it has to update the transaction status. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Fee Callback Endpoint - -Your business may want to offer sending organizations the option to skip the quote creation process, allowing your business to use a rate determined at the time the funds are paid out to the recipient. In this case, the Anchor Platform will not make a `GET /rate` request, but you will still need to provide the fee your business will charge for these types of transactions using the [`GET /fee`][get-fee] endpoint. - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Unique Address Callback Endpoint - -Businesses must provide a unique Stellar account and memo pair for each transaction requested by sending organizations so that the Anchor Platform can identify and map the on-chain payment sent for the specific transaction. The Anchor Platform can generate these account & memo pairs itself, but most businesses use a custodial service to receive on-chain payments. In this case, the business must request the custodian to generate the Stellar account & memo. This is done by using the [`GET /unique_address` endpoint][get-unique-address]. - -### Configuration - -To configure the Anchor Platform to make these requests, add the following to your configuration: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -This endpoint may be removed during future major version updates of the Anchor Platform, when it adds support for connecting to custodial services and generating these addresses automatically. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep6/configuration.mdx deleted file mode 100644 index dea7867383..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -See the [KYC API][platform-api-kyc] and [Rates API][sep38] for details on the endpoints that must be implemented on your business server. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.11/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-2.11/admin-guide/sep6/integration.mdx deleted file mode 100644 index 98a4c3916f..0000000000 --- a/ap_versioned_docs/version-2.11/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's good practice to clean up inactive transactions in the `incomplete` status. To do so, make the following JSON-RPC request to expire a transaction. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-2.11/api-reference/README.mdx b/ap_versioned_docs/version-2.11/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/README.mdx deleted file mode 100644 index 54cf2996c5..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | ---------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/fee](./get-fee.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | -| GET | [/unique_address](./gen-address.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/gen-address.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-fee.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-2.11/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/callbacks/versions.json b/ap_versioned_docs/version-2.11/api-reference/callbacks/versions.json deleted file mode 100644 index 96c990ca3e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/README.mdx b/ap_versioned_docs/version-2.11/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-2.11/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-2.11/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-2.11/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-2.11/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/custody/versions.json b/ap_versioned_docs/version-2.11/api-reference/custody/versions.json deleted file mode 100644 index dcf08d52c8..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/README.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/README.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index e42bf84314..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.11.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index af6f303020..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/overview.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/versions.json b/ap_versioned_docs/version-2.11/api-reference/platform/transactions/versions.json deleted file mode 100644 index 2f7060939b..0000000000 --- a/ap_versioned_docs/version-2.11/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/ap_versioned_docs/version-2.11/assets/SEP24-state-diagram.png b/ap_versioned_docs/version-2.11/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png b/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet.png b/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png b/ap_versioned_docs/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-2.11/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sep24-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.11/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sep31-transition-diagram.png b/ap_versioned_docs/version-2.11/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-2.11/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sep6-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.11/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_job.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_job.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png b/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/ap_versioned_docs/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/README.mdx b/ap_versioned_docs/version-2.8/README.mdx deleted file mode 100644 index 6f5587ec14..0000000000 --- a/ap_versioned_docs/version-2.8/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Anchor Platform Introduction -sidebar_position: 10 ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-2.8/admin-guide/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/architecture.mdx b/ap_versioned_docs/version-2.8/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/error.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/request.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/response.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/rpc.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/security/api_key.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/security/api_key.mdx deleted file mode 100644 index c994a59941..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/security/jwt.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 50153090a4..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/ap_versioned_docs/version-2.8/admin-guide/component/security/security.mdx b/ap_versioned_docs/version-2.8/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/ap_versioned_docs/version-2.8/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-2.8/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index a068caab1d..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.8.4 --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-2.8/admin-guide/events/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/events/delivery.mdx b/ap_versioned_docs/version-2.8/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/ap_versioned_docs/version-2.8/admin-guide/events/getting-started.mdx b/ap_versioned_docs/version-2.8/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/ap_versioned_docs/version-2.8/admin-guide/events/integration.mdx b/ap_versioned_docs/version-2.8/admin-guide/events/integration.mdx deleted file mode 100644 index b2638a3481..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -:::caution - -The `--event-processor` will ignore any path segments specified in `callback_api.base_url` and will instead send events to `[scheme]://[host]:[port]/event`. This is a bug, but in order not to disrupt those using the event processor, we will defer the fix of including path segments in version 3 of the Anchor Platform. - -::: - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-2.8/admin-guide/getting-started.mdx b/ap_versioned_docs/version-2.8/admin-guide/getting-started.mdx deleted file mode 100644 index 3c4a444b1c..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.8.4 -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.8/admin-guide/overview.mdx b/ap_versioned_docs/version-2.8/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep1/README.mdx deleted file mode 100644 index 72834e2a2d..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep10/README.mdx deleted file mode 100644 index 485e404be0..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 1e49bee202..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/example.mdx deleted file mode 100644 index e8aa0edea1..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.8.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/faq.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/integration.mdx deleted file mode 100644 index ce7fd2d731..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep31/configuration.mdx deleted file mode 100644 index d68d781de3..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Lets test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -:::caution - -Note that as of 2.x path segments are not supported in `CALLBACK_API_BASE_URL` (such as `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep31/integration.mdx deleted file mode 100644 index eb7f83f05d..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,693 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`GET /fee`][get-fee] if your business wants to provide senders the option to skip the quote creation step -- [`GET /unique_address`][get-unique-address] if your business uses a custody service for on-chain assets -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.8.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_sender` status. The Receiving Anchor waits to receive the payment identified by the stellar_memo included in the POST /transactions response. - -Once your business detects that it has received an on-chain payment for a specific transaction, it has to update the transaction status. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Customer Info Needed - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - - - -```json -// pending-customer-info-update.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "pending_customer_info_update", - "params": { - "transaction_id": "", - "message": "Customer info needed" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh pending-customer-info-update.json -``` - - - -### Customer Info Updated - -After the Sending Anchor has made another SEP-12 `PUT /customer` request to update customer info, the Receiving Anchor should change the status of the transaction to `pending_receiver`. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Fee Callback Endpoint - -Your business may want to offer sending organizations the option to skip the quote creation process, allowing your business to use a rate determined at the time the funds are paid out to the recipient. In this case, the Anchor Platform will not make a `GET /rate` request, but you will still need to provide the fee your business will charge for these types of transactions using the [`GET /fee`][get-fee] endpoint. - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Unique Address Callback Endpoint - -Businesses must provide a unique Stellar account and memo pair for each transaction requested by sending organizations so that the Anchor Platform can identify and map the on-chain payment sent for the specific transaction. The Anchor Platform can generate these account & memo pairs itself, but most businesses use a custodial service to receive on-chain payments. In this case, the business must request the custodian to generate the Stellar account & memo. This is done by using the [`GET /unique_address` endpoint][get-unique-address]. - -### Configuration - -To configure the Anchor Platform to make these requests, add the following to your configuration: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -This endpoint may be removed during future major version updates of the Anchor Platform, when it adds support for connecting to custodial services and generating these addresses automatically. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep6/configuration.mdx deleted file mode 100644 index dea7867383..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -See the [KYC API][platform-api-kyc] and [Rates API][sep38] for details on the endpoints that must be implemented on your business server. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.8/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-2.8/admin-guide/sep6/integration.mdx deleted file mode 100644 index 5beb354bf3..0000000000 --- a/ap_versioned_docs/version-2.8/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,987 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - - - -```json -// reuest-customer-info-update.json -[ - { - "id": "1", - "jsonrpc": "2.0", - "method": "request_customer_info_update", - "params": { - "id": "", - "message": "Please update your information to continue" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-customer-info-update.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's good practice to clean up inactive transactions in the `incomplete` status. To do so, make the following JSON-RPC request to expire a transaction. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-2.8/api-reference/README.mdx b/ap_versioned_docs/version-2.8/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/README.mdx deleted file mode 100644 index 54cf2996c5..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | ---------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/fee](./get-fee.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | -| GET | [/unique_address](./gen-address.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 149e2db097..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zgQ/SvE7KEtIEuON4dCtyDxIUCxCNbZk22gFDm22FIkwxk1MQT99wVlKbZbb3/B6iJpOB+ceW9eByz3BOUa7lti32Ak2GbwNiMMg3m1fJrdLCAbPv68SYcaSUUT2HgHJTzXKCK+tEgsdj4Krg0JdDp441gYEkajY6OkFewF17hx668Pyy/L56Uo1Fj06/ZjzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm85tF3ug/psQzjRYZP23cdEeNO+NQC+PEsbd84zbuYXBL1xNT6AcSWrIUPoqXFtvLw/EsNTxUMN7lGwcZ+IBRpt9HDSVotNNcIYMgo2yQ04zLdQcmjS9IriEDJxuEEoyGDEjV2EgoO+BDSFbiaNwe+gxSEyaihpJji/02WSh4R0jJfzG/Ta9LgFatUkiUp/jbaw7TDYXzCcLW6RwyUN4xOk7uMgRr1NBV8Y1STPfrJX31DRWnLmOaAZvjlTBGH6/2YvQV80WP6zF6mwEbtslvORj69GSAb4yOjHfHeX7HA5QTdTP4IW2LVymc5tYg136ECBkHdLiGEt45WXRG9wkOjD8myNpooYSJqkpaW0n1Pa9aMg6JZkffHN9kEyxKp2ofE5UhlTRu51PLKdtx8ov8c34L1zZqdXCqjt75lsT9WIbE3dOjoIDK7EY4xo1DsTquiLgbSoonK3nnYyNC9AmWgeO/z3vcC5p2mUQjNYrqMKR/z/daG4vCDIsdok/EMm4v5EkCom+EFMoadCzOmJOL57T7x5l8SHVG4o6yQHgqLXc7VHxZ+Wf/ayWGDZyocmpvNaACGVij0BEmEMaFuwtS1SgW+RyyM3TLonh9fc3lcJr7uC/GUCq+PN4v/1otZ4t8ntfc2IGzwRM30p0lHgXlfbceJMufke5OS/a/jF7K6CgLjG9cBCuNS4ox4NONi7oGdVLW0uikErUnTiddV0nCf6Lt+2R+aTEeoFxvkyhEI6vEj3UH2lD61lDupCX8DTof/x5F6ZP4r8uNRukOJ+0ByEZVMhr6bZ9BjVJjPJOrO6Uw8FnIL2J7oVZHxKHv/wVOQ7B+ -sidebar_class_name: "delete api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/gen-address.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index 1a51c2a1d5..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 84bbbe99e7..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-fee.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index a449e4b095..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index e89903be15..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,578 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 60a2b0972f..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-2.8/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 8400f829a4..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/custody/README.mdx b/ap_versioned_docs/version-2.8/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-2.8/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-2.8/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index a683a68837..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tv2zgQ/isDXvaiyNnsAwvd0jTFBvuoscme0hzG1NhiQ5EqObJjGP7vxZDyI4obtN31wVZG8358M9momqIOpmPjnarUVR/Z12u4pbCkADoQMkXQA5kDuohamCGQ9qEG4+Dtm1IVyncUUN7c1KpSWXJQd3cQU4ViXERV3e9tHb2N6qFQT2eRusRxez09+1UV6ffi5+Hhpx+FKdCnniK/8fVaVRulvWNyLI/Yddbo5MnkY5SoNirqhlqUJ153pCrlZx9JsypUF8RvNhTlranl+3lKbq+nz+K+eSvRDnoiB+MWaluollr/Uvgvaj0s0fZUADfIYCL0kWpgD6Ymx2a+BuNmvnc1+AC+5/zc4bolx/GLtu4ScWxPqODnIBz/m8VCketbKYipVaEajI3w0BOrh21KIXvt7UtvpsMb8WiUxtesSMlTuaXU20LNg28vtfZ9LvCoPL4PmuCWyVoMgJnvZNrYf1HLW4psXGqar1KF7Wk9l4ku8XJDgDESH8oQyfEkkCazpPoVte/oRGXfEX1VGkWLmD3h27d682jciXn4w0jj5AC/oag1dT4aGbmV4aYOuEKrZI6TA+phmz5CiJ13Mc/jxfn5iYr3WlNMffqdY58t/XJK+Y1jCg7tDgGvQ/Dh+y1loDKBaskBJWUPY9TJ5IPsrgLSsoYtHXA5ezNkip6YXEyoWd1v1COtVbUDz0Il0HkVRLcPgiTceMHrzscEh8iNqtSEjzG5UDElI9vpg1WVapi7WE0mw2Y4yxwlPWHbWUKnGx9K7VslViRL/xwA+zoz7QD30CsZQ5//nXEuI88BaRJGPMOFg9TRmB+Iu4EdU9KsHRHz6BwIeQb23bstlHHzBPSSkNwzF+VvpSR2VKyhhVQxxuiG9gs1DnvWO0eao4A0SQd2wUSCFVpLDF3wS1NTiAXEXjeAEd6ZQDPr9WMsRCaSqwFdDcM47cEc5j4cT2gE4wwbZKphaTAN8WUqFkwt8tyHtoS7JsFDWBpNghToAG0aCxbd7PPsDzD5fjYEIaZmfTSOYqQIq8bL4gHvaAcXse86H8T2PqQSbhxgXZsEvYPqee+St2gNr8HP5xSohtn6pN0iUceHS/I5epijNtYwMr3cdGJOW0OOf4hj1BfH5rD2fVYjgYgZWibBITnFM1Vr3x/EYWWsBQ5msaAACL/f3U1Bo7Uz1I/QYk17kV3OhmYoP7gPbm87ENZraHBJUgbjmBb5ygKB0axg1CYpIQ5Yqqh923lHLiG+8ww7OCqkpI3vF81JJ7L7jvLd4Hy6Gk40C6zEFO7yIBvP69xeyT90LySOb6kV5j0kRnwAGejszrga+2bdq7mc3qRMXfUhkGOb3fPOrk+0mUR/GJnyg5yh1mhyMaGQw1bm9rJD3RBclOeqOIK5ajJZrVYlprelD4vJIBonf95cXf99e312UZ6XDbc2YbZAaYvuSPFVOobhxME7BoejS/a/3OLDIpETbdJZNE6AK0W0GSD+XvHo7G5kA1T3arOZYaR/g91uhfypp7BW1f2DrJRgcCYQdy9nWUNYUzjaPVfZ9bME2fsN9HJfboudxKXW1PGrvMdLavr+9k4VajYc/a2vRSbgSvYsrlSl0v8hOaRqk2kbZdEtelwIb9Ypn880aYvU -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-2.8/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 17db5e93f5..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVlFT20YQ/is799IXIVMgoaM3AyZhSlKCSZi2yQzn08q65HSr3K1sPIz/e2dPsiGG9qF5kkbe3e+7/b7d84MqMZpgW7bkVaFOu8hUrmCKYYEBjHYuAtcIhnxl513AEswQEzEsrEFggjl6DJoRSmwpWgZdlgFjBO1LaLCh/LP/7M8pNJqBKrjTMSLfQauDbpAxwB7cRUbndCg+Ts9OizcnJ2dHxxfnry9vfz++On53Nvk0Pb29Pj67+nj76fD9n4dnNx8mn84vj96Pb47GH94e/nV5eX45fnX32atMUSt0LPmLUhVqw+6jt987HPfUVKZYz6Mq/t4euv8dNgFfMnW/F7FNMdPJ1d5rlaXnwdHwcvirBAX83mHkEypXqnhQhjyjZ3nVbeusSURGX6M0+EFFU2Oj5Y1XLapC0ewrGlbr9XottWJLPmKUgIP9fXn8qNC0MwZjzFX2f5Ey1QZpENseZtDqOdTZjphMsKytqXtDOIueIdbUuRIi+hKqzpeJ2IAXOVg/V+tMiQWe13+HDcFCuw4z4Fpvi81QILEUwFavGsGZrZ6g/ivGTfq4iyNfxXUS8dNImULfNWIJW6pM1TrWEoP3rL6IgmzZSfibl0x3Pcg7qP3qJYEvPGPw2m1mcBIChZ+SWwxqA5ZCGqWauPZHD/SfH3M3bX1yoGFKEp3Ef50pvGf00ZKXGXlQ33Clis3QZCpJ+5/Ds/4iunFNMqYtxWROzbUq1CitiDgq0nM0eBClbkyN6SG74FShauY2FqPRsJr2+ogc73XTOtTe1BRyQ40SQGnY9ePMTvogVTysM2V9lYwq9Xs5DvLfcqG804ZBHZXtek2s82RByhIl79Fwmh8UcdtgI8JSO4cMbaCFLTHEDGJnatARzm3AmSPzLWaSk2ZLFmlAg3aBG6dGqCgAB+2jNgIfwXrLVjOWsLA62Xiczg5XTnNFocnhprZxu7qtbGjQLjmOpTZTSpv2uxj+mA2HEKhZF61PIsCyJugiAvk0WZISu7alINjbI+Vw4WXArLDblK46n9hqZ3kFVFUol8owdbu4Wfr67FYSzpGg0sY6y3LxUMcz6nz52BymYYZ/iduy2hjqPAuxClbU9WXkIAKDi5Q4NCf7odSKusd0WFrngIOdzzGAhrc3N1fprpxp8w0aXeI2ZdOzwQzpHtxiB9TlCmq9QJHBesZ5f23B0nLdF9ixSWqIBxYVDTUtedlZNoInhs2gZyJpTd28fpFET99jv/c8sa1WL5kFlgKlt5tRx0imt1fip/2zjCduhKUWQM8CQgGqQE1PZ1eNrVm3ZcZXF6lTp10I6Nn19Mi71Qs2k9M/jkye/gA4a1D2bPGgvG5kbsetNjXCQb6vsidboxiNlstlrtOvOYX5aEiNo8uL08n76WTvIN/Pa26cLL1/AFWlP4c= -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-2.8/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index f1b1bcb05b..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVstu6zYQ/ZUBN90ocuqbFq12aeqiBoo2iL0o0NwFTY0s3lCkyhnZEQz/ezGU/IjjtkC7yUoCyXmcM8Mz3KkSyUTbsg1eFeqhIw5lDwuMG4xgtHMEXCOY4Cu77iKWYMYzhHFjDQIHIPQltLpv0HOuMhVajFpczktVKNl9HDZVplivSRV/qHGF1OdMvd4Qtml1MXu8+VZl6Tu9G38+fS2HIv7ZIfEPoexVsVMmeBaPxU7ptnXWpICTLyRAdopMjY2WP+5bVIUKqy9oWO33+734ojZ4QpID09tb+bxlYtEZg0SC5j9GylQbhQi2Qxhbnp0hjtavVXYRdfbKGL12sPwd5j9CFUNzyXeuBABbduJnceL2acQ0Qry7hmruN9rZEp4GLv8XOqmHjVhK2TDGEKVIbyEPy+9QnwMYO26WTh4yv3uf+aEzl1F70kZWwRL4wFCFzpcfFMr0+7+HshgvUNSM4GxjWRDhq0Es8YMC+uZ6V41dO8pGMvio+X/694JYgs7rjbZOrxx+RCD7TOEroycbvOjmTr1gr4qDkGZqo12H/yio+8+ZapDrIBLdBkqCpblWhZrw6ZLRpLDlpD2IdaYo1XgI2kWnClUzt1RMJqNQ3QwncnzVTetQe1OHmJvQKAkplD2dlHw2HFLFbp8p66sgRIj/oTLT/Ltckr4gYmy0d/K5lEl1JpcywoL3aJhkTKH0aRstIWy1c8jQxrCxJUbKgDpTgyb4yUZcuWBeKDuONu1LiGjQbvAw5giqEOGcKLDestWMJWysTlPzPmGHR6e5CrHJYVlbOg5OS6A9aJcuD4tvDslsweicjvDbagQhoVYdWY9ESLCtA3SEEDxCqJIJdW0bosQ+Qsph7kGXpU1aObquOp+y1c5yD6GqUEb6qr8aN0ur794EkjMFqLSxzrKIV+h4JSJ8IocDGGfR81d0dKuNCZ1nSayCPnSDGwEiYXCTDEdysjeu+tCdzGFrnQOOdr3GCBp+Xi4f00tlpc0LNLrEo8mBs7EZ8mf/7I+xI+qyh1pvUMpgPeN6eLTA1nI9OLhok0SIB5YqmtC0waPnwxg6XPVMSlqHbl1fTWJI3yOWkqYPbKv+WrPAVkLpAw+giYIZ2ivlp/07i7NuhK2WgJ4lSIjDSyKlc1mNY7Me3dw/zhNTD12M6NkN6QXv+ittJuhPVyZ/9ipTzhqUh0ixU143cm/vW21qhGl+q7Iz1Sgmk+12m+u0m4e4noymNPll/jD7dTG7mea3ec2NE9n7C3X2yKY= -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-2.8/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index a1a5f2847c..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv40YM/ivEXHpR5DSbFq1u2ayDGugjiH0o0OxhPKKs2Yxm1CFlRwjy3wuO5Edsd3vYHuKLhXl85Edy+PFFlUgm2pZt8KpQtx1xKHuYY1xjBKOdIzDBV3bVRSzhcN8aBA5A6EuIWHW+zHf7HLUnbQQVIpoQS7AE2lEAE1EzlmA9fPqYq0yFFqOWk7NSFUrgHhKayhTrFaniLzUskPqcqecLwjYtzqf3Fz+qLP1fXY8fH76XQxH/7pD4Yyh7VbwoEzyjZ/nUbeusSeYmX0g4vygyNTZavrhvURUqLL+gYZWpNopzbJFkt8EmyP/bkP2GTYC1dh1mwLVm2FjnYImgyxJLiRDXOAYIWt036Floj7aIo/Ur9Zol+EVaPDYhqxAqkBPfaEQ3oRsi8dbETVo/Ah/wsPwK0h2e8fcOk7t7l84ApJ9kitrgaQjw1eXlKdi8MwaJBOJ/yqMtD86M/mRHVqfPjNFrB4s/YfYJqhgaMGNx01D8uRICbNkJzhx9eT8E/mHkpAaK1+dYzfxaO1vCw1Cp38ROqt1GLOVRYIwhyhN4S3lYPmF9SGB8utN0cuv59ann2ye+OHjilsAHhiqMuX6HVK5+/ncq224WNSM421gWRvhsEMfqf3+EfjhfVWPVjv07XXiv/n/474RYgs7rtbZOLx2+RyKvmcJnRk82eFGlF/WEvSq2MpWppAxflavXz9L7uQ4if22g1LA016pQkwMdpUlhy0kclTBTlFI82OyiU4WqmVsqJpOxT10MJ3J81k3rUHtTh5ib0CixKBF72MvkdDi0l7l9Y9zr0n5tKyPHK0kODkTC+ipJpng6pPgq/ykX9kcRHSv2pA8vanzTd2UoCd6jYRLVQyn4NlpC2GjnkKGNYW1LjJQBdaYGTXBnIy5dME+U7QYWnYYWg3aNW70kqEI8nFwIrLds07Sytjrp2U2KItw7zVWITQ6L2tJWEdKM40G79ApZsEdlnjM6pyP8sRxJiKllR9YjERJs6gAdIQS/U07q2jZEsb2jlMPMi+Lb1HRH6KrzyVvtLPcQqgplUFv2Z+1mafVkyvPDaFZpY51l6YKh42U4GCZStI2z6Pk72sFqYyTr4lgFfegGGCEiZnCdLo7Byd5A9aHbXx8GDo52tcIIGn5ZLO7T7LnU5gkaXeLuyjZmYzHkj/7R72xH1GUPtV6jpMF6xtUwWcLGcj0AHJVJCogHliya0LTBo+etnm17RiYprUO3qs86MbjvcRjEfGBb9eeKBTZiSm/jAJoomKG8kn/an9w4nKM3Wgx6FiMhDiNJcuc4G7ti3cHc3M9SpG67GNGzG9wL3vVnykzY759M/uhVppw1KBNN8aK8buTd3rTa1AhX+aXKDvpPMZlsNptcp908xNVkvEqTX2e309/n04ur/DKvuXHSP/8BrbBp9A== -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/README.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/README.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 8d10c9b7e2..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,9298 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "3.0.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "Additional customer information was received and updated.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_customer_info_update", - "summary": "Customer info needed", - "description": "Additional customer information is required", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_customer_info_updateResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_customer_info_updateExample", - "description": "Example request to the `request_customer_info_update` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info requested" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index ff7de768a5..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [request_customer_info_update](request_customer_info_update.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx deleted file mode 100644 index 350b72c00a..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: request_customer_info_update -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_customer_info_update", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 62a368d0ae..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: request_trust -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/overview.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 504840e254..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMhZb7AodEsLozBQtEaSnrJBliZHFjcSyZAjJ4ah/14MLSPybhpst4cCPeljhvOldx7tkdUmYXWLN1G5pDRb7xLeFfh8lihky/VidfYBi3ydX4w379+Jkw8UlRxZGqxwQzyJggUaSjrakJ8qXEW/tYYScENgXe1jl8+CI00pqbiD2sdsXffJOkoJ2IMhpthZR9mSWDGBr/MDv2QDa8ixrS0ZWO/gkzWfCjCkrSGwNSi3g9Gx6xPDmoDVAzlJoL1j63qCEL0UYt3my+gFKGckAHiXbRI5We9KLDCoqDopUqa1Ryu9BsUNFuhUR1ihNVhgpMfeRjJYceypwKQb6hRWe+RdEK/E0boNDsOdOKfgXaIk9vn5uVxOpzmZNNS+d0ZKkVbIsXirEFqr84Bnn5Mc2U9Sekd/1LncMblffybNJ2XeHupOFLDAB+vyAyvu0+EmMpl7xaIDttzSaVHXi9UHHIrvTqA63zu+p+dAmskc1MTW5Y7uldZi/sZC5hf/ppJvyfD+HQ53wzAMBV689rV+Vgau6LGnxP/kM31ZcYiycWwPuqAYfXxFQIV084quTjs+nJ50tMgvjk1cvC055/k7ZPcf9TMUSM9MLmW4ieofaIfVkXEFblXb05usk6XsiBs/gi7vPTdY4WzCiTTbWzNkJcXtEQh9bLHChjmkajYLrWJB39nBpaRn1YWWlNONj6X2HUoqwaO0LEEOw5+XP5VS0LG71RgHrnOcr2h70xAcc8EhF9gEyoF1TNGpFrTvgnfkuIQlQ2p83xohY+MTkwHrQEGIdivEdcRPPj5kDo6eIoE1gdIZmuuWoI6+y3hc5hTEJdw0Nh3Tk1PrduT/lPA1sW5y5D4YSXYK+sl4oc90tpzgcrUsP8pPprWaXCKZ1ojby6B0QzAvz7GYTL+azZ6enkqVraWPm9l4NM1+W/6y+P16cTYvz8uGuzaLK/jEnXKTwFfE0dKWQMEbP7r9yz78b/954yoyPbMo2jrZ0jzq/bgXtzj9cFhgZY1sp4hLrPv9WiX6M7bDIK8fe4o7rG7vZBmjFaHk5TE2yb3BqlZtojdG/cPVCIMf4e8KHF8qt3vZeRTiZxpYIwwvsCFlKE4wcak1BZ4c+QpyJ3T4dXGDw/AX+0E5jA== -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index b1947098f2..0000000000 --- a/ap_versioned_docs/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: eJztWG1P20gQ/iuj/XIgGUNTVJ3yjTulJySuhxr6iaKwscfxlvWuuzPmpVH++2nWTnAIBGilq3TqJzvr2Z1nn3nPXLGekRqeq7OgHemMjXekLhJ1u0dYxy/j0eneO5XE5+Cwe3n7RoR8jUHLluNcDdUMee2UROVIWTC1/FRDdWStvyFgD18bDHdgDTH4Ari3CQofIEcyAXMYj05TOCsNga4NUFPXPjBBrWfGRbUJaJeD4d8Iak9kphZhR5YCZr6q0OWY74rCSl8hVI1lU1uEgF8bJO5B6UMQlQhWE4smBEMQUGcl5nBTogMuEVxTTTEIeLRYoWOR4SY4zGF6F0XQ5bU3jmU/VdpaDMCldlAHf21yzOFSjp+Q+YaXqUpUrYOukDEI63NlhLKITiXK6QrVUBHWKlECX/hRQw4NJoqyEiuthnPFd3UU42DcTCUKXVOJCcV80XRitsVDu5x4f9XU62aYovVuZtxMOGIxgRhDLZLHgfmQY5hMZeV5NFlAzZhPNKtERa0FhknADM11u3whEAvdWFbDvvgG9HGNmSkMEhQGbS4E8/pFboy1MEWICKN1UvjgGZNWljDzLtfhDsiHaKvebjA5GAeaMnS5cHGtbYPpZ3ecYto5g6mQWFd167kD8AEqH3AdhCEwOTo2mbaiGO9WuERt6zQmf4bfF5GrKesCb51FWd9CX1SwxszK11tmDYFrrE1AW/uQYS7jt5ae1c0kghIIONMht0gk0UJe4LbaYOfDp5OTMZwcjc9208/uvQ+At7qqrUDo3CISDJW+A+c58tVBziPf5Kt1qkUhSZy7GRjHHi4fc7BLmKJICOoUjgVX8tilvNu7vxg9tFmbaLqoL0yQ6xZeklxr0C1M3bvN0zYn1twQ0mNm1yFoETWMFT3mDut2Pl0mx/bM5X2EwYcge65kXObFGowqUcvXPCagopHUKrK3dUxFicIQvLho3cbKhBit1f0VvGUMTtveUkMYJisLEevAT37tgVkKaJeVa0o5NPTwBGHUTyodrjAmHO8nMR9371aHWf9MkqrRP7Pzm3U1K8ImxhV+0tS5XkOWNcS+wrD2+SJRbNiKocbREOPR6ZG1arERmO+NlUKwWRrv3T+6QIypzk+iI0uULAtMAkU8JsYCQW5ITy3msNNlBZhiqa+ND7tP+uCqQj3mhMYxziIvqzQzONjMMeYbCkwNZNxMfBB1yMpYW1P4u6EY1rUnw+Yanw6HCKWtuy8Es4nlVOp5V7vZQ0MYSc28Y+Ma31AHLoUomfnGcZsqCDTDQaoWF+L+VHsnkTmcq8HBgTzW9fTaICh84/I0RpBjdCzSuq6tyWILs/+FZMu8dyPv8J8i9gDd3fz0C2bRdzvv6Z1/YojHo9N3kbeXyw8OX7nh7Ru1uFgsxFUPH7vyHzqHj21f9Zq7PgRQB+kp2bTktjllI70tEmXyR5YX/d7ovNvdC7pRXFhe4nC73SSSXm+7n3SfhWRiRkcxhYvrXOGdGi67+ETFjL+1mxfPrpBL37XysSPlUg3V/oP6QBiul11qE6waqpK5puH+fm01Fz5Ue61I2pXzNk2nma9i/EhKlNvKIS3vg/T39LDnfqfdOTCO52zUM2nQl7qg1SUZTjup+bHGgFQL79BxCscMVPrG5pJoSk9Su6WtgzqYa80IDvnGh6tY0DvJrtvQWYZd6SyCr2I/dBxVIHejSacenSRXihLThoyTjoc9FMhZGU9ui0AUkJSNG6OP7JqBYYKj0+P0s1OJsiZDRyhsdWnwqJZRBAbpgUp67A/3929ublIdv6Y+zPa7rbR/cvzn6MN4tDdID9KSq7bc1J640q538EfkYPAaQcNJN5htm+bm9zHxa7DbPth1Uc14yxIhxknAR9PNuxA7V/xg/BY3lfX5fKoJPwW7WMhyWxMl8JbVXA0LbQm3WGfnY5dDduEVk94TsNu00s6hXU5RsZK8HM//bWbbylRvMP5hun7NaD9tRnvext9v4P+6198e2fdD5/f66yv7/a1w+vPHd+L58Z7/eYSrseQe44X8CEZAquG5/OlWohY/uW/OjrIMa+7t2mgt13qyv0ZnarH4F/5foFc= -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.8/assets/SEP24-state-diagram.png b/ap_versioned_docs/version-2.8/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png b/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet.png b/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png b/ap_versioned_docs/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-2.8/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sep24-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.8/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sep31-transition-diagram.png b/ap_versioned_docs/version-2.8/assets/sep31-transition-diagram.png deleted file mode 100644 index 3944ea0b18..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-2.8/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index 75d4d271ac..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sep6-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.8/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 0bf199f47c..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_job.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_job.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png b/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/ap_versioned_docs/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/README.mdx b/ap_versioned_docs/version-2.9/README.mdx deleted file mode 100644 index 6f5587ec14..0000000000 --- a/ap_versioned_docs/version-2.9/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Anchor Platform Introduction -sidebar_position: 10 ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-2.9/admin-guide/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/architecture.mdx b/ap_versioned_docs/version-2.9/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/error.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/request.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/response.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/rpc.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/security/api_key.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/security/api_key.mdx deleted file mode 100644 index c994a59941..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/security/jwt.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 50153090a4..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/ap_versioned_docs/version-2.9/admin-guide/component/security/security.mdx b/ap_versioned_docs/version-2.9/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/ap_versioned_docs/version-2.9/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-2.9/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 611d9dfa5a..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.9.0 --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-2.9/admin-guide/events/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/events/delivery.mdx b/ap_versioned_docs/version-2.9/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/ap_versioned_docs/version-2.9/admin-guide/events/getting-started.mdx b/ap_versioned_docs/version-2.9/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/ap_versioned_docs/version-2.9/admin-guide/events/integration.mdx b/ap_versioned_docs/version-2.9/admin-guide/events/integration.mdx deleted file mode 100644 index b2638a3481..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -:::caution - -The `--event-processor` will ignore any path segments specified in `callback_api.base_url` and will instead send events to `[scheme]://[host]:[port]/event`. This is a bug, but in order not to disrupt those using the event processor, we will defer the fix of including path segments in version 3 of the Anchor Platform. - -::: - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-2.9/admin-guide/getting-started.mdx b/ap_versioned_docs/version-2.9/admin-guide/getting-started.mdx deleted file mode 100644 index 19fa6de07b..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.9.0 -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.9/admin-guide/overview.mdx b/ap_versioned_docs/version-2.9/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep1/README.mdx deleted file mode 100644 index 8344b44e88..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep10/README.mdx deleted file mode 100644 index 1db24083f6..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 09c8dc7090..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/example.mdx deleted file mode 100644 index 77fb8b9959..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.9.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/faq.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/integration.mdx deleted file mode 100644 index ce7fd2d731..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep31/configuration.mdx deleted file mode 100644 index d68d781de3..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Lets test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -:::caution - -Note that as of 2.x path segments are not supported in `CALLBACK_API_BASE_URL` (such as `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep31/integration.mdx deleted file mode 100644 index 7eb8443902..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`GET /fee`][get-fee] if your business wants to provide senders the option to skip the quote creation step -- [`GET /unique_address`][get-unique-address] if your business uses a custody service for on-chain assets -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.9.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_sender` status. The Receiving Anchor waits to receive the payment identified by the stellar_memo included in the POST /transactions response. - -Once your business detects that it has received an on-chain payment for a specific transaction, it has to update the transaction status. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Fee Callback Endpoint - -Your business may want to offer sending organizations the option to skip the quote creation process, allowing your business to use a rate determined at the time the funds are paid out to the recipient. In this case, the Anchor Platform will not make a `GET /rate` request, but you will still need to provide the fee your business will charge for these types of transactions using the [`GET /fee`][get-fee] endpoint. - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Unique Address Callback Endpoint - -Businesses must provide a unique Stellar account and memo pair for each transaction requested by sending organizations so that the Anchor Platform can identify and map the on-chain payment sent for the specific transaction. The Anchor Platform can generate these account & memo pairs itself, but most businesses use a custodial service to receive on-chain payments. In this case, the business must request the custodian to generate the Stellar account & memo. This is done by using the [`GET /unique_address` endpoint][get-unique-address]. - -### Configuration - -To configure the Anchor Platform to make these requests, add the following to your configuration: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -This endpoint may be removed during future major version updates of the Anchor Platform, when it adds support for connecting to custodial services and generating these addresses automatically. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep6/configuration.mdx deleted file mode 100644 index dea7867383..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -See the [KYC API][platform-api-kyc] and [Rates API][sep38] for details on the endpoints that must be implemented on your business server. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-2.9/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-2.9/admin-guide/sep6/integration.mdx deleted file mode 100644 index 98a4c3916f..0000000000 --- a/ap_versioned_docs/version-2.9/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire transactions that have been abandoned by the user after some time. It's good practice to clean up inactive transactions in the `incomplete` status. To do so, make the following JSON-RPC request to expire a transaction. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `amount_fee` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `amount_fee` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `amount_fee` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-2.9/api-reference/README.mdx b/ap_versioned_docs/version-2.9/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/README.mdx deleted file mode 100644 index 54cf2996c5..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | ---------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/fee](./get-fee.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | -| GET | [/unique_address](./gen-address.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/gen-address.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-fee.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-2.9/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/callbacks/versions.json b/ap_versioned_docs/version-2.9/api-reference/callbacks/versions.json deleted file mode 100644 index 66775e886a..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/README.mdx b/ap_versioned_docs/version-2.9/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-2.9/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-2.9/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-2.9/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-2.9/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/custody/versions.json b/ap_versioned_docs/version-2.9/api-reference/custody/versions.json deleted file mode 100644 index 9ebd617878..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/README.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/README.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index f7ac3463a6..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.9.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index af6f303020..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 62a368d0ae..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: request_trust -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/overview.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/versions.json b/ap_versioned_docs/version-2.9/api-reference/platform/transactions/versions.json deleted file mode 100644 index 92fc50bfcd..0000000000 --- a/ap_versioned_docs/version-2.9/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/ap_versioned_docs/version-2.9/assets/SEP24-state-diagram.png b/ap_versioned_docs/version-2.9/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png b/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet.png b/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png b/ap_versioned_docs/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-2.9/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sep24-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.9/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sep31-transition-diagram.png b/ap_versioned_docs/version-2.9/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-2.9/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sep6-withdrawal-flow-diagram.png b/ap_versioned_docs/version-2.9/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_job.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_job.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png b/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/ap_versioned_docs/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/README.mdx b/ap_versioned_docs/version-3.0/README.mdx deleted file mode 100644 index 6f5587ec14..0000000000 --- a/ap_versioned_docs/version-3.0/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Anchor Platform Introduction -sidebar_position: 10 ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-3.0/admin-guide/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/architecture.mdx b/ap_versioned_docs/version-3.0/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/error.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/request.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/response.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/rpc.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/security/security.mdx b/ap_versioned_docs/version-3.0/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/ap_versioned_docs/version-3.0/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-3.0/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index ca5f6b51ab..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:3.0.4 --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-3.0/admin-guide/events/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/events/delivery.mdx b/ap_versioned_docs/version-3.0/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/ap_versioned_docs/version-3.0/admin-guide/events/getting-started.mdx b/ap_versioned_docs/version-3.0/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/ap_versioned_docs/version-3.0/admin-guide/events/integration.mdx b/ap_versioned_docs/version-3.0/admin-guide/events/integration.mdx deleted file mode 100644 index 98c919e72b..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/events/integration.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-3.0/admin-guide/getting-started.mdx b/ap_versioned_docs/version-3.0/admin-guide/getting-started.mdx deleted file mode 100644 index 244fb14ca3..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/getting-started.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:3.0.4 -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.0/admin-guide/overview.mdx b/ap_versioned_docs/version-3.0/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep1/README.mdx deleted file mode 100644 index 8344b44e88..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep10/README.mdx deleted file mode 100644 index 9d30c9f530..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_urls: - sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_urls: - sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 4b33fec293..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash - - id: iso4217:USD - significant_decimals: 2 - # Optional support for XLM - - id: stellar:native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -// Required -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -// Optional -SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -`SEP24_INITIAL_USER_DEADLINE_SECONDS` is an optional param that defines the time in seconds a user has to act before the transaction moves to the next status. It determines the `user_action_required_by` field, which indicates the deadline. Check [JSON-RPC Methods][json-rpc-methods] for usage examples. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/example.mdx deleted file mode 100644 index 4a4428ce1b..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": req.body.fee_details.total, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:3.0.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/faq.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/integration.mdx deleted file mode 100644 index 6caf77d254..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. For example, to expire transaction business should change the transaction status to `expired`: - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep31/configuration.mdx deleted file mode 100644 index 71cc14f77e..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:BRL - country_codes: - - BR - - schema: iso4217:BRL - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BR - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Let's test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BR"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep31/integration.mdx deleted file mode 100644 index 20731806f8..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,669 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:3.0.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_receiver` status. To request funds from the Sending Anchor, the Receiving Anchor should change the transaction status to `pending_sender` by making the following RPC request: - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -The transaction status will be changed to `pending_sender`. - -### Funds Received - -If the Sending Anchor has sent the funds, the Receiving Anchor should change the transaction status to `pending_receiver` by making the following JSON-RPC request: - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -items: - - ... - sep31: - quotes_required: false -``` - - - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 0c673d15bb..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:USD - - id: iso4217:USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -See the [KYC API][platform-api-kyc] and [Rates API][get-rates-api] for details on the endpoints that must be implemented on your business server. - -### Additional Optional Configuration - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Businesses can set a deadline for user actions on transactions using the `user_action_required_by` field. For examples, see [JSON-RPC Methods][json-rpc-methods]. In addition, the `initial_user_deadline_seconds` parameter sets a default time (in seconds) a user has to act before the transaction moves into the `EXPIRED` status. - - - -```bash -# dev.env -SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-3.0/admin-guide/sep6/integration.mdx deleted file mode 100644 index 179218144d..0000000000 --- a/ap_versioned_docs/version-3.0/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-3.0/api-reference/README.mdx b/ap_versioned_docs/version-3.0/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/ap_versioned_docs/version-3.0/api-reference/_category_.json b/ap_versioned_docs/version-3.0/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/README.mdx deleted file mode 100644 index 1abac748cf..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | --------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | - - diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index c9007b0b66..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,192 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -The request for this endpoint is identical to the -[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) -request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - - - -
- -

- Path Parameters -

-
-
    - - - -
-
-
-
- - -
- - - Success. - - -
- -
-
-
- - - Customer not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 19356cdde9..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,617 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -The request and response for this endpoint is identical to the -[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) -request and response defined in SEP-12. - -This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the -fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. -If the server still needs more info, or the server needs updated information, it should return the fields required. - - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - - - -
-
-
-
- - -
- - - Valid request. Customer either already exists or the customer identified by the parameters is new and must - provide the field values described in the response body. Response bodies are identical to the schema defined - in [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). - - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
    - - - - fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - provided_fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - - - -
-
-
-
-
-
- - - Error. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Not Found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 14ad374a80..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,601 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must -use exchange rates that are communicated to the client application requesting the transaction. When clients make -requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or -[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the -client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter -for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, -either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either -`sell_asset` or `buy_asset` is a Stellar asset. - - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status -code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - -
    - - - - rate - - object - - -
    - - - - - - - - - - - -
    - - - - fee - - object - - -
    -
    - - - An object describing the fees added on top of the rate provided via the `price` attribute. - - -
    - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Unprocessable Entity. This status should be returned when the anchor understood the request but cannot - return a success response. - In these cases, the Platform will respond to the client application's request with a `400 Bad Request` - and include the error message provided by the anchor in the response body. - - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Error. The Platform will respond to the client application with the same response code and body. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 522b6602b6..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2943 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Receive a JSON object representing an event. - - - - - - - -
- -

- Body -

-
- -
    - - - - - - - -
    - - - - payload - - object - - - - required - - -
    - -
    - - - transaction - - object - -
    - -
    - - oneOf - - - - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - quote - - object - - -
    - - - - - - - - - - - - - - - - - -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    - - - - -
    -
    -
    -
    - - - - customer - - object - - -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
-
-
- - -
- - - The event is successfully processed and ready to receive next event. The response body is empty. - - -
- -
-
-
- - - The event is invalid or rejected. The response body contains the error message. - - -
- -
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-3.0/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index b6c0708d15..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1515 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) -request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors -must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will -be forwarded to the anchor as with the `application/json` content type. Requests containing -binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
    - - - - fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - provided_fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid data. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Not Found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/callbacks/versions.json b/ap_versioned_docs/version-3.0/api-reference/callbacks/versions.json deleted file mode 100644 index 23f5ac539d..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/README.mdx b/ap_versioned_docs/version-3.0/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-3.0/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 0df32a8abe..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,336 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server creates custody transaction record in DB. - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    -
    - - - object - - -
    -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-3.0/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 50bdc3fa52..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,276 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - - - -
- -

- Body -

-
- -
    -
    - - - object - - -
    -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-3.0/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 2e762a40d5..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,547 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls the configured custody service to send payment. - - - - - - -
- -

- Body -

-
- -
    -
    - - - object - - -
    -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid Request. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Transaction is not found. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service rate limit is exceeded. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service is unavailable. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-3.0/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 0ca31da907..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,575 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid Request. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Transaction is not found. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service rate limit is exceeded. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service is unavailable. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/custody/versions.json b/ap_versioned_docs/version-3.0/api-reference/custody/versions.json deleted file mode 100644 index 26d39ec7ce..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/README.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/README.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 02b6b0a621..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,10163 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.8.4" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "get_transaction", - "summary": "Retrieve a transaction.", - "description": "Retrieve a transaction by its ID.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionExample", - "description": "Example request to the `get_transaction` method.", - "params": [ - { - "name": "id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - } - ], - "result": { - "name": "platformTransactionResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - } - } - ] - }, - { - "name": "get_transactions", - "summary": "Retrieve a list of transactions.", - "description": "Query a list of transactions by SEP, transaction status or other criteria.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "sep", - "summary": "Sep of the transaction.", - "description": "Sep of the transaction belongs to", - "required": true, - "schema": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - } - }, - { - "name": "order_by", - "summary": "The field that transactions will be ordered by .", - "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", - "required": false, - "schema": { - "title": "order_by", - "description": "The order by string used to sort the results.", - "type": "string", - "enum": [ - "created_at", - "transfer_received_at", - "user_action_required_by" - ], - "default": "created_at" - } - }, - { - "name": "statuses", - "summary": "The statuses of transactions.", - "description": "The statuses of the transaction to filter by.", - "required": false, - "schema": { - "title": "status", - "description": "The statuses of the transaction to filter by.", - "type": "array", - "enum": [ - "incomplete", - "completed", - "refunded", - "expired", - "error", - "pending_stellar", - "pending_external", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "pending_anchor", - "pending_trust", - "pending_user", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update" - ] - } - }, - { - "name": "page_size", - "summary": "The number of transactions to return.", - "description": "The number of records to return in each page.", - "required": false, - "schema": { - "title": "page_size", - "description": "The number of records to return in each page.", - "type": "integer", - "default": 20 - } - }, - { - "name": "page_number", - "summary": "The page number of transactions to return.", - "description": "Page number to use for continuous search. Page count beings at 0.", - "required": false, - "schema": { - "title": "page_number", - "description": "Page number to use for continuous search. Page count beings at 0.", - "type": "integer", - "default": 0 - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionsExample", - "description": "Example request to the `get_transactions` method.", - "params": [ - { - "name": "sep", - "value": "31" - }, - { - "name": "order_by", - "value": "created_at" - }, - { - "name": "statuses", - "value": [ - "completed" - ] - } - ], - "result": { - "name": "platformTransactionResponses", - "value": { - "records": [ - { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - ] - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and fee_details values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} \ No newline at end of file diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index d974d957c2..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - -| | | -| --- | --- | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [get_transaction](get_transaction.mdx) | -| | [get_transactions](get_transactions.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [request_trust](request_trust.mdx) | - diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 62a368d0ae..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: request_trust -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/overview.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 66953fcfde..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,4054 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - - -
- -

- Path Parameters -

-
-
    - - - -
-
-
-
- - -
- - - Transaction found. - - -
- - - - -
- - - Schema - -
- -
    -
    - - oneOf - - - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Bad Request - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Transaction not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 69389c61b6..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4205 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: eJztWN9P20gQ/ldG+3IgGUMpuoe8cSd6QuJ6qGmfKAobexxvWe+6O+MAjfK/n2btJA4JAVrpKp36lLCZnfn2m9/MFOsJqcGV+hi0I52x8Y7UdaLuDwjr+Mvw7PLgd5XEz+OT7svbNyLkawxarpznaqAmyGtaEpUjZcHU8qcaqFNr/R0Be/jaYHgAa4jBF8C9S1D4ADmSCZjD8OwyhY+lIdC1AWrq2gcmqPXEuGg2Ae1yMPwbQe2JzNgi7MlRwMxXFboc830xWOlbhKqxbGqLEPBrg8Q9KH0IYhLBamKxhGAIAuqsxBzuSnTAJYJrqjEGAY8WK3QsMtwEhzmMH6IIurz2xrHcp0pbiwG41A7q4KcmxxxuRP2IzDe8SVWiah10hYxBWJ8pI5RFdCpRTleoBoqwVokS+MKPGnBoMFGUlVhpNZgpfqijGAfjJipR6JpKXCjui64Tt80f++XC+9umXnfDGK13E+MmwhGLC8QZap5sB+ZDjmE0lpPn0WQBNWM+0qwSFa0WGEYBMzTTxXFDGEYtmNHivaL/WsAXurGsBn1FG48a1piZwiBBYdDmQj2vP/HOWAtjhIg9+i2F954xaWUJM+9yHR6AfIhe7N0Gk4NxoClDlwtLU20bTD+78xTTLkxMhcS6qtuYPgYfoPIB10EYApOjY5NpK4bxYYlLzLbhZPJnmH8R7ZqyLiXXWZTzHfRFA2vMLLOgZdYQuMbaBLS1jxnmMv7W0rN8meRWAgEnOuQWiSSPyAvc1hrsvf90cTGEi9Phx/30s3vnA+C9rmorELqAiQRDpR/AeY58dZDzyDf5ap1qMUhSAdwEjGMPN9tC7wbGKBKCOoVzwZVse5R3B6uH0WOftSWoqweFCfLcwkv5ax26g6lV2Dztc2LNDSFtc7sOQYuoYaxoWzis+/lyUTZbnYv3CIOPQfZCybjMizcYVaIWX/NYmopGiq7I3texSCUKQ/ASonWbKyNitFb3T/CeMThte0exACw9RKwDP/lrD8xCQLusXDPKoaHHGoRRP6p0uMVYirwfxUrdfbc6TPo6SfpJX2cXN+tmloSNjCv8qKlzvYYsa4h9hWHt5+tEsWErjhpGRwzPLk+tVfONxHxnrLSIzaa5Cv8YAjGnujiJgSxZsmg9CRRRTcwFgtyQHlvMYa+rCjDGUk+ND/tPxuCyd20LQuMYJ5GXZZk5PtqsMeYbCkwNZNxEYhB1yMrYdVP4u6GY1rUnw2aKT6dDhNJ25BeC2cRyKZ2+6+rsoSGMpGbesXGNb6gDl0KUzHzjuC0VBJrhKFXzawl/qr2TzBzM1PHRkXys2+kNSFD4xuVpzCDH6FikdV1bk8Xh5vALyZVZ70Xe4T9FnA66t/nxF8xi7HbR09N/YYiHZ5e/R95eLn988soLb9+o+fV8LqF6su3Jf+gcPrQT12ve+hhAHWTaZNOS29aUjfI2T5TJtxzP+1PTVXe7l3Rn8WDxiJPdfpNMer3vftJ75lKJGR3FEi6hc4sParCY7xMVK/7OOV8iu0IufTfkx1mVSzVQh4/6A2GYLubXJlg1UCVzTYPDw9pqLnyoDlqRtGvnbZlOM1/F/JGSKK8VJS3vb9Oj9KgXfpedHhhGPRv9TEb3hS1obUmF0056fuwxIN3CO3ScwjkDlb6xuRSa0pP0bhnroA5mqhnBId/5cBsbeifZTRs6y7BrnUXwVZyHzqMJ5G5p6cyjk+JKUWLckHEy8bCHAjkro+a2CUQBKdm4sRTJrQkYJji9PE8/O5UoazJ0hMJWVwZPa1lS4DjytWJ/cHh4d3eX6vhr6sPksLtKhxfnf569H54dHKdHaclV225qT1xp11P8ATkYnCJouOhWtl173myVE79Wvt0rX5fVjPcsGWKcJHx03axLsSvFjxZzCVM5n83GmvBTsPO5HLc9URJv0c3VoNCWcId39j50NWQfXrEDPgG7LSvthtrVFBU7ycvx/N92tp1M9VbmH6br147203a05338/Q7+r2f93Zm9Wjq/N15fOe/vhNPfP74Tz4/P/M8jXK4lK4zX8kcwAlINruTfcSVqiZPVcHaaZVhz79bGaLk2k/119lHN5/8C+u+qUg== -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - -
-
-
-
- - -
- - - Transaction found. - - -
- - - - -
- - - Schema - -
- -
    -
    - - oneOf - - - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Bad Request - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Transaction not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/versions.json b/ap_versioned_docs/version-3.0/api-reference/platform/transactions/versions.json deleted file mode 100644 index 15ec16df99..0000000000 --- a/ap_versioned_docs/version-3.0/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/ap_versioned_docs/version-3.0/assets/SEP24-state-diagram.png b/ap_versioned_docs/version-3.0/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png b/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet.png b/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png b/ap_versioned_docs/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-3.0/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sep24-withdrawal-flow-diagram.png b/ap_versioned_docs/version-3.0/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-3.0/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sep6-withdrawal-flow-diagram.png b/ap_versioned_docs/version-3.0/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_job.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_job.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png b/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/ap_versioned_docs/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/CONTRIBUTING.md b/ap_versioned_docs/version-3.1/CONTRIBUTING.md deleted file mode 100644 index f246fd3bcd..0000000000 --- a/ap_versioned_docs/version-3.1/CONTRIBUTING.md +++ /dev/null @@ -1,343 +0,0 @@ ---- -draft: true ---- - -# Welcome to Anchor Platform Madness - -Hello, and welcome to the newly versioned home of the Anchor Platform -documentation! - -We're super glad to have you here, and hopefully this document will help you -understand how (and more importantly _where_) to make the needed changes to our -documentation. Let's start off with a bit of Docusaurus vocabulary, shall we? - -## TL;DR - -- For _unreleased_ versions of Anchor Platform: - - Add and edit docs in `/platforms/anchor-platform` - - Update and regenerate API docs in `/openapi/anchor-platform/main-*.yaml` -- For _released_ versions of Anchor Platform: - - Update and change docs in `/ap_versioned_docs` - - Update and regenerate API docs in `/openapi/anchor-platform/versions/*.yaml` - -Release a **new version** using the following yarn script: - -```bash -# replace `3.0.0` with the needed version -VERSION=3.0.0 yarn ap:versions:new -``` - -> _Note:_ I think the above yarn command is currently incompatible with Windows, -> though I could be wrong. - -Regenerate API docs for **already released** versions using the following yarn -script. This regenerates API docs for **all** the released versions, so you may -want to be judicious about which files you add to your commit. - -```bash -yarn ap:versions:regen -``` - -## Table of Contents - -- [TL;DR](#tldr) -- [More About Docusaurus than You Ever Wanted to Know](#more-about-docusaurus-than-you-ever-wanted-to-know) - - [Versions Nomenclature](#versions-nomenclature) - - [Plugins](#plugins) - - [Instances](#instances) - - [Links](#links) - - [Examples](#examples) -- [Directories to Know](#directories-to-know) - - [Directories You Already Know About](#directories-you-already-know-about) - - [New Shiny Directories](#new-shiny-directories) -- [Making New Versions](#making-new-versions) - - [Use Docusaurus to "Tag" a New Release](#use-docusaurus-to-tag-a-new-release) - - [Configure the OpenAPI plugin](#configure-the-openapi-plugin) - - [Copy the (bundled) OpenAPI Specfiles to the Versioned Directory](#copy-the-bundled-openapi-specfiles-to-the-versioned-directory) - - [Add Configuration to the OpenAPI Plugin Instance](#add-configuration-to-the-openapi-plugin-instance) -- [Updating Old Versions](#updating-old-versions) - - [Update Documentation Pages](#update-documentation-pages) - - [Update API Specification](#update-api-specification) - -## More About Docusaurus than You Ever Wanted to Know - -I know it can feel a bit mysterious, but here's some knowledge and context to -help your understanding of what's ahead. - -### Versions Nomenclature - -This is how Docusaurus defines these terms, so that's what I'll use in this -document, as well. - -- The **current version** refers to the version of the AP docs contained in the - `/platforms/anchor-platform` directory. This set of docs is available at the - `/platforms/anchor-platform/next` URL. This is the "under construction" set of - docs. - -- The **latest version** refers to the the most recently "released" set of AP - docs. These are located in `/ap_versioned_docs` (more on that later), and is - available at the `/platforms/anchor-platform` URL. This is the "stable" set of - docs. - -### Plugins - -There are two Docusaurus plugins at play here: - -1. `@docusaurus/plugin-content-docs` is the workhorse of Docusaurus. It handles - markdown rendering, routing, etc. When you think of updating `some-file.mdx`, - this is the plugin you're using. -2. `docusaurus-plugin-openapi-docs` is the plugin that is used to generate MDX - pages from the OpenAPI specfiles. This plugin is capable of versioning on its - own some some care and consideration must be taken in regards to its - configuration. - -Both of these plugin configurations have been broken out into a -`/config/anchorPlatform.config.ts` file, to ease management of them and -de-clutter somewhat the main `docusaurus.config.ts` file. - -### Instances - -This is where it gets a bit more "in the weeds," but I promise this part is -helpful to know. Both of the [plugins](#plugins) I mentioned above are really -just _instances_ of those two plugins. In fact each of those plugins is used -elsewhere in our docs site for Horizon, SDP, and just "regular" docs. It's not -_generally_ important to consider different plugin instances, but it _is_ -**quite relevant** when we discuss links. So... - -### Links - -Most often, **especially in versioned docs**, it's important to -[link to other docs by _relative_ file paths](https://docusaurus.io/docs/versioning#link-docs-by-file-paths). -This lets Docusaurus rewrite URLs when necessary at build-time. - -However, there's a **BIG EXCEPTION**! Docusaurus can only handle these links -when the source and target files are both process by the same _plugin instance_. -So, in practical terms: - -- If you are linking from **and** to MDX documents _within_ the same docs plugin - instance, use _relative file_ paths. -- If you are linking _across_ plugin instances, you **must** use _URL paths_. By - convention, we use _absolute_ paths for this, too, to make it a little more - obvious when this behavior is taking place. - -#### Examples - -This should help to make it a bit clearer. - -- I want to link _from_ the MDX document - `/platforms/anchor-platform/admin-guide/sep6/configuration.mdx` _to_ the MDX - document - `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: - - We're in the same `/platforms/anchor-platform` plugin instance - - Use a **relative file** path - - Link to it - `[something like this](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` -- I want to link _from_ the MDX document `/docs/learn/fundamentals/anchors.mdx` - _to_ the MDX document - `/platforms/anchor-platform/admin-guide/getting-started.mdx` - - We're "crossing" between the `/docs` and `/platforms/anchor-platform` plugin - instances - - Use an **absolute URL** path - - Link to it - `[something like this](/platforms/anchor-platform/admin-guide/getting-started)` - (note that there is no `.mdx` extension) -- I want to link _from_ the MDX document - `/platforms/anchor-platform/custody/README.mdx` _to_ the MDX document - `/docs/tools/developer-tools/wallets.mdx` - - We're "crossing" between the `/platforms/anchor-platform` and `/docs` plugin - instances - - Use an **absolute URL** path - - Link to it `[something like this](/docs/tools/developer-tools/wallets)` - (note that there is no `.mdx` extension) -- Wildcard! I want to link _from_ the MDX document - `/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx` - _to_ the MDX document - `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` - - We're "crossing" between the `/platforms/anchor-platform` and - `/platforms/stellar-disbursement-platform` plugin instances - - Use an **absolute URL** path - - Link to it - `[something like this](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` - (note that there is no `.mdx` extension) - -> _Note:_ Replace the `/platforms/anchor-platform` plugin instance with the -> `/platforms/stellar-disbursement-platform` plugin instance in the above -> examples, and it all works pretty much identically. - -Read more about links [here](https://docusaurus.io/docs/markdown-features/links) -(especially toward the bottom of the page). - -## Directories to Know - -There are a few directories that _all_ feed into the end product that is our -versioned AP documentation. - -### Directories You Already Know About - -- `/platforms/anchor-platform` This is where you are now, and traditionally has - been the place to modify any of the markdown content that becomes our AP docs - pages. Not much has changed here, except it does require a shift in mindset. - **All the documentation and content located here should now be considered the - `current` (under construction) version of AP docs.** So, as we're building for - `v3.x` (and beyond, eventually), you'll want to be updating _content here_. - Readers will still be able to _view_ this content before it's "released," but - they'll be told it's the unreleased version. - - There is also a new directory here you should know about: - - - `/platforms/anchor-platform/assets` Since it's likely that the various - images, diagrams, etc. will need to update/change from one version to - another, we're co-locating the relevant assets in this directory. This - allows them to be versioned as well. If you want to update a diagram or - image for an upcoming release, you should do so here. - -- `/openapi/anchor-platform` This is the same place you're probably already - familiar with. The files have recently been renamed, but for the most part you - want to modify `main-{platform,callbacks,custody}.yaml`, which will then be - "bundled up" later into the bundled file that contains everything in one file. - **The files in this directory should also be considered the `current` (under - construction) version of AP specification docs.** So, as we're building for - `v3.x` (and beyond, eventually), you'll want to be updating _specfiles here_. - - There is also a new directory here you should know about: - - - `/openapi/anchor-platform/versions` This directory stores a copy of the - _bundled_ specfiles for each version that is released. The plugin we use to - generate the API documentation for these specfiles gets configured to use - _these_ versioned specifications for all non-`current` documentation. - -- `/openrpc/src/anchor-platform` Recently, we moved the RPC specification into - this directory so it can benefit from the same build processes and validation - checks as the `stellar-rpc` specification. Similar to the other directories - covered so far, any changes to these files should be considered to be on the - `current` (under construction) version of the documentation. There's not - (yet?) a great deal of tooling or ergonomics around updating the "old" - versions of these specifications. The `current` version of the spec is - generated at - `/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json`. - This means it _does_ get included in the versioning process, so any changes to - "old" versions will likely just need to be made in those versioned specfiles - for now (more on that in the next section). - -### New Shiny Directories - -- `/ap_versioned_sidebars` We can pretty well breeze right past this one. When - you make a new version of the docs, Docusaurus stores a copy of the sidebar at - that point in time. You shouldn't really need to bother yourself with anything - in here. - -- `/ap_versioned_docs` This is where the "released" sets of the AP docs live. - Each time a version is released, _everything_ from within the - `/platforms/anchor-platform` directory gets copied into a subdirectory here. - You'll notice we already have a version `v2.8.4` here. As we release `v3.x`, a - _new_ copy of the files will be placed here. The `latest` (stable) copy of AP - docs are drawn from within this directory. If you come across something to fix - or update in a released version of the docs, you'll need to update accordingly - here. - -## Making New Versions - -As noted in the [TL;DR](#tldr), this process is automated with the -`VERSION=3.0.0 yarn ap:versions:new` script. However, here's what's happening -under the hood of that script. - -### Use Docusaurus to "Tag" a New Release - -It's actually pretty simple! Use the Docusaurus CLI to make a new release: - -```bash -# `ap` is the ID of the AP `@docusaurus/plugin-content-docs` plugin instance -yarn docusaurus docs:version:ap 3.0.0 -``` - -That makes a new copy of the docs in `/ap_versioned_docs`, and it will pretty -well "work" to get the new version displayed on the site. Any future changes to -the 3.0.0 version of the docs should be made within the `/ap_versioned_docs` -directory. - -### Configure the OpenAPI plugin - -We'll also want to be able to modify/update/re-generate the API documentation if -the need arises. So, we'll need to configure that -`docusaurus-plugin-openapi-docs` plugin instance accordingly. - -#### Copy the (bundled) OpenAPI Specfiles to the Versioned Directory - -At the moment, it's just as simple as copying the files: - -```bash -cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-3.0.0.yaml -cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-3.0.0.yaml -cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-3.0.0.yaml -``` - -> Notice how we're copying the _bundled_ file, not the _main_ file. This makes -> sure the versioned file contains everything it needs. - -#### Add Configuration to the OpenAPI Plugin Instance - -> _Note_: These `versions` parts of the configuration are now generated -> dynamically, using a `makeVersions()` function, so these manual config steps -> shouldn't need to be done. You _may_ want to advance/adjust the -> `anchorPlatformNextVersion` string in the config file, when you release a new -> version of docs, though. - -In order to be able to use the plugin's CLI to update already-released versions, -we have to update the configuration in `/config/anchorPlatform.config.ts`. Make -a new entry in each of the specfiles' `versions` object, and copy the formatting -of the entries already there. For reference, here's what it currently looks like -for the "platform server" in `v2.8.4`: - -```typescript -ap_platform: { - specPath: "openapi/anchor-platform/bundled-platform.yaml", - outputDir: "platforms/anchor-platform/api-reference/platform/transactions", - hideSendButton: true, - template: "src/template.mustache", - version: "3.0.0", - label: "v3.0.0", - baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', - versions: { - "2.8.4": { - specPath: "openapi/anchor-platform/versions/platform-2.8.4.yaml", - outputDir: "ap_versioned_docs/version-2.8.4/api-reference/platform/transactions", - label: "v2.8.4", - baseUrl: "/platforms/anchor-platform/api-reference/platform/transactions" - } - } -} -``` - -## Updating Old Versions - -### Update Documentation Pages - -Let's say I find a misspelling in the `v2.8.4` Admin Guide documentation. Find -the relevant file in the `/ap_versioned_docs/version-2.8.4` directory, fix it -and commit. Content updates are pretty easy here. - -> _Note_ Since the RPC specification is treated similar to the MDX docs, use the -> same process to make updates to the RPC specfile. For `v2.8.4`, it's located -> here: -> `/ap_versioned_docs/version-2.8.4/api-reference/platform/rpc/anchor-platform.openrpc.json` - -### Update API Specification - -This is a little more involved, but not much. Find and change the relevant -part(s) of the -`/openapi/anchor-platform/versions/{platform, callbacks,custody}-2.8.4.yaml` -specfile. - -Then, regenerate the MDX pages: - -```bash -# `ap-apis` is the ID of the AP `docusaurus-plugin-openapi-docs` plugin instance -yarn docusaurus gen-api-docs:version -p ap-apis:2.8.4 -``` - -> _Note:_ You can use a yarn script to automatically regenerate API docs for -> **all** released versions: `yarn ap:versions:regen`. This does indeed -> regenerate all versions, so you may want to be choosy about which files you -> add to the commit. - -Commit the changes, and you're off to the races. diff --git a/ap_versioned_docs/version-3.1/README.mdx b/ap_versioned_docs/version-3.1/README.mdx deleted file mode 100644 index cd11d48259..0000000000 --- a/ap_versioned_docs/version-3.1/README.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "The Anchor Platform: Build and Manage On/Off-Ramps on the Stellar Network" -sidebar_position: 10 -sidebar_label: Anchor Platform Introduction -description: "Learn how the Anchor Platform (AP) simplifies the process of building and managing a Stellar on and off-ramp. Learn about integrating with the AP or get API information." ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/ap_versioned_docs/version-3.1/admin-guide/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/architecture.mdx b/ap_versioned_docs/version-3.1/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/observer/observer.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/error.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/request.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/response.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/rpc.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/security/api_key.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/security/api_key.mdx deleted file mode 100644 index cc5ce4d80c..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/security/jwt.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/security/jwt.mdx deleted file mode 100644 index e2160a7cea..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/ap_versioned_docs/version-3.1/admin-guide/component/security/security.mdx b/ap_versioned_docs/version-3.1/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/ap_versioned_docs/version-3.1/admin-guide/custody-services/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/custody-services/configuration.mdx b/ap_versioned_docs/version-3.1/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 05483f0f6f..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:latest --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx b/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/example.mdx b/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/ap_versioned_docs/version-3.1/admin-guide/events/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/events/delivery.mdx b/ap_versioned_docs/version-3.1/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/ap_versioned_docs/version-3.1/admin-guide/events/getting-started.mdx b/ap_versioned_docs/version-3.1/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/ap_versioned_docs/version-3.1/admin-guide/events/integration.mdx b/ap_versioned_docs/version-3.1/admin-guide/events/integration.mdx deleted file mode 100644 index 98c919e72b..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/events/integration.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/ap_versioned_docs/version-3.1/admin-guide/getting-started.mdx b/ap_versioned_docs/version-3.1/admin-guide/getting-started.mdx deleted file mode 100644 index 383c188869..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/getting-started.mdx +++ /dev/null @@ -1,399 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:latest -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -The Anchor Platform supports two approaches for configuration: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -### Sentry - -The Anchor Platform supports [Sentry](https://sentry.io/) for error tracking. To enable Sentry, add the following environment variables. - - - -```bash -# dev.env -SENTRY_DSN=[your sentry dsn] -SENTRY_RELEASE=[your release version] -SENTRY_ENVIRONMENT=[your environment] -SENTRY_DEBUG=[true|false] -SENTRY_AUTH_TOKEN=[your sentry auth token] -``` - - - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.1/admin-guide/overview.mdx b/ap_versioned_docs/version-3.1/admin-guide/overview.mdx deleted file mode 100644 index 6972fa3b25..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep1/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep1/README.mdx deleted file mode 100644 index 8344b44e88..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep10/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep10/README.mdx deleted file mode 100644 index 9d30c9f530..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Stellar Authentication -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_urls: - sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_urls: - sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d78a93bbd..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/configuration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/configuration.mdx deleted file mode 100644 index e7b83c238a..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash - - id: iso4217:USD - significant_decimals: 2 - # Optional support for XLM - - id: stellar:native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -// Required -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -// Optional -SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -`SEP24_INITIAL_USER_DEADLINE_SECONDS` is an optional param that defines the time in seconds a user has to act before the transaction moves to the next status. It determines the `user_action_required_by` field, which indicates the deadline. Check [JSON-RPC Methods][json-rpc-methods] for usage examples. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/example.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/example.mdx deleted file mode 100644 index 303368354c..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: "Example" -sidebar_position: 40 ---- - -Integrating with the Anchor Platform involves three key areas: - -- Building a web-based user experience that can be opened in a mobile web view -- Providing transaction status updates to the Anchor Platform -- Fetching transaction status updates from the Anchor Platform - -## Building a Web-Based User Experience - -The Anchor Platform does not offer a white-label UI that your business can utilize, and instead expects the business to build their own UI and backend system. We won't build an entire on & off-ramp user experience in this guide, but will cover the ways in which your existing product should be updated to be compatible with the Anchor Platform. - -### Authentication - -If your business has an existing on & off-ramp product, you likely have an existing system for user authentication. However, because the Anchor Platform authenticates the user prior to providing the business's URL, requiring the user to go through another form of authentication is actually unnecessary. In this way, the Anchor Platform can be thought of as providing an alternative form of authentication. - -The business is free to continue requiring users to authenticate using their existing system, but the ideal user experience would skip this step and create an authenticated session for the user if they have already authenticated using their Stellar account. - -The Anchor Platform adds a JWT `token` query parameter to the business's URL given to the wallet application. This token is signed by the previously-configured `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` value, and includes the information you need to identify the user. The process should look something like this: - -1. Pass the `token` added to the URL of your backend system -2. Verify the signature on the `token` and check its expiration -3. Create an authenticated session for the user identified by `token.sub` - -The decoded contents of the `token` will look something like this: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Note that the `sub` value identifies the user using a Stellar account and integer. This is what the value will be when custodial applications that use an omnibus account authenticate with your service. When non-custodial wallets authenticate, the token may look slightly different. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -The `sub` value here only contains a public key to identify the user, and the `data.client_domain` field identifies the wallet application used to authenticate. - -In both cases, all information in the `data` object is optional, and will only be present if the wallet provides that information. - -Let's add a backend server to our compose file that will be used to verify the token and create authenticated web sessions for users initiating transactions. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Let's create a simple Docker container for our application. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Now let's create a minimal NodeJS application. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -Below is an example of a backend server authenticating a user using NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Run this with the platform server and database and initiate a new transaction with the [demo wallet][stellar-demo-wallet]. Then, we'll send the token to our server. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Providing Updates to the Platform - -Let's create an endpoint for our business server that accepts the information collected in our UI. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": req.body.fee_details.total, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -This will update the Anchor Platform's database with the information provided and enable wallet applications to fetch this updated information so it can relay it back to the user. You should have already informed the user of the transaction's amounts and that your business's is waiting for the on-chain payment to arrive, but providing these updates allows users to view their transactions' statuses through their mobile application without opening the business' UI again. - -:::note - -At this time, the Anchor Platform does not send notifications to the wallet application when transaction statuses change, however, it is on our roadmap to add these notifications or "callback requests" so that wallet applications do not have to poll the Anchor Platform for updates. - -::: - -## Fetching Updates from the Platform - -If you only use the Anchor Platform to expose the SEP APIs to wallet applications, then you won't have a strong reason for fetching transaction status updates from the Anchor Platform, mostly because it won't update the transaction status until you make `JSON-RPC API` requests. - -However, if you use the Anchor Platform to monitor the Stellar network for incoming payments (associated with withdrawal transactions), the Anchor Platform will update transaction statuses when payments are received. - -There are two ways to fetch updates from the Anchor Platform, - -- Polling the Platform API's `GET /transactions/:id` endpoint for the transactions you're expecting a payment for -- Streaming transaction status change events from a Kafka cluster - -While streaming transaction status changes from a Kafka cluster may be a more robust and scalable approach, we're going to use the polling method in this guide. Setting up and using a Kafka cluster will be the subject of a different section of the docs. - -First, let's configure the Anchor Platform to observe the Stellar network for incoming payments. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:latest - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -The `--stellar-observer` command starts a process that monitors the distribution accounts configured in your `config.yaml` file for withdrawal payments. - -If a payment is sent to one of these accounts and the memo attached to the transaction matches a `memo` value provided or generated by the Anchor Platform, the Anchor Platform will consider the transaction that memo is associated with as received and update the transaction's status to `pending_anchor`. It does this by making a `JSON-RPC API` request, so we need to configure the URL it should use. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Let's make some additions to the `server.js` file so we can poll the Anchor Platform for our expected payments. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Full Example Implementation - -Stellar provides an example business server implementation for SEP-24. It's split into two parts: 1) a web UI, accessible for the end user; and 2) a back-end implementation, used to get and push updates from/to the Anchor Platform. - -The code for web UI can be found [here][sep-24-ref-ui] - -The code for the backend is a part of the Anchor Platform, and is available as a [submodule][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/faq.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/getting-started.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index ce1d1dbf46..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building an on & off-ramp service compatible with [SEP-24][sep-24], the ecosystem's standardized protocol for hosted deposits and withdrawals. - -By leveraging the Anchor Platform's support for SEP-24, businesses make their on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap] - -## The Basic User Experience - -The complete customer experience a deposit and withdrawal goes something like this: - -1. The customer opens the SEP-24 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also chose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (e.g. makes a bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the wallet opens the given interactive URL and allows the customer to enter their transaction information (KYC has already been collected) -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/integration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/integration.mdx deleted file mode 100644 index 6caf77d254..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. For example, to expire transaction business should change the transaction status to `expired`: - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep24/setting-up-production-server.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 2fa9aa14e1..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep31/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep31/README.mdx deleted file mode 100644 index 3cf13af916..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep31/configuration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep31/configuration.mdx deleted file mode 100644 index ad9f04a4f1..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:BRL - country_codes: - - BR - - id: iso421:BRL - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BR - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Let's test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BR"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep31/getting-started.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index d6b239c2df..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integrating with the Anchor Platform for the purpose of building a cross-border payments recieve-side service compatible with [SEP-31][sep-31], the ecosystem's standardized protocol for cross-border payments. - -By leveraging the Anchor Platform's support for SEP-31, businesses make their service compatible with Stellar's existing set of send-side services. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep31/integration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep31/integration.mdx deleted file mode 100644 index b4feef0b58..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,669 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:latest - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_receiver` status. To request funds from the Sending Anchor, the Receiving Anchor should change the transaction status to `pending_sender` by making the following RPC request: - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -The transaction status will be changed to `pending_sender`. - -### Funds Received - -If the Sending Anchor has sent the funds, the Receiving Anchor should change the transaction status to `pending_receiver` by making the following JSON-RPC request: - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -items: - - ... - sep31: - quotes_required: false -``` - - - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep6/README.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep6/README.mdx deleted file mode 100644 index 7af76ff6bd..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep6/configuration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep6/configuration.mdx deleted file mode 100644 index e5e6dc64e5..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:USD - - id: iso4217:USD - significant_decimals: 2 - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -See the [KYC API][platform-api-kyc] and [Rates API][get-rates-api] for details on the endpoints that must be implemented on your business server. - -### Additional Optional Configuration - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Businesses can set a deadline for user actions on transactions using the `user_action_required_by` field. For examples, see [JSON-RPC Methods][json-rpc-methods]. In addition, the `initial_user_deadline_seconds` parameter sets a default time (in seconds) a user has to act before the transaction moves into the `EXPIRED` status. - - - -```bash -# dev.env -SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep6/getting-started.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 3a1d875e92..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 10 ---- - -This guide will walk you through configuring and integration with the Anchor Platform for the purpose of build an on & off-ramp service compatible with [SEP-6][sep-6], the ecosystem's standardized protocol for programmatic deposit and withdrawals. - -By leveraging the Anchor Platform's support for SEP-6, businesses make their own on & off-ramp service available as an in-app experience through Stellar-based applications such as wallets and exchanges, extending their reach and connecting with users through the applications they already use. - -Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform, and configured necessary features, required by SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. - -## The Basic User Experience - -The complete customer experience for a deposit or withdrawal using SEP-6 is as follows: - -1. The customer opens the SEP-6 wallet application of their choice -2. The customer selects an asset to deposit and the wallet finds an anchor (clients could also choose the specific anchor) -3. Once the wallet authenticates with the anchor, the customer begins entering their KYC and transaction information requested by the anchor -4. The wallet provides instructions, and the customer deposits real fiat currency with the anchor (such as bank transfer) -5. Once the wallet receives the deposit, the customer receives the tokenized asset on the Stellar network from the anchor's distribution account - -The customer can then use the digital asset on the Stellar network for remittance, payments, trading, store of value, or another use case not listed here. At some later date, the customer could decide to withdraw their assets from the Stellar network, which would look something like this: - -1. The customer opens their wallet application -2. The customer selects the asset for withdrawal and wallet finds the anchor -3. After authenticating with the anchor, the customer can enter their transaction information and any additional KYC information that wasn't already collected -4. After asking for customer approval, the wallet sends the specified amount of the customer's asset balance to the anchor's distribution account on Stellar -5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/ap_versioned_docs/version-3.1/admin-guide/sep6/integration.mdx b/ap_versioned_docs/version-3.1/admin-guide/sep6/integration.mdx deleted file mode 100644 index 179218144d..0000000000 --- a/ap_versioned_docs/version-3.1/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/ap_versioned_docs/version-3.1/api-reference/README.mdx b/ap_versioned_docs/version-3.1/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/ap_versioned_docs/version-3.1/api-reference/_category_.json b/ap_versioned_docs/version-3.1/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/README.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/README.mdx deleted file mode 100644 index 1abac748cf..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | --------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/del-customer.api.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 3b0cbc87dc..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request for this endpoint is identical to the -[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) -request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/get-customer.api.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 8b11caa759..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request and response for this endpoint is identical to the -[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) -request and response defined in SEP-12. - -This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the -fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. -If the server still needs more info, or the server needs updated information, it should return the fields required. - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/get-rates.api.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 64639632c5..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must -use exchange rates that are communicated to the client application requesting the transaction. When clients make -requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or -[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the -client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter -for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, -either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either -`sell_asset` or `buy_asset` is a Stellar asset. - - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status -code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/post-event.api.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0aeff4fccd..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Receive a JSON object representing an event. - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/put-customer.api.mdx b/ap_versioned_docs/version-3.1/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 85959337ff..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: eJztGmtv47jxrxDsh7tdyHLWF7Sov6Ve78G9XjbNo8UhDmRKGkW8lUgdSSUxAv/3YkjJelhytr0W6AL+ksic4bw4M5wh+UoNe9R0fk8XpTYyB6Xpg0dfJhoKO3yzvJr8kXr2/4dZ9TE7rz5++IDYMehI8cJwKeicvn9/mwK5EFEqFbnKmEmkykksQRMhDSlAaa4NYWJLooon+emXBYmZYf7792uxFkhAwW8lWLyYKNCFFBpIIhUxKdcERFxILgxhCgiPQRgesYwYSUwKa3G/ubq7JdOa/ubh+9SYQs+n00du0jL0I5lPtYEsY6r+PymUNDKS2TTMZDjNmTagphBJvdUG8qmGYnJ29mHm5/EfasKTojTv1mJQ1hgSLiAmXBBnPB9VW2QcUOyiyHjE0GSa5OzLXl9NnrlJUQuSyCyTz1w87m0RynjrkeeURynhGq3xzFQMcaU3YdbofmV8vRZ5qQ15YhmPmQErXm1+REeLk4JpDbFXyW5KJSys1vA7TTY83vjkupYvksIwLlAuKbIt0Ubhd8Ihi1H6LFuLEMaEI6yl4aZlhumvWoqNpY4GMtsCBpmuRcgFU9s2Q/K1/PIyM7xgykzRKSdogB7LtaAelQUoK9QqpnNalKYODurRai3+IuMtnb/SajJ+9pXBMR2lkDP8Qup0TmX4K0SGerRQyMVw0AjlMf7tBhJGweojkUlnQVAht07Ot4yNlcrnZEIYKRQ8cVlqgjFQietTr5bArRfdeZRFkSyd7Iecb1xUEKnIz+ULxOTCYRNWmtTFm4G4se0+0p84cw5/Nsg0h1wOc0QIOmtZR3SyRcdijeqWGSM6ZQpiUomPAQEKrBBdCMbIpvrejAoTuNEhiRCCNrWSldr5Vi3bm4IdcvQoiDLHtMpj6tGU6RRx4MXQh12NfEwQFuFg1x+4JiGgoX76ZRFjGPhrcQPOHve3OPGmgIgnlWv+t1MhijbRbQ7vSCyjMgdh2tnP5u5cYroWifTX4pNUxO0hZCtLEjFRpUz8qYh8FlZtXTs55imXCRL+WLr4bJGZnaPjT+qs6/xoo6GYnU/2+wAaC9fRhfmBOxjFhHY2DsYisoVDeOX/LiP30iaqifyY1jLiGCw++WcKwgJUbuUniZJ5dzljKEDEmrhlXos2v+/Bf/S9xoo1Fa5tnHN0PjRzxtQjZooc3VC/G1Y24UqbQLAcWumpAWfsGJTFMUfWLDuKo0DrwAaD2gaRjIcRtWEGAqmCQsknLqJhrIib7SCgkNqwbJx8JccgLJchzyAQZR6CGsSAnPEsOEYj5MqkAe6wh2CPulWic2oR9uhFxkb0dPA3jRYy8WXc9hZa5aFj2nXw6vwzwusNKkUqxVFLWqxQ4b581OAvBhQ6lvX8BFRQbxmHLpGx8CjLKCwDlnF2dPFzKWB7jEoHz/poPMZPbQsjj3pLhTK8DX6EQkHkcsWdBrIZNsaGcKENsHhwUzPspcpeI6Bxt5FRVBbMCTMYC0Umt6DGCewxjpkgY+KxZI8w7tw8HndGHr8dHDwOuNYlfH1U8jiAl4K7beXfmnbEcXhx1A4aXgbHFSSgFMvGVrGTtIInUPut9+0M9hY6Ogk3GQ5dNXVvVYdb8EANfap0T5XuqdL9lirdU/F3Kv5Oxd+p+DsVf/+z4q9IpZFo8ERJV3qMEnQnmp1JIYu+fOUcIQ1T24AV6J0sC2QS1GS+ksIbdaqjVigpk0CBxrJgKH0Nkh6rcds0ZRJwEckhrxo2Uj0r408gBqUenPf/V1f/XNfSTYG9s4K6KtcqNjs7O8wVN2UUgdaYAv7jE+j6yAirNNyFS3v1M1StD27a5aDZ67LvYrFYXt0uP1KPXl1/XixvblaXP1KPXi6XH2+C1eWnz9Sj18u/LheI9GBLEjzPHxK0qTeuOsK1FbBzuldRB8oMZ5VG5v1A5TIercLbcyGPUnaWYSjDp5JHbXaUKcWQFjeQD8UXZt7CqdeChlJmwETlENW+EwcnIw0a6fd45N4JPfqP5fXq02pxcbv6fBlcL/9+t7qunBOUkkNp3q5ODlqzx6HNqBX1P0Krm3bhXU0/HwrwlbDXdu5W9PdEeXd1x/TwhiN9180SbvZDo9TSDtRqnB+qcSkN+SRLEX8LOlT1p9B4K0vn96/0C2zpvL4N96httb7uVnz3gH5hUlndIKIWzKR0Tve30hR3R/WEV+7Iq1QZndO6ZY1YlmEN4Iel5rjHTRyuDy8sL9Dr7VVvJHOKrNCG183N5NIh1Rm8CYb9QUgz5IrR7u+qAHPNez+g+rckrT231VU2o61msiVIv4fsgAZaxwY+0DE2QNcoNr87/eEBj47e3W6wlUC6TWA7Aza9H52dzc4nZ3+azP5Me21ef8KYXq2mrjfY7+VGwP2F6nRuveFuw9YD9vq0lilG2rOW/TtdWWu8acYOTN7twUbATevVItrruA4gfenq7qg/cmD2di/U9oROCzQAGBCl1/A0gH2f0xka845eV9P1t6EG5gDj0MDtur8VX1iyNz87VfNIuPSq35HYGcHCxC0S2xBjMnSwH/wz/4z23xbZ49qtiFIlBZ77LqosqcnF1Yp0zuaqt0LN8W7/RVKhJG4vfv3gaJyuO2nTzROdnMVAwm33NPg55RkQbs9iCyWxPHeHuvXrHXvXy0h08ALIJ7d40+tS+nd6f8itq6csuvU6iCUJRKbLuY8/xMIdA1ZbXqPejd1U0Et5BFiSzF9p5dwXBYtSIDO7DM3mNJ9On5+ffWahvlSP02qqnv5ttVhe3iwnM//MT02e2b0XE3DORIvwQgG+RpKK3BX2XVJdF5EVusFB+bgvG05Py05Py771p2VVxsebkGmRMW6bFxtdr1WBeE/3BeKDR1OpDY69voZMw53Kdjsc/q0EtaXz+wcsShVnIcb1PXYqKTC7S+6r14WTYXLrmr+qhh28xtt59aSLKILCtNAPCvZOgXt1d4u1Q/UmLndbF9K1ZL3mE2Xc7f4Fg5L/Sw== -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) -request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors -must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will -be forwarded to the anchor as with the `application/json` content type. Requests containing -binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/callbacks/versions.json b/ap_versioned_docs/version-3.1/api-reference/callbacks/versions.json deleted file mode 100644 index 23f5ac539d..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/README.mdx b/ap_versioned_docs/version-3.1/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/create-custody-transaction.api.mdx b/ap_versioned_docs/version-3.1/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index ec0c146793..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server creates custody transaction record in DB. - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/generate-unique-address.api.mdx b/ap_versioned_docs/version-3.1/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 900893c971..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/send-payment.api.mdx b/ap_versioned_docs/version-3.1/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 68a7e02b9c..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to send payment. - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/send-refund.api.mdx b/ap_versioned_docs/version-3.1/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 08eb1ac79f..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/custody/versions.json b/ap_versioned_docs/version-3.1/api-reference/custody/versions.json deleted file mode 100644 index 26d39ec7ce..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/README.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/README.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index c3ff0ede70..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,10163 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.8.4" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "get_transaction", - "summary": "Retrieve a transaction.", - "description": "Retrieve a transaction by its ID.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionExample", - "description": "Example request to the `get_transaction` method.", - "params": [ - { - "name": "id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - } - ], - "result": { - "name": "platformTransactionResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - } - } - ] - }, - { - "name": "get_transactions", - "summary": "Retrieve a list of transactions.", - "description": "Query a list of transactions by SEP, transaction status or other criteria.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "sep", - "summary": "Sep of the transaction.", - "description": "Sep of the transaction belongs to", - "required": true, - "schema": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - } - }, - { - "name": "order_by", - "summary": "The field that transactions will be ordered by .", - "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", - "required": false, - "schema": { - "title": "order_by", - "description": "The order by string used to sort the results.", - "type": "string", - "enum": [ - "created_at", - "transfer_received_at", - "user_action_required_by" - ], - "default": "created_at" - } - }, - { - "name": "statuses", - "summary": "The statuses of transactions.", - "description": "The statuses of the transaction to filter by.", - "required": false, - "schema": { - "title": "status", - "description": "The statuses of the transaction to filter by.", - "type": "array", - "enum": [ - "incomplete", - "completed", - "refunded", - "expired", - "error", - "pending_stellar", - "pending_external", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "pending_anchor", - "pending_trust", - "pending_user", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update" - ] - } - }, - { - "name": "page_size", - "summary": "The number of transactions to return.", - "description": "The number of records to return in each page.", - "required": false, - "schema": { - "title": "page_size", - "description": "The number of records to return in each page.", - "type": "integer", - "default": 20 - } - }, - { - "name": "page_number", - "summary": "The page number of transactions to return.", - "description": "Page number to use for continuous search. Page count beings at 0.", - "required": false, - "schema": { - "title": "page_number", - "description": "Page number to use for continuous search. Page count beings at 0.", - "type": "integer", - "default": 0 - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionsExample", - "description": "Example request to the `get_transactions` method.", - "params": [ - { - "name": "sep", - "value": "31" - }, - { - "name": "order_by", - "value": "created_at" - }, - { - "name": "statuses", - "value": [ - "completed" - ] - } - ], - "result": { - "name": "platformTransactionResponses", - "value": { - "records": [ - { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - ] - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and fee_details values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} \ No newline at end of file diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/README.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index ee8fdac5d1..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [do_stellar_payment](./do_stellar_payment.mdx) | -| | [do_stellar_refund](./do_stellar_refund.mdx) | -| | [get_transaction](./get_transaction.mdx) | -| | [get_transactions](./get_transactions.mdx) | -| | [notify_amounts_updated](./notify_amounts_updated.mdx) | -| | [notify_customer_info_updated](./notify_customer_info_updated.mdx) | -| | [notify_interactive_flow_completed](./notify_interactive_flow_completed.mdx) | -| | [notify_offchain_funds_available](./notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](./notify_offchain_funds_pending.mdx) | -| | [notify_offchain_funds_received](./notify_offchain_funds_received.mdx) | -| | [notify_offchain_funds_sent](./notify_offchain_funds_sent.mdx) | -| | [notify_onchain_funds_received](./notify_onchain_funds_received.mdx) | -| | [notify_onchain_funds_sent](./notify_onchain_funds_sent.mdx) | -| | [notify_refund_pending](./notify_refund_pending.mdx) | -| | [notify_refund_sent](./notify_refund_sent.mdx) | -| | [notify_transaction_error](./notify_transaction_error.mdx) | -| | [notify_transaction_expired](./notify_transaction_expired.mdx) | -| | [notify_transaction_on_hold](./notify_transaction_on_hold.mdx) | -| | [notify_transaction_recovery](./notify_transaction_recovery.mdx) | -| | [notify_trust_set](./notify_trust_set.mdx) | -| | [request_offchain_funds](./request_offchain_funds.mdx) | -| | [request_onchain_funds](./request_onchain_funds.mdx) | -| | [request_trust](./request_trust.mdx) | - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx deleted file mode 100644 index c313dc6a1b..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: get_transaction -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "get_transaction")[0]} -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx deleted file mode 100644 index ccf6db4383..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: get_transactions -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "get_transactions")[0]} -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 62a368d0ae..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: request_trust -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/overview.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/README.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 3b8158bd32..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx b/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index aaefea43a9..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - - - - - - - - - - - - - - - diff --git a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/versions.json b/ap_versioned_docs/version-3.1/api-reference/platform/transactions/versions.json deleted file mode 100644 index 15ec16df99..0000000000 --- a/ap_versioned_docs/version-3.1/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/ap_versioned_docs/version-3.1/assets/SEP24-state-diagram.png b/ap_versioned_docs/version-3.1/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-1.png b/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-2.png b/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png b/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet.png b/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png b/ap_versioned_docs/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sep24-deposit-flow-diagram.png b/ap_versioned_docs/version-3.1/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sep24-withdrawal-flow-diagram.png b/ap_versioned_docs/version-3.1/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sep31-transition-diagram.png b/ap_versioned_docs/version-3.1/assets/sep31-transition-diagram.png deleted file mode 100644 index a04c0a28ea..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sep6-deposit-flow-diagram.png b/ap_versioned_docs/version-3.1/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sep6-withdrawal-flow-diagram.png b/ap_versioned_docs/version-3.1/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_job.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_job.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png b/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/ap_versioned_docs/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/ap_versioned_sidebars/version-2.10-sidebars.json b/ap_versioned_sidebars/version-2.10-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-2.10-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versioned_sidebars/version-2.11-sidebars.json b/ap_versioned_sidebars/version-2.11-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-2.11-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versioned_sidebars/version-2.8-sidebars.json b/ap_versioned_sidebars/version-2.8-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-2.8-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versioned_sidebars/version-2.9-sidebars.json b/ap_versioned_sidebars/version-2.9-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-2.9-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versioned_sidebars/version-3.0-sidebars.json b/ap_versioned_sidebars/version-3.0-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-3.0-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versioned_sidebars/version-3.1-sidebars.json b/ap_versioned_sidebars/version-3.1-sidebars.json deleted file mode 100644 index 956f979c6f..0000000000 --- a/ap_versioned_sidebars/version-3.1-sidebars.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "anchor_platform": [ - { - "type": "category", - "label": "Anchor Platform", - "link": { - "type": "doc", - "id": "README" - }, - "items": [ - { - "type": "autogenerated", - "dirName": "." - } - ] - } - ] -} diff --git a/ap_versions.json b/ap_versions.json deleted file mode 100644 index ec711dbe17..0000000000 --- a/ap_versions.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - "3.1", - "3.0", - "2.11", - "2.10", - "2.9", - "2.8" -] diff --git a/config/anchorPlatform.config.ts b/config/anchorPlatform.config.ts deleted file mode 100644 index 65b9267242..0000000000 --- a/config/anchorPlatform.config.ts +++ /dev/null @@ -1,93 +0,0 @@ -import type { PluginConfig } from '@docusaurus/types'; -import versions from '../ap_versions.json' -import { makeEditUrl } from './constants'; - -import type * as Plugin from '@docusaurus/types/src/plugin'; -import type * as OpenApiPlugin from 'docusaurus-plugin-openapi-docs'; -import type { APIVersionOptions } from 'docusaurus-plugin-openapi-docs/src/types'; - -const anchorPlatformNextVersion: string = "3.0.0" - -export const anchorPlatformPluginInstances: PluginConfig[] = [ - [ - "docusaurus-plugin-openapi-docs", - { - id: "ap-apis", - docsPluginId: 'ap', - config: { - ap_platform: { - specPath: "openapi/anchor-platform/bundled-platform.yaml", - outputDir: "platforms/anchor-platform/api-reference/platform/transactions", - hideSendButton: true, - template: "src/template.mustache", - version: anchorPlatformNextVersion, - label: `v${anchorPlatformNextVersion}`, - baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', - versions: makeVersions('platform') - } satisfies OpenApiPlugin.Options, - ap_callbacks: { - specPath: "openapi/anchor-platform/bundled-callbacks.yaml", - outputDir: "platforms/anchor-platform/api-reference/callbacks", - hideSendButton: true, - template: "src/template.mustache", - version: anchorPlatformNextVersion, - label: `v${anchorPlatformNextVersion}`, - baseUrl: "/platforms/anchor-platform/next/api-reference/callbacks", - versions: makeVersions('callbacks') - } satisfies OpenApiPlugin.Options, - ap_custody: { - specPath: "openapi/anchor-platform/bundled-custody.yaml", - outputDir: "platforms/anchor-platform/api-reference/custody", - hideSendButton: true, - template: "src/template.mustache", - version: anchorPlatformNextVersion, - label: `v${anchorPlatformNextVersion}`, - baseUrl: "/platforms/anchor-platform/next/api-reference/custody", - versions: makeVersions('custody') - } satisfies OpenApiPlugin.Options, - } satisfies Plugin.PluginOptions, - }, - ], - [ - "@docusaurus/plugin-content-docs", - { - id: "ap", - path: "platforms/anchor-platform", - routeBasePath: "/platforms/anchor-platform", - docItemComponent: "@theme/ApiItem", - sidebarPath: "config/anchorPlatform.sidebar.ts", - editUrl: makeEditUrl, - exclude: ['**/component/**', '**/README.md'], - showLastUpdateTime: true, - showLastUpdateAuthor: true, - }, - ], -]; - -/** - * Dynamically make the versions object for each of the AP servers. - * - * These all follow a nearly identical patterns, so it's a lot of duplicated - * config to individually declare everything in the plugins. This function will - * read the "released" versions from the `ap_versions.json` file and generate - * the correct configuration for each of the versions found in that array. - */ -function makeVersions(server: ('platform'|'callbacks'|'custody')): {[key: string]: APIVersionOptions} { - const baseUrls = { - platform: "/platforms/anchor-platform/api-reference/platform/transactions", - callbacks: "/platforms/anchor-platform/api-reference/callbacks", - custody: "/platforms/anchor-platform/api-reference/custody", - } - - const versionsObject: {[key: string]: APIVersionOptions} = {} - versions.forEach((vString) => { - versionsObject[vString] = { - specPath: `openapi/anchor-platform/versions/${server}-${vString}.yaml`, - outputDir: `ap_versioned_docs/version-${vString}/api-reference/${server === 'platform' ? 'platform/transactions': server}`, - label: `v${vString}`, - baseUrl: baseUrls[server] - } - }) - - return versionsObject -} diff --git a/config/anchorPlatform.sidebar.ts b/config/anchorPlatform.sidebar.ts index 4efc14e375..36b7329bff 100644 --- a/config/anchorPlatform.sidebar.ts +++ b/config/anchorPlatform.sidebar.ts @@ -7,12 +7,12 @@ const sidebars: SidebarsConfig = { label: 'Anchor Platform', link: { type: 'doc', - id: 'README', + id: 'platforms/anchor-platform/README', }, items: [ { type: 'autogenerated', - dirName: '.', + dirName: 'platforms/anchor-platform', } ], }, diff --git a/config/constants.ts b/config/constants.ts index abe2625224..8cdc3ced1e 100644 --- a/config/constants.ts +++ b/config/constants.ts @@ -9,3 +9,35 @@ export const makeEditUrl = ({ locale, versionDocsDirPath, docPath }) => { } return `https://github.com/stellar/stellar-docs/edit/main/${versionDocsDirPath}/${docPath}` }; + +export const CODE_LANGS = { + bash: 'bash', + cpp: 'C++', + curl: 'cURL', + dart: 'Flutter', + flutter: 'Flutter', + swift: 'Swift', + docker: 'Dockerfile', + go: 'Go', + html: 'html', + kotlin: 'Kotlin', + kt: 'Kotlin', + java: 'Java', + javascript: 'JavaScript', + js: 'JavaScript', + json: 'JSON', + json5: 'JSON5', + python: 'Python', + scss: 'SCSS', + sql: 'SQL', + rust: 'Rust', + php: 'PHP', + toml: 'TOML', + ts: 'TypeScript', + tsx: 'TSX', + typescript: 'TypeScript', + yaml: 'YAML', +}; + +const GOOGLE_TRANSLATE_LANGUAGES: string = "af,sq,am,en,fa,ar,ps,ja,zh-CN,hy,az,eu,be,bn,bs,bg,ca,ceb,ny,zh-TW,co,hr,cs,da,nl,eo,et,tl,fi,fr,fy,gl,ka,de,el,gu,ht,ha,haw,iw,hi,hmn,hu,is,ig,id,ga,it,jw,kn,kk,km,ko,ku,ky,lo,la,lv,lt,lb,mk,mg,ms,ml,mt,mi,mr,mn,my,ne,no,pl,pt,pa,ro,ru,sm,gd,sr,st,sn,sd,si,sk,sl,so,es,su,sw,sv,tg,ta,te,th,tr,uk,ur,uz,vi,cy,xh,yi,yo,zu"; +export const GOOGLE_TRANSLATE_ELEMENT: string = ``; diff --git a/config/disbursementPlatform.config.ts b/config/disbursementPlatform.config.ts deleted file mode 100644 index 6e729bc0d7..0000000000 --- a/config/disbursementPlatform.config.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { makeEditUrl } from './constants'; - -import type { PluginConfig } from '@docusaurus/types'; -import type * as Plugin from '@docusaurus/types/src/plugin'; -import type * as OpenApiPlugin from 'docusaurus-plugin-openapi-docs'; - -export const disbursementPlatformPluginInstances: PluginConfig[] = [ - [ - "docusaurus-plugin-openapi-docs", - { - id: "sdp-apis", - docsPluginId: 'sdp', - config: { - stellar_disbursement_platform: { - specPath: "openapi/stellar-disbursement-platform/bundled.yaml", - outputDir: "platforms/stellar-disbursement-platform/api-reference", - sidebarOptions: { - groupPathsBy: "tag", - categoryLinkSource: 'tag', - }, - template: "src/template.mustache", - } satisfies OpenApiPlugin.Options, - } satisfies Plugin.PluginOptions, - }, - ], - [ - "@docusaurus/plugin-content-docs", - { - id: "sdp", - path: "platforms/stellar-disbursement-platform", - routeBasePath: "/platforms/stellar-disbursement-platform", - docItemComponent: "@theme/ApiItem", - sidebarPath: "config/disbursementPlatform.sidebar.ts", - editUrl: makeEditUrl, - exclude: ['**/component/**', '**/README.md'], - showLastUpdateTime: true, - showLastUpdateAuthor: true, - }, - ], -]; diff --git a/config/disbursementPlatform.sidebar.ts b/config/disbursementPlatform.sidebar.ts index 05f0601136..b8f256a0e8 100644 --- a/config/disbursementPlatform.sidebar.ts +++ b/config/disbursementPlatform.sidebar.ts @@ -1,6 +1,6 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; -import sdpSidebar from "../platforms/stellar-disbursement-platform/api-reference/sidebar"; +import sdpSidebar from "../docs/platforms/stellar-disbursement-platform/api-reference/sidebar"; const sidebars: SidebarsConfig = { stellar_disbursement_platform: [ @@ -9,30 +9,31 @@ const sidebars: SidebarsConfig = { label: "Stellar Disbursement Platform", link: { type: "doc", - id: "README", + id: "platforms/stellar-disbursement-platform/README", }, items: [ - "README", + "platforms/stellar-disbursement-platform/README", { type: "category", label: "Admin Guide", + collapsed: false, link: { description: "All you need to know about setting up, running, and using the Stellar Disbursement Platform.", type: "generated-index", - slug: "/admin-guide", + slug: "platforms/stellar-disbursement-platform/admin-guide", }, - items: [{ type: "autogenerated", dirName: "admin-guide" }], + items: [{ type: "autogenerated", dirName: "platforms/stellar-disbursement-platform/admin-guide" }], }, { type: "category", label: "API Reference", - collapsed: false, + collapsed: true, link: { description: "View all Stellar Disbursement Platform API information.", type: "generated-index", - slug: "/api-reference", + slug: "platforms/stellar-disbursement-platform/api-reference", }, items: [...sdpSidebar.filter((item) => item.type === "category")], }, diff --git a/config/sidebars.ts b/config/sidebars.ts index 9547a8d4ac..39948aa72b 100644 --- a/config/sidebars.ts +++ b/config/sidebars.ts @@ -1,4 +1,6 @@ import { SidebarsConfig } from "@docusaurus/plugin-content-docs"; +import ap_sidebars from "./anchorPlatform.sidebar"; +import sdp_sidebars from "./disbursementPlatform.sidebar" const sidebars: SidebarsConfig = { build: [ @@ -19,43 +21,10 @@ const sidebars: SidebarsConfig = { dirName: 'tokens', }, ], - data_overview: [ - 'data/README', + data: [ { - type: 'category', - label: 'Analytics', - link: { type: 'doc', id: 'data/analytics/README' }, - items: [ - { type: 'ref', id: 'data/analytics/hubble/README', label: 'Hubble' }, - { type: 'ref', id: 'data/analytics/analytics-providers/analytics-providers', label: 'Data Analytics Providers' }, - ] - }, - { - type: 'category', - label: 'APIs', - link: { type: 'doc', id: 'data/apis/README' }, - items: [ - { type: 'ref', id: 'data/apis/rpc/README', label: 'RPC' }, - { type: 'ref', id: 'data/apis/horizon/README', label: 'Horizon' }, - { type: 'ref', id: 'data/apis/migrate-from-horizon-to-rpc', label: 'Migrate Horizon to RPC' }, - ] - }, - { - type: 'category', - label: 'Indexers', - link: { type: 'doc', id: 'data/indexers/README' }, - items: [ - { type: 'ref', id: 'data/indexers/build-your-own/README', label: 'Build Your Own Indexer' }, - { type: 'ref', id: 'data/indexers/indexer-providers/indexer-providers', label: 'Indexer Providers' }, - ] - }, - { - type: 'category', - label: 'Oracles', - link: { type: 'doc', id: 'data/oracles/README' }, - items: [ - { type: 'ref', id: 'data/oracles/oracle-providers', label: 'Oracle Providers' }, - ] + type: 'autogenerated', + dirName: 'data', }, ], tools: [ @@ -64,8 +33,8 @@ const sidebars: SidebarsConfig = { dirName: 'tools', }, { type: 'html', value: 'SDF Platforms', defaultStyle: true, className: 'networkMenuHtmlItem'}, - { type: 'link', href: '/platforms/anchor-platform', label: 'Anchor Platform'}, - { type: 'link', href: '/platforms/stellar-disbursement-platform', label: 'Stellar Disbursement Platform'}, + { type: 'link', href: '/docs/platforms/anchor-platform', label: 'Anchor Platform'}, + { type: 'link', href: '/docs/platforms/stellar-disbursement-platform', label: 'Stellar Disbursement Platform'}, ], networks: [ { @@ -79,110 +48,8 @@ const sidebars: SidebarsConfig = { dirName: 'validators', }, ], - hubble: [ - { - type: 'category', - label: 'Hubble', - items: [ - { - type: "autogenerated", - dirName: "data/analytics/hubble", - }, - ], - collapsible: false, - }, - ], - galexie: [ - { - type: 'category', - label: 'Galexie', - items: [ - { - type: "autogenerated", - dirName: "data/indexers/build-your-own/galexie", - }, - ], - collapsible: false, - }, - ], - ingest: [ - { - type: 'category', - label: 'Ingest SDK', - items: [ - { - type: "autogenerated", - dirName: "data/indexers/build-your-own/ingest-sdk", - }, - ], - collapsible: false, - }, - ], - soroban_rpc: [ - { - type: "category", - label: "Stellar RPC", - items: [ - { - type: 'autogenerated', - dirName: 'data/apis/rpc', - }, - ], - collapsible: false, - }, - ], - analytics: [ - { - type: 'category', - label: 'Analytics', - items: [ - { - type: "autogenerated", - dirName: "data/analytics", - }, - ], - collapsible: false, - }, - ], - apis: [ - { - type: 'category', - label: 'APIs', - items: [ - { - type: "autogenerated", - dirName: "data/apis", - }, - ], - collapsible: false, - }, - ], - indexers: [ - { - type: 'category', - label: 'Indexers', - items: [ - { - type: "autogenerated", - dirName: "data/indexers", - }, - ], - collapsible: false, - }, - ], - oracles: [ - { - type: 'category', - label: 'Oracles', - items: [ - { - type: "autogenerated", - dirName: "data/oracles", - }, - ], - collapsible: false, - }, - ], + anchor_platform: ap_sidebars.anchor_platform, + stellar_disbursement_platform: sdp_sidebars.stellar_disbursement_platform, }; export default sidebars; diff --git a/config/theme/footer.ts b/config/theme/footer.ts index 925e87ceab..e90605c4ab 100644 --- a/config/theme/footer.ts +++ b/config/theme/footer.ts @@ -1,4 +1,4 @@ -import type { FooterLinkItem } from '@docusaurus/theme-common' +import type { FooterLinkItem } from "@docusaurus/theme-common"; const resources = { title: "Resources", @@ -23,6 +23,9 @@ const resources = { label: "Twitch", href: "https://m.twitch.tv/stellarorg/home", }, + { + html: 'llms.txt' + }, ] satisfies FooterLinkItem[], }; @@ -80,7 +83,7 @@ const community = { href: "https://communityfund.stellar.org/", }, ] satisfies FooterLinkItem[], -} +}; const about = { title: "About", @@ -102,11 +105,11 @@ const about = { href: "https://stellar.org/foundation/grants-and-funding", }, ] satisfies FooterLinkItem[], -} +}; export default { resources, tools, community, about, -} +}; diff --git a/config/theme/headTags.ts b/config/theme/headTags.ts new file mode 100644 index 0000000000..eb539dfd5d --- /dev/null +++ b/config/theme/headTags.ts @@ -0,0 +1,26 @@ +import type { HtmlTagObject } from '@docusaurus/types/src/plugin'; + +export const headTags: HtmlTagObject[] = [ + { + tagName: 'link', + attributes: { + rel: 'preconnect', + href: 'https://dev.visualwebsiteoptimizer.com', + }, + }, + { + tagName: 'script', + attributes: { + id: 'vwoCode', + }, + innerHTML: ` + window._vwo_code || (function() { + var account_id=814004, + version=2.1, + settings_tolerance=2000, + hide_element='body', + hide_element_style='opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;', + f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={nonce:v&&v.nonce,use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}v&&t.setAttribute('nonce',v.nonce);d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var n=this.getSettings(),i=d.createElement('script'),r=this;t=t||{};if(n){i.textContent=n;d.getElementsByTagName('head')[0].appendChild(i);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200||o.status===304){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var n=this.hide_element(),i=n?n+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=i;else t.appendChild(d.createTextNode(i));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var i=d.createElement('div');i.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;display: block !important;';i.setAttribute('id','_vis_opt_path_hides');i.classList.add('_vis_hide_layer');t.parentNode.insertBefore(i,t.nextSibling)}var o=window._vis_opt_url||d.URL,s='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(o)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:s})}else{this.load(s+'&x=true')}}};w._vwo_code=code;code.init();})(); + `, + }, +] diff --git a/config/theme/navbar.ts b/config/theme/navbar.ts index 7d4e194caf..6ab0ddb65e 100644 --- a/config/theme/navbar.ts +++ b/config/theme/navbar.ts @@ -1,4 +1,5 @@ -import type { NavbarItem } from '@docusaurus/theme-common' +import type { NavbarItem } from '@docusaurus/theme-common'; +import { GOOGLE_TRANSLATE_ELEMENT } from '../constants'; const build: NavbarItem = { type: 'dropdown', @@ -79,9 +80,9 @@ const build: NavbarItem = { activeBasePath: 'docs/build/apps/dapp-frontend', }, { - to: '/docs/build/apps/smart-wallets', - label: 'Smart Wallets', - activeBasePath: 'docs/build/apps/smart-wallets', + to: '/docs/build/apps/zk', + label: 'ZK Proofs on Stellar', + activeBasePath: 'docs/build/apps/zk', }, { type: 'html', @@ -93,6 +94,11 @@ const build: NavbarItem = { label: 'Contract Authorization', activeBasePath: 'docs/build/guides/auth', }, + { + to: '/docs/build/guides/contract-accounts', + label: 'Contract Accounts', + activeBasePath: 'docs/build/guides/contract-accounts', + }, { to: '/docs/build/guides/conventions', label: 'Contract Conventions', @@ -359,11 +365,6 @@ const data: NavbarItem = { label: 'Build Your Own', activeBasePath: 'docs/data/indexers/build-your-own' }, - { - to: '/docs/data/indexers/indexer-providers', - label: 'Providers', - activeBasePath: 'docs/data/indexers/indexer-providers' - }, { type: 'html', value: '
Oracles', @@ -409,6 +410,11 @@ const tools: NavbarItem = { label: 'Quickstart', activeBasePath: 'docs/tools/quickstart' }, + { + to: '/docs/tools/openzeppelin-relayer', + label: 'OpenZeppelin Relayer', + activeBasePath: 'docs/tools/openzeppelin-relayer' + }, { to: '/docs/tools/openzeppelin-contracts', label: 'OpenZeppelin Contracts', @@ -434,7 +440,7 @@ const tools: NavbarItem = { label: 'MoneyGram Ramps', activeBasePath: '/docs/tools/ramps/moneygram' }, - { + { type: 'html', value: '
Infra Tools', className: 'subtitle', @@ -450,11 +456,15 @@ const tools: NavbarItem = { className: 'subtitle', }, { - to: "/platforms/anchor-platform", + type: 'docSidebar', + // docId: "docs/platforms/anchor-platform/README", + sidebarId: 'anchor_platform', label: "Anchor Platform", }, { - to: "/platforms/stellar-disbursement-platform", + type: 'docSidebar', + // docId: "docs/platforms/stellar-disbursement-platform/README", + sidebarId: 'stellar_disbursement_platform', label: "Stellar Disbursement Platform", }, ] @@ -506,6 +516,23 @@ const validators: NavbarItem = { ] } +const translation: NavbarItem[] = [ + { + type: 'html', + position: 'right', + value: '
', + }, + { + type: 'html', + position: 'right', + value: GOOGLE_TRANSLATE_ELEMENT, + }, + // { + // type: 'localeDropdown', + // position: 'right', + // }, +] + export default { build, learn, @@ -514,4 +541,5 @@ export default { tools, networks, validators, + translation, } diff --git a/crowdin.yaml b/crowdin.yaml index 66881ff934..d66aae9834 100644 --- a/crowdin.yaml +++ b/crowdin.yaml @@ -15,18 +15,6 @@ files: - source: /docs/**/* translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name% ignore : ['**/*.api.mdx', '**/*.info.mdx', '**/*.tag.mdx', '**/*.schema.mdx', '**/*.json'] - # Stellar Disbursement Platform Docs Markdown files - - source: /platforms/stellar-disbursement-platform/**/* - translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs-sdp/current/**/%original_file_name% - ignore : ['**/*.api.mdx', '**/*.info.mdx', '**/*.tag.mdx', '**/*.schema.mdx', '**/*.json'] - # Anchor Platform Docs Markdown files - - source: /platforms/anchor-platform/**/* - translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs-ap/current/**/%original_file_name% - ignore : ['**/*.api.mdx', '**/*.info.mdx', '**/*.tag.mdx', '**/*.schema.mdx', '**/*.json'] - # Anchor Platform versioned docs - - source: /ap_versioned_docs/**/* - translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs-ap/**/%original_file_name% - ignore : ['**/*.api.mdx', '**/*.info.mdx', '**/*.tag.mdx', '**/*.schema.mdx', '**/*.json'] # Meeting Notes Blog Markdown files - source: /meeting-notes/**/* translation: /i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name% diff --git a/docs/build/README.mdx b/docs/build/README.mdx index adc54df58b..9a30445bb9 100644 --- a/docs/build/README.mdx +++ b/docs/build/README.mdx @@ -11,9 +11,9 @@ description: "Get started with developing on the Stellar with guides, tutorials, The Build section is split into three parts: -1. [Smart contracts](/docs/build/smart-contracts) -2. [Applications](/docs/build/apps) -3. [How-to guides](/docs/build/guides) +1. [Smart contracts](./smart-contracts/README.mdx) +2. [Applications](./apps/README.mdx) +3. [How-to guides](./guides/README.mdx) Explanations for each section are stated below: diff --git a/docs/build/apps/example-application-tutorial/README.mdx b/docs/build/apps/example-application-tutorial/README.mdx new file mode 100644 index 0000000000..3869655b2b --- /dev/null +++ b/docs/build/apps/example-application-tutorial/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 40 +--- + +import DocCardList from "@theme/DocCardList"; + +# Build a Payment App with the JS SDK + +Create a basic payment application to transfer tokens between accounts on the Stellar Testnet. + + diff --git a/docs/build/apps/example-application-tutorial/_category_.json b/docs/build/apps/example-application-tutorial/_category_.json deleted file mode 100644 index 6a2bd491a9..0000000000 --- a/docs/build/apps/example-application-tutorial/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 40, - "label": "Build a Payment App with the JS SDK", - "link": { - "type": "generated-index" - } -} diff --git a/docs/build/apps/example-application-tutorial/anchor-integration/README.mdx b/docs/build/apps/example-application-tutorial/anchor-integration/README.mdx new file mode 100644 index 0000000000..9f94cf8a4f --- /dev/null +++ b/docs/build/apps/example-application-tutorial/anchor-integration/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + +# Anchor Integration + +Interact with non-Lumen assets in your application. Use anchors for deposits and withdrawals to get tokens on or off the network. + + diff --git a/docs/build/apps/example-application-tutorial/anchor-integration/_category_.json b/docs/build/apps/example-application-tutorial/anchor-integration/_category_.json deleted file mode 100644 index 57bc1cfc0a..0000000000 --- a/docs/build/apps/example-application-tutorial/anchor-integration/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 60, - "label": "Anchor Integration", - "link": { - "type": "generated-index" - } - } \ No newline at end of file diff --git a/docs/build/apps/example-application-tutorial/overview.mdx b/docs/build/apps/example-application-tutorial/overview.mdx index a5c674e353..dc96a11968 100644 --- a/docs/build/apps/example-application-tutorial/overview.mdx +++ b/docs/build/apps/example-application-tutorial/overview.mdx @@ -109,7 +109,7 @@ import adapter from "@sveltejs/adapter-static"; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { - // Note: Your `dapter` configuration may need customizations depending + // Note: Your `adapter` configuration may need customizations depending // on how you are building and deploying your application. // highlight-start adapter: adapter({ diff --git a/docs/build/apps/example-application-tutorial/querying-data.mdx b/docs/build/apps/example-application-tutorial/querying-data.mdx index 69c939239b..a65f77d28e 100644 --- a/docs/build/apps/example-application-tutorial/querying-data.mdx +++ b/docs/build/apps/example-application-tutorial/querying-data.mdx @@ -31,7 +31,7 @@ const server = new Server(horizonUrl); /** * @module $lib/stellar/horizonQueries * @description A collection of function that helps query various information - * from the [Horizon API](https://developers.stellar.org/api/horizon). This + * from the [Horizon API](https://developers.stellar.org/docs/data/apis/horizon). This * allows us to abstract and simplify some interactions so we don't have to have * _everything_ contained within our `*.svelte` files. */ diff --git a/docs/build/apps/guestbook/passkeys-prerequisites.mdx b/docs/build/apps/guestbook/passkeys-prerequisites.mdx index 17eb6f5310..e025ed4126 100644 --- a/docs/build/apps/guestbook/passkeys-prerequisites.mdx +++ b/docs/build/apps/guestbook/passkeys-prerequisites.mdx @@ -3,7 +3,7 @@ title: Passkeys Prerequisites sidebar_position: 40 --- -Passkeys are an amazing way to help dapp developers (like yourself) connect users with their projects, protocols, applications, etc. Learn more on the [smart wallets page](../smart-wallets.mdx). +Passkeys are an amazing way to help dapp developers (like yourself) connect users with their projects, protocols, applications, etc. Learn more on the [passkey wallet guide](../../guides/contract-accounts/smart-wallets.mdx). We have been hard at work pioneering some tools to increase the adoption and ease-of-use for passkeys on Stellar. For this tutorial we'll be using the **incredible** [`passkey-kit` package](https://github.com/kalepail/passkey-kit), which takes SO MUCH of the headache and hassle out of the equation. diff --git a/docs/build/apps/ingest-sdk/README.mdx b/docs/build/apps/ingest-sdk/README.mdx new file mode 100644 index 0000000000..8dc6a3b4d4 --- /dev/null +++ b/docs/build/apps/ingest-sdk/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 55 +--- + +import DocCardList from "@theme/DocCardList"; + +# Build Custom Network Ingestion Pipeline + +With Stellar's [Composable Data Platform](https://stellar.org/blog/developers/composable-data-platform) you can build fast, lightweight data pipelines for ledger data. + + diff --git a/docs/build/apps/ingest-sdk/_category_.json b/docs/build/apps/ingest-sdk/_category_.json deleted file mode 100644 index 4013957377..0000000000 --- a/docs/build/apps/ingest-sdk/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 55, - "label": "Build Custom Network Ingestion Pipeline", - "link": { - "type": "generated-index" - } -} diff --git a/docs/build/apps/ingest-sdk/ingestion-pipeline-code.mdx b/docs/build/apps/ingest-sdk/ingestion-pipeline-code.mdx index 49c8d36fe7..e687bf6357 100644 --- a/docs/build/apps/ingest-sdk/ingestion-pipeline-code.mdx +++ b/docs/build/apps/ingest-sdk/ingestion-pipeline-code.mdx @@ -3,32 +3,19 @@ title: CDP Consumer Pipeline Sample Code sidebar_position: 30 --- -Complete code for a small sample of CDP consumer pipeline of Stellar network ledger metadata using the Stellar Go [Ingest SDK](overview.mdx#the-ingestion-sdk-packages) paired with new [CDP SDK](https://github.com/stellar/go/tree/master/ingest/cdp) to demonstrate data pipeline from ledger metadata to derived data model with event-driven, distributed processing to sample microservice (Python script) as subscriber. +Complete code for a small sample of a consumer pipeline of Stellar network ledger metadata using the Stellar Go [Ingest SDK](overview.mdx#the-ingestion-sdk-packages) to demonstrate data pipeline from ledger metadata to derived data model with event-driven, distributed processing to sample microservice (Python script) as subscriber. This example uses the ZeroMQ [goczmq](https://github.com/zeromq/goczmq) Go wrapper SDK, which requires a few o/s [dependent libraries to also be installed on the host machine](https://github.com/zeromq/goczmq?tab=readme-ov-file#dependencies). -Steps: -#1 - Put these files in a directory -#2 - compile and run with `go mod tidy;go build -o pipeline ./.; ./pipeline` -#3 - in separate terminal, run `python distributed_payment_subsciber.py`, this will perform distributed pipeline topology, as it receives messages with payment info from the pipeline process and does additional processing(printing it to console). +This example requires having access to a public ledger metadata lake that is actively populated with latest ledgers from Stellar mainnet. For purposes of the example it uses a reference data lake hosted on [AWS Open Data S3](../../../data/apis/rpc/admin-guide/data-lake-integration#1-accessing-a-data-lake) -### `go.mod` +### Step# 1 - Create example directory and copy following files to your workstation. +```bash +mkdir pipeline-example; cd pipeline-example -``` -module example/pipeline - -go 1.22 - -toolchain go1.22.1 - -require ( - github.com/stellar/go v0.0.0-20241008214914-7950d4254e6a - github.com/zeromq/goczmq v4.1.0+incompatible -) -``` - +```` ### `main.go` @@ -44,20 +31,20 @@ import ( "encoding/json" "fmt" "io" - "log" "os" "os/signal" "github.com/pelletier/go-toml" "github.com/pkg/errors" - "github.com/stellar/go/amount" - "github.com/stellar/go/historyarchive" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/network" - "github.com/stellar/go/support/datastore" - "github.com/stellar/go/support/storage" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/amount" + "github.com/stellar/go-stellar-sdk/historyarchive" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/support/datastore" + "github.com/stellar/go-stellar-sdk/support/storage" + "github.com/stellar/go-stellar-sdk/xdr" + "github.com/stellar/go-stellar-sdk/support/log" "github.com/zeromq/goczmq" ) @@ -113,6 +100,7 @@ func (transformer *AppPaymentTransformer) Process(ctx context.Context, msg Messa closeTime := uint(ledgerCloseMeta.LedgerHeaderHistoryEntry().Header.ScpValue.CloseTime) // scan all transactions in a ledger for payments to derive new model from + counter := 0 transaction, err := ledgerTxReader.Read() for ; err == nil; transaction, err = ledgerTxReader.Read() { for _, op := range transaction.Envelope.Operations() { @@ -134,12 +122,16 @@ func (transformer *AppPaymentTransformer) Process(ctx context.Context, msg Messa for _, processor := range transformer.processors { processor.Process(ctx, Message{Payload: jsonBytes}) } + counter++ } } } + if err != io.EOF { return errors.Wrapf(err, "failed to read transaction from ledger %v", ledgerCloseMeta.LedgerSequence()) } + + log.Infof("Published %v payments from ledger sequnce %v", counter, ledgerCloseMeta.LedgerSequence()) return nil } @@ -178,7 +170,7 @@ func (adapter *LedgerMetadataInboundAdapter) Run(ctx context.Context) error { BufferedStorageConfig: ingest.DefaultBufferedStorageBackendConfig(1), } - fmt.Printf("beginning payments stream, starting at ledger %v ...\n", latestNetworkLedger) + log.Infof("beginning payments stream, starting at ledger %v ...\n", latestNetworkLedger) return ingest.ApplyLedgerMetadata(ledgerRange, pubConfig, ctx, func(lcm xdr.LedgerCloseMeta) error { for _, processor := range adapter.processors { @@ -194,6 +186,7 @@ func main() { // run a data pipeline that transforms Pubnet ledger metadata into payment events ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill) defer stop() + log.SetLevel(log.InfoLevel) cfg, err := toml.LoadFile("config.toml") if err != nil { @@ -221,7 +214,7 @@ func main() { // publishes application data model as messages to a broker publisher, err := goczmq.NewPub("tcp://127.0.0.1:5555") if err != nil { - log.Printf("error creating 0MQ publisher: %v\n", err) + log.Infof("error creating 0MQ publisher: %v\n", err) return } defer publisher.Destroy() @@ -230,24 +223,30 @@ func main() { // wire up the ingestion pipeline and let it run appTransformer.Subscribe(outboundAdapter) ledgerMetadataInboundAdapter.Subscribe(appTransformer) - log.Printf("Payment ingestion pipeline ended %v\n", ledgerMetadataInboundAdapter.Run(ctx)) + log.Infof("Payment ingestion pipeline ended %v\n", ledgerMetadataInboundAdapter.Run(ctx)) } -``` +````
### `config.toml` -The CDP configuration settings, this file defines the data storage which contains the pre-generated Ledger Metadata files. Google Cloud storage is used in this example. +The CDP configuration settings, this file defines the data storage which contains the pre-generated Ledger Metadata files. The [S3 Public Blockchain](https://registry.opendata.aws/aws-public-blockchain/) bucket for [Stellar Pubnet](hhttps://aws-public-blockchain.s3.us-east-2.amazonaws.com/index.html#v1.1/stellar/ledgers/pubnet/) is used in this example. ``` -type = "GCS" +type = "S3" [params] -destination_bucket_path = "my-gcs-bucketname/prefix1/prefix2" +destination_bucket_path = "aws-public-blockchain/v1.1/stellar/ledgers/pubnet" +region = "us-east-2" + +# this is the schema specific to the public s3 data lake being used +[schema] +ledgers_per_file = 1 +files_per_partition = 64000 ``` @@ -282,3 +281,21 @@ while True: ``` + +### Step# 2 - Compile and run the ingestion pipeline example. + + +```bash +go mod init example/pipeline +go get github.com/stellar/go-stellar-sdk@latest github.com/zeromq/goczmq@v4.1.0 +go mod tidy +go build -o pipeline ./. +AWS_SHARED_CREDENTIALS_FILE=/dev/null ./pipeline + +``` + + +### Step# 3 - Run the distributed pipeline consumer + +In separate terminal, run `python distributed_payment_subsciber.py`, this will perform distributed pipeline topology, as it receives messages with payment info from the pipeline process and does additional processing(printing it to console). +``` diff --git a/docs/build/apps/ingest-sdk/overview.mdx b/docs/build/apps/ingest-sdk/overview.mdx index 8c56edd808..a7438616d6 100644 --- a/docs/build/apps/ingest-sdk/overview.mdx +++ b/docs/build/apps/ingest-sdk/overview.mdx @@ -3,15 +3,15 @@ title: Overview sidebar_position: 10 --- -This tutorial walks through how an application can leverage [CDP architecture](https://stellar.org/blog/developers/composable-data-platform) to create fast, lightweight Stellar Ledger Metada data pipelines using a few select packages from the Stellar Go Repo [github.com/stellar/go](https://github.com/stellar/go/blob/master/) collectively known as the 'Ingestion' SDK: +This tutorial walks through how an application can leverage [CDP architecture](https://stellar.org/blog/developers/composable-data-platform) to create fast, lightweight Stellar Ledger Metada data pipelines using a few select packages from the Stellar Go Repo [github.com/stellar/go-stellar-sdk](https://github.com/stellar/go-stellar-sdk) collectively known as the 'Ingestion' SDK: ## The Ingestion SDK packages -- `github.com/stellar/go/amount` utility package to convert prices from network transaction operations to string -- `github.com/stellar/go/historyarchive` `github.com/stellar/go/support/datastore` `github.com/stellar/go/support/storage` utility package with convenient wrappers for accessing history archives, and avoid low-level http aspects -- `github.com/stellar/go/ingest` provides parsing functionality over the network ledger metadata, converts to more developer-centric `LedgerTransaction` model -- `github.com/stellar/go/network` provides convenient pre-configured settings for Testnet and Mainnet networks -- `github.com/stellar/go/xdr` a complete Golang binding to the Stellar network data model +- `github.com/stellar/go-stellar-sdk/amount` utility package to convert prices from network transaction operations to string +- `github.com/stellar/go-stellar-sdk/historyarchive` `github.com/stellar/go-stellar-sdk/support/datastore` `github.com/stellar/go-stellar-sdk/support/storage` utility package with convenient wrappers for accessing history archives, and avoid low-level http aspects +- `github.com/stellar/go-stellar-sdk/ingest` provides parsing functionality over the network ledger metadata, converts to more developer-centric `LedgerTransaction` model +- `github.com/stellar/go-stellar-sdk/network` provides convenient pre-configured settings for Testnet and Mainnet networks +- `github.com/stellar/go-stellar-sdk/xdr` a complete Golang binding to the Stellar network data model ## Ingestion project setup @@ -26,7 +26,7 @@ To use this example CDP pipeline for live Stellar network transaction data, you' - Docker - Google Cloud Platform account: - a bucket created in Google Cloud Storage(GCS) - - GCP [credentials in workstation environment](https://github.com/stellar/go/blob/master/services/galexie/README.md#set-up-gcp-credentials) + - GCP [credentials in workstation environment](../../../data/indexers/build-your-own/galexie/admin_guide/setup.mdx#google-cloud-platform-gcp-credentials) Our example application is only interested in a small subset of the overall network data model related to asset transfers triggered by Payment operation and defines its own derived data model as the goal of exercise: @@ -50,21 +50,21 @@ The example application will perform both of CDP pipelines. A minimum of two pip ### Ledger Metadata Export Pipeline -This pipeline needs to be initiated first, it is responsible for exporting Stellar Ledger Metadata as files to a [CDP Datastore](https://github.com/stellar/go/blob/master/support/datastore/datastore.go). +This pipeline needs to be initiated first, it is responsible for exporting Stellar Ledger Metadata as files to a [CDP Datastore](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go). #### Determine the Datastore The Datastore in CDP is an interface, allowing for multiple implementations which represent different physical storage layers that can be 'plugged in' to export and consumer pipelines. Stellar provides the [GCS Datastore] as the first Datastore implementation, and this example chooses to use this existing implementation. -There will be open source contributions for implementations on other storage layers to choose from as CDP grows. If you can't find an implementation for a storage layer you would like to use, it is also possible to develop your own [ Datastore](https://github.com/stellar/go/blob/master/support/datastore/datastore.go#L17) implementation, which is beyond scope of this example, as it entails a separate learning exercise of its own, coming soon! +There will be open source contributions for implementations on other storage layers to choose from as CDP grows. If you can't find an implementation for a storage layer you would like to use, it is also possible to develop your own [ Datastore](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go#L17) implementation, which is beyond scope of this example, as it entails a separate learning exercise of its own, coming soon! #### Exporting network metadata to Datastore Use Galexie, a new CDP command line program for exporting network metadata to datastores. -- Follow the Galexie setup steps in [Galexie User Guide](https://github.com/stellar/go/blob/master/services/galexie/README.md#setup), to configure specifics of GCS bucket and target network. +- Follow the Galexie setup steps in [Galexie User Guide](../../../data/indexers/build-your-own/galexie/admin_guide/setup.mdx), to configure specifics of GCS bucket and target network. -- Follow the [Galexie docker runtime instructions](https://github.com/stellar/go/blob/master/services/galexie/README.md#running-galexie) to start the export. +- Follow the [Galexie docker runtime instructions](../../../data/indexers/build-your-own/galexie/admin_guide/running.mdx) to start the export. - For one time export of historical bounded range of ledgers, use `append --start --end ` - For a continuous export of prior ledgers and all new ledgers generated on network, use `append --start `. @@ -74,13 +74,13 @@ A consumer pipeline retrieves files from the GCS bucket and uses them as the ori #### Inbound Adapter -The 'source of origin' for the ledger metadata in a pipeline. This processor retrieves [LedgerCloseMeta](https://github.com/stellar/go/blob/master/xdr/xdr_generated.go) files from the GCS Datastore, extracts the `LedgerCloseMeta` for each Ledger and publishes it onto the messaging pipeline. +The 'source of origin' for the ledger metadata in a pipeline. This processor retrieves [LedgerCloseMeta](https://github.com/stellar/go-stellar-sdk/blob/main/xdr/xdr_generated.go) files from the GCS Datastore, extracts the `LedgerCloseMeta` for each Ledger and publishes it onto the messaging pipeline. -The go sdk provides consumer helper function [ApplyLedgerMetadata](https://github.com/stellar/go/blob/master/ingest/producer.go) for automated, performant, buffered retrieval of files from the remote datastore, application code can leverage this to acquire pure `LedgerCloseMeta` data from a callback function. +The go sdk provides consumer helper function [ApplyLedgerMetadata](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/producer.go) for automated, performant, buffered retrieval of files from the remote datastore, application code can leverage this to acquire pure `LedgerCloseMeta` data from a callback function. #### Transformer -Subscribes on the pipeline to receive `LedgerCloseMeta`. Uses the Go SDK package [github.com/stellar/go/xdr](https://github.com/stellar/go/tree/master/xdr) to parse the ledger meta data model for payment operations and convert those into a new instance of application data model `AppPayment` instances. Publishes `AppPayment` to the pipeline. +Subscribes on the pipeline to receive `LedgerCloseMeta`. Uses the Go SDK package [github.com/stellar/go-stellar-sdk/xdr](https://github.com/stellar/go-stellar-sdk/tree/main/xdr) to parse the ledger meta data model for payment operations and convert those into a new instance of application data model `AppPayment` instances. Publishes `AppPayment` to the pipeline. #### Outbound Adapter diff --git a/docs/build/apps/overview.mdx b/docs/build/apps/overview.mdx index 647f47cc4c..4e15f56c94 100644 --- a/docs/build/apps/overview.mdx +++ b/docs/build/apps/overview.mdx @@ -11,7 +11,7 @@ Stellar is an open-source distributed ledger that you can use as a backend to po Stellar has built-in logic for key storage, creating accounts, signing transactions, tracking balances, and queries to the Stellar database, and anyone can use the network to issue, store, transfer, and trade assets. -This documentation includes sections on how to build applications without smart contracts with the [Wallet SDK](./wallet/overview.mdx) or the [JS SDK](./example-application-tutorial/overview.mdx), building with smart contracts with the [dapp frontend tutorial](./dapp-frontend.mdx), and all information regarding experimentation with [smart wallets](./smart-wallets.mdx). +This documentation includes sections on how to build applications without smart contracts with the [Wallet SDK](./wallet/overview.mdx) or the [JS SDK](./example-application-tutorial/overview.mdx), building with smart contracts with the [dapp frontend tutorial](./dapp-frontend.mdx), and all information regarding experimentation with [passkey / contract account wallets](../guides/contract-accounts/smart-wallets.mdx). ## Anchors @@ -19,7 +19,7 @@ Many Stellar assets connect to real-world currencies, and Stellar has open proto Read more about anchors in our [Anchors section](../../learn/fundamentals/anchors.mdx). -Set up an anchor using the [Anchor Platform](/platforms/anchor-platform). +Set up an anchor using the [Anchor Platform](../../platforms/anchor-platform/README.mdx). Integrate MoneyGram Ramps into an existing application with the [Integrate with MoneyGram Ramps tutorial](https://developer.moneygram.com/moneygram-developer/docs/integrate-moneygram-ramps). diff --git a/docs/build/apps/smart-wallets.mdx b/docs/build/apps/smart-wallets.mdx deleted file mode 100644 index 335c7c88c3..0000000000 --- a/docs/build/apps/smart-wallets.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: Smart Wallets -sidebar_position: 70 ---- - -Smart wallets on Stellar are a growing piece of Stellar's ecosystem. Lots of development is taking place, and this documentation will grow and progress as we collaborate on an audited smart wallet solution. In the meantime, below you'll find some conceptual grounding, as well as some examples and tooling, to get you started. - -## Overview - -Let's look at the various pieces that are at play in Stellar smart wallets. - -### Smart wallets - -In short, a smart wallet is a smart contract that can act as an account on the network. A smart wallet can hold value and interact with other smart contracts. - -They are digital wallets that leverage smart contract composability to offer enhanced functionality and security for managing digital assets. Unlike traditional wallets, smart wallets integrate features such as multi-signature support, policy signers, programmable transactions, and enhanced user experience. - -Smart wallets enable users to interact seamlessly with blockchain ecosystems, providing a user-friendly interface for sending, receiving, and storing digital assets. They can incorporate signers of many types. Among the most exciting are passkey signers, which implement WebAuthn standards to ensure secure, password-less authentication, reducing the risks associated with traditional seed phrases and private keys. - -By using smart contracts, smart wallets can automate transactions and implement advanced security protocols. For example: time-locked transfers, spending limits, and fraud detection. These features make smart wallets an ideal choice for users seeking a secure, convenient, and versatile solution for managing their digital assets in the evolving landscape of blockchain technology. - -### WebAuthn - -[WebAuthn (web authentication)](https://www.w3.org/TR/webauthn/) is a web standard for secure, password-less authentication. It uses public-key cryptography to eliminate the reliance on shared secrets in the web2 world. In the context of a blockchain, using a WebAuthn signer enhances security and usability for dapps. - -WebAuthn provides decentralized authentication (no central authority manages passwords), enhanced security (secret keys remain on the user’s device), improved user experience (users don’t have to worry about storing or remembering their secret keys), and broader interoperability (WebAuthn is already supported by major browsers and platforms). - -### Secp256r1 - -The [secp256r1 signature scheme](https://wiki.hyperledger.org/display/BESU/SECP256R1+Support) is an elliptic curve that is often used with the Elliptic Curve Digital Signature Algorithm (ECDSA), which is a widely used public key signature scheme. - -Secp256r1 is a common signature algorithm used in WebAuthn, which is the standard behind the passkeys available on browsers, computers, and phones. Enabling on-chain secp256r1 verification allows developers to design contracts that incorporate passkeys to sign smart contract transactions and access accounts instead of using seed phrases or signing keys. - -The launch of Protocol 21 enabled **native** support of secp256r1 verification in Stellar smart contracts on Mainnet as outlined in [CAP-0051](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0051.md). This integration means that secp256r1 is built directly into the protocol and applications can both sign transactions and submit them to the network using secp256r1 without relying on a third party. - -### Passkeys - -Passkeys are an implementation of the WebAuthn standard. The ability to use passkeys to sign transactions and access accounts removes the need for users to store or remember their secret keys and/or 12- to 24-word seed phrases, something that has been a massive barrier to entry for end-users entering the blockchain space. Secret keys and seed phrases can be overwhelming, hard to remember, entered incorrectly, and prone to security breaches. - -Passkeys offer a faster, more secure method of identity authentication by using encrypted data stored on a device and performing user verification with hardware tokens (like YubiKeys), biometric data (like fingerprints or facial recognition), or other cryptographic methods. - -Read more about passkeys in this [introduction to passkeys blog](https://stellar.org/blog/developers/passkeys-a-light-introduction-to-improving-blockchain-s-ux). - -### How they work together - -That's a lot of technical buzzwords. Taken together: - -1. Secp256r1 provides the cryptographic foundation for key generation and digital signatures, -2. WebAuthn offers a standardized framework for passwordless authentication using public-key cryptography, and -3. Passkeys implement these technologies to provide a seamless and secure user experience. - -Bake all of that together into a Stellar smart contract, and you have the foundation for the planet's best smart wallet implementation! - -## Build with smart wallets - -If you're building or experimenting with smart wallets on Stellar, some essential resources are: - -### Passkey Kit - -The Passkey Kit is a TypeScript SDK for creating and managing Stellar smart wallets, primarily (though not exclusively) with passkey signers. It's intended to be used in tandem with [Launchtube](#launchtube-transaction-submission-) for submitting signed transactions on-chain, however this is not a requirement. This is both a client and a server-side library. `PasskeyKit` on the client and `PasskeyServer` on the server. - -The source code also includes a smart contract implementation of a proposed [smart wallet standardized interface](https://github.com/orgs/stellar/discussions/1499). - -- Use the [app](https://passkey-kit-demo.pages.dev/) -- View the [code](https://github.com/kalepail/passkey-kit) -- Watch the [discussion](https://developers.stellar.org/meetings/2024/06/13) - -### Launchtube transaction submission - -This is an API service where developers can send their smart contract transactions to get them funded and submitted to the Stellar network without having to worry about fees, sequence numbers, classic G addresses, or other complexities. - -:::note - -Launchtube is a prototype service. While SDF maintains a Mainnet implementation, we cannot offer any guarantees or SLAs for it. SDF's Mainnet Launchtube service may not be suitable for mission-critical production services. - -::: - -- View the [code](https://github.com/stellar/launchtube) -- Get an access token by asking in the `#launchtube` channel on [Discord](https://discord.gg/stellardev). Or, generate your own [testnet token](https://testnet.launchtube.xyz/gen). -- Farm and use the [KALE asset](https://github.com/kalepail/KALE-sc) to acquire Launchtube tokens [here](https://kalefarm.xyz/launchtube/) - -### SDP backend smart wallet - -The [Stellar Disbursement Platform](/platforms/stellar-disbursement-platform) team is also experimenting with smart wallet implementations. In a feature branch, they've implemented a smart wallet contract that can also be used. - -- View the [code](https://github.com/stellar/stellar-disbursement-platform-backend/tree/feature/c-accounts/contracts/smart-wallet) - -## Example projects - -Explore some of the current work being done with smart wallets, passkeys, policy signers, and more on Stellar! Play around with the various examples linked below, build your own passkey-powered projects, and share your findings in the `#passkeys` channel on [Discord](https://discord.gg/stellardev). - -:::note - -These examples are not created or maintained officially by the SDF but by dedicated community members both internal and external to the SDF. - -::: - -### Zafegard - -A smart wallet that demonstrates the use of stateful policy signers. - -- View the [code](https://github.com/kalepail/zafegard) -- Watch the [demo video](https://www.youtube.com/watch?v=I4i6sL-pHrs) - -### Do Math - -A smart wallet that demonstrates the use of multi-sig and policy signers to, surprisingly, do math without needing to input a passkey for every interaction. - -- View the [code](https://github.com/kalepail/do-math) -- Watch the [demo video](https://www.youtube.com/watch?v=lwvE6pEBmXw) - -### Soroban by example - -An app that uses passkeys to sign Stellar smart contract transactions. - -- View the [demo](https://passkey.sorobanbyexample.org/) -- View the [code](https://github.com/kalepail/soroban-passkey) -- Watch the [demo video](https://www.youtube.com/watch?v=y38_O4oIvbY) -- Watch the [discussion](https://developers.stellar.org/meetings/2024/05/09) -- Read the [blog](https://kalepail.com/blockchain/the-passkey-powered-future-of-web3) - -### Super Peach - -A passkey-powered multi-signer abstract account contract example. - -- View the [demo](https://superpeach.xyz/) -- View the [code](https://github.com/kalepail/superpeach) -- Watch the [demo video](https://youtu.be/0Agiwso2OMc?si=CHD9U8s-YLyqbXUJ) - -### Ye Olde Guestbook - -A passkey-powered internet guestbook from yesteryear built with smart contracts and frontend code. - -- View the [demo](https://ye-olde-guestbook.vercel.app) -- View the [code](https://github.com/ElliotFriend/ye-olde-guestbook) -- Read the [tutorial](./guestbook/README.mdx) - -## Get involved - -### Dev Discord - -Join the discussion, ask questions, and share your own work with smart wallets in the [Stellar Developer Discord](https://discord.gg/stellardev) in the `#passkeys` channel. - -### SEP discussion - -Join the SEP discussion on the WebAuthn smart wallet contract interface in [GitHub](https://github.com/orgs/stellar/discussions/1499). diff --git a/docs/build/apps/swift-payment-app.mdx b/docs/build/apps/swift-payment-app.mdx index 769fc393d6..fe5483a165 100644 --- a/docs/build/apps/swift-payment-app.mdx +++ b/docs/build/apps/swift-payment-app.mdx @@ -55,7 +55,7 @@ The tutorial covers secure data storage, authentication, account creation, asset - [SwiftBasicPay Tutorial](https://github.com/Soneso/SwiftBasicPay/tree/main/tutorial) - [Stellar Wallet SDK for Swift](https://github.com/Soneso/stellar-swift-wallet-sdk) - [Stellar iOS SDK](https://github.com/Soneso/stellar-ios-mac-sdk) -- [Stellar Wallet SDK Documentation](https://developers.stellar.org/docs/category/build-a-wallet-with-the-wallet-sdk) +- [Stellar Wallet SDK Documentation](../apps/wallet/README.mdx) ## Contributing diff --git a/docs/build/apps/wallet/CONTRIBUTING.md b/docs/build/apps/wallet/CONTRIBUTING.md new file mode 100644 index 0000000000..b3251d3d4c --- /dev/null +++ b/docs/build/apps/wallet/CONTRIBUTING.md @@ -0,0 +1,96 @@ +# Contributing guide + +Thank you for contributing to the Stellar Wallet documentation! To get started, +please first read [main README](../../../README.md) guide. + +This documentation is mainly for the Wallet SDK and it's usages to integrate +with various SEPs. + +The document is structured to be language-agnostic, but with the components +listed below we can add language-specific logic into the document. + +Generally, text should be applicable to all of supported programming languages, +but for differences special `` component can be used (read +more below) + +## Wallet guide components + +### Header + +Header is a special .mdx file that should be included on all pages. It contains: + +- Language buttons +- A general guide on using this buttons +- Optional warning for languages in progress + +On all new pages, Header should be the first element. Optionally, provide list +of languages that are work in progress: + +```mdxjs +
+``` + +### LanguageButtons + +This component is a part of the header. It allows to switch between programming +languages. Current language is stored as a cookie. + +### WalletGuideWarn + +This component puts a warning if language is in progress for this section. +Please use `WIPLangs` property to enable it for a language for the page. + +### WalletCodeExample + +This is improved `CodeExample` component. It currently supports dynamic +switching between TypeScript, Kotlin, Flutter and Swift code snippets (depending +on the user selected language). It will also generate placeholder if code +snippet is missing. Here's an example on how to use it: + +````mdxjs + + +​```kotlin +// Kotlin example here +​``` + + +​```ts +// TypeScript example here +​``` + +// Flutter example is replaced with an auto-generated notice + + +```` + +For a regular code examples (non Wallet SDK) please use vanilla `CodeExample` +component. + +### LanguageSpecific + +This component allows to render parts of documentation based on selected code. +To get started, crete 2 files in `component` directory: + +```md +// ./component/kt/hello.mdx Hello, Kotlin! +``` + +```md +// ./component/ts/hello.mdx Hello, TypeScript! +``` + +Then, in the main document import both files and LanguageSpecific component: + +```mdxjs +// main.mdx +import {LanguageSpecific} from "@site/src/components/LanguageSpecific"; +import KtHello from "./component/kt/hello.mdx"; +import TsHello from "./component/ts/hello.mdx"; + +} ts={} / +``` + +When user selects Kotlin, "Hello, Kotlin!" is going to be rendered, when +TypeScript is selected — "Hello, TypeScript!". Finally, for Flutter and Swift, +nothing would be rendered. diff --git a/docs/build/apps/wallet/README.md b/docs/build/apps/wallet/README.md deleted file mode 100644 index d47097d8b6..0000000000 --- a/docs/build/apps/wallet/README.md +++ /dev/null @@ -1,96 +0,0 @@ -## Contributing guide - -Thank you for contributing to the Stellar Wallet documentation! To get started, -please first read [main README](../../../README.md) guide. - -This documentation is mainly for the Wallet SDK and it's usages to integrate -with various SEPs. - -The document is structured to be language-agnostic, but with the components -listed below we can add language-specific logic into the document. - -Generally, text should be applicable to all of supported programming languages, -but for differences special `` component can be used (read -more below) - -### Wallet guide components - -#### Header - -Header is a special .mdx file that should be included on all pages. It contains: - -- Language buttons -- A general guide on using this buttons -- Optional warning for languages in progress - -On all new pages, Header should be the first element. Optionally, provide list -of languages that are work in progress: - -```mdxjs -
-``` - -#### LanguageButtons - -This component is a part of the header. It allows to switch between programming -languages. Current language is stored as a cookie. - -#### WalletGuideWarn - -This component puts a warning if language is in progress for this section. -Please use `WIPLangs` property to enable it for a language for the page. - -#### WalletCodeExample - -This is improved `CodeExample` component. It currently supports dynamic -switching between TypeScript, Kotlin, Flutter and Swift code snippets (depending -on the user selected language). It will also generate placeholder if code -snippet is missing. Here's an example on how to use it: - -````mdxjs - - -​```kotlin -// Kotlin example here -​``` - - -​```ts -// TypeScript example here -​``` - -// Flutter example is replaced with an auto-generated notice - - -```` - -For a regular code examples (non Wallet SDK) please use vanilla `CodeExample` -component. - -#### LanguageSpecific - -This component allows to render parts of documentation based on selected code. -To get started, crete 2 files in `component` directory: - -```md -// ./component/kt/hello.mdx Hello, Kotlin! -``` - -```md -// ./component/ts/hello.mdx Hello, TypeScript! -``` - -Then, in the main document import both files and LanguageSpecific component: - -```mdxjs -// main.mdx -import {LanguageSpecific} from "@site/src/components/LanguageSpecific"; -import KtHello from "./component/kt/hello.mdx"; -import TsHello from "./component/ts/hello.mdx"; - -} ts={} / -``` - -When user selects Kotlin, "Hello, Kotlin!" is going to be rendered, when -TypeScript is selected — "Hello, TypeScript!". Finally, for Flutter and Swift, -nothing would be rendered. diff --git a/docs/build/apps/wallet/README.mdx b/docs/build/apps/wallet/README.mdx new file mode 100644 index 0000000000..005a5509aa --- /dev/null +++ b/docs/build/apps/wallet/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +# Build a Wallet with the Wallet SDK + +Use the Wallet SDK to integrate with the Stellar blockchain and connect to anchors using your preferred programming language. + + diff --git a/docs/build/apps/wallet/_category_.json b/docs/build/apps/wallet/_category_.json deleted file mode 100644 index 26e295568d..0000000000 --- a/docs/build/apps/wallet/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 30, - "label": "Build a Wallet with the Wallet SDK", - "link": { - "type": "generated-index" - } -} diff --git a/docs/build/apps/wallet/component/dart/configClient.mdx b/docs/build/apps/wallet/component/dart/configClient.mdx index 17963fc434..87e9157a98 100644 --- a/docs/build/apps/wallet/component/dart/configClient.mdx +++ b/docs/build/apps/wallet/component/dart/configClient.mdx @@ -1,5 +1,3 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configuring the Client The Flutter Wallet SDK uses the standard Client from the [http package](https://pub.dev/packages/http) for all network requests (excluding Horizon, where the Flutter Stellar SDK's HTTP client is used). @@ -8,8 +6,6 @@ Optionally, you can set your own client from [http package](https://pub.dev/pack The client can be globally configured: - - ```dart import 'package:http/http.dart'; // ... @@ -22,6 +18,4 @@ var appConfig = ApplicationConfiguration(defaultClient: myClient); var walletCustomClient = Wallet(StellarConfiguration.testNet, applicationConfiguration: appConfig); ``` - - Some [test cases](https://github.com/Soneso/stellar_wallet_flutter_sdk/tree/main/test) of this SDK use for example the `MockClient`. diff --git a/docs/build/apps/wallet/component/dart/install.mdx b/docs/build/apps/wallet/component/dart/install.mdx index dd609ebf28..d63c3dc7d1 100644 --- a/docs/build/apps/wallet/component/dart/install.mdx +++ b/docs/build/apps/wallet/component/dart/install.mdx @@ -1,13 +1,7 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```dart // pubspec.yaml stellar_wallet_flutter_sdk: ^1.0.6 stellar_flutter_sdk: ^2.1.3 ``` - - You can get the latest available version on the [project GitHub page](https://github.com/Soneso/stellar_wallet_flutter_sdk) diff --git a/docs/build/apps/wallet/component/kt/configClient.mdx b/docs/build/apps/wallet/component/kt/configClient.mdx index c344030ac8..b7a087f07c 100644 --- a/docs/build/apps/wallet/component/kt/configClient.mdx +++ b/docs/build/apps/wallet/component/kt/configClient.mdx @@ -1,13 +1,9 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configuring the Client The Kotlin wallet SDK uses the [ktor client](https://ktor.io/docs/getting-started-ktor-client.html) for all network requests (excluding Horizon, where the Stellar SDK's HTTP client is used). Currently, the okhttp engine is configured to be used with the client. You can read more about how to configure the ktor client [here](https://ktor.io/docs/create-client.html#configure-client). For example, the client can be globally configured: - - ```kotlin val walletCustomClient = Wallet( @@ -24,14 +20,10 @@ val walletCustomClient = ) ``` - - This Kotlin code will set the connect timeout to ten seconds via the [okhttp configuration](https://ktor.io/docs/http-client-engines.html#okhttp) and also installs the [retry plugin](https://ktor.io/docs/client-retry.html). You can also specify client configuration for specific wallet SDK classes. For example, to change connect timeout when connecting to some anchor server: - - ```kotlin val anchorCustomClient = walletCustomClient.anchor("example.com") { @@ -39,18 +31,12 @@ val anchorCustomClient = } ``` - - ### Closing Resources After the wallet class is no longer used, it's necessary to close all clients used by it. While in some applications it may not be required (e.g. the wallet lives for the whole lifetime of the application), in other cases it can be required. If your wallet class is short-lived, it's recommended to close client resources using a close function: - - ```kotlin fun closeWallet() { wallet.close() } ``` - - diff --git a/docs/build/apps/wallet/component/kt/globalSigner.mdx b/docs/build/apps/wallet/component/kt/globalSigner.mdx index c71741e3e8..c7d46f7c9b 100644 --- a/docs/build/apps/wallet/component/kt/globalSigner.mdx +++ b/docs/build/apps/wallet/component/kt/globalSigner.mdx @@ -1,13 +1,7 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finally, with the approach above we define the signer and client domain per request. If you want to define it once and use it for every authentication call your application is making, you can do so via changing the configuration: - - ```kotlin val appCfg = ApplicationConfiguration(WalletSigner.DomainSigner("https://my-domain.com/sign"), "my-domain.com") ``` - - This is particularly useful for integrating with multiple anchors. diff --git a/docs/build/apps/wallet/component/kt/httpConfig.mdx b/docs/build/apps/wallet/component/kt/httpConfig.mdx index d49f9028d3..8bc7978c15 100644 --- a/docs/build/apps/wallet/component/kt/httpConfig.mdx +++ b/docs/build/apps/wallet/component/kt/httpConfig.mdx @@ -1,14 +1,8 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - There is one more available configuration for a wallet that allows it to configure internal logic of the SDK. For example, to test with local servers on an HTTP protocol, HTTP can be manually enabled. - - ```kotlin val walletCustom = Wallet( StellarConfiguration.Testnet, ApplicationConfiguration { defaultRequest { url { protocol = URLProtocol.HTTP } } } ) ``` - - diff --git a/docs/build/apps/wallet/component/kt/install.mdx b/docs/build/apps/wallet/component/kt/install.mdx index eeca8133a1..515099e669 100644 --- a/docs/build/apps/wallet/component/kt/install.mdx +++ b/docs/build/apps/wallet/component/kt/install.mdx @@ -1,12 +1,6 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```kotlin // gradle.kts implementation("org.stellar:wallet-sdk:[version]") ``` - - You can get the latest available version on the [project GitHub page](https://github.com/stellar/kotlin-wallet-sdk) diff --git a/docs/build/apps/wallet/component/kt/watcher.mdx b/docs/build/apps/wallet/component/kt/watcher.mdx index 29a5bca35f..f5af354ee9 100644 --- a/docs/build/apps/wallet/component/kt/watcher.mdx +++ b/docs/build/apps/wallet/component/kt/watcher.mdx @@ -1,9 +1,5 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Next, let's get the channel provided by `WatcherResult` to receive events. - - ```kt do { val event = result.channel.receive() @@ -16,8 +12,6 @@ do { } while (event !is ChannelClosed) ``` - - This code example will consume all events coming from the channel until it's closed. There are three types of events: - `StatusChange`: indicates that transaction status has changed. diff --git a/docs/build/apps/wallet/component/swift/globalSigner.mdx b/docs/build/apps/wallet/component/swift/globalSigner.mdx index c2e9e983dd..acbc56da28 100644 --- a/docs/build/apps/wallet/component/swift/globalSigner.mdx +++ b/docs/build/apps/wallet/component/swift/globalSigner.mdx @@ -1,14 +1,8 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finally, with the approach above we define the signer and client domain per request. If you want to define it once and use it for every authentication call your application is making, you can do so via changing the configuration: - - ```swift let appCfg = AppConfig(defaultSigner: try DomainSigner(url: "https://my-domain.com/sign"), defaultClientDomain: "my-domain.com") ``` - - This is particularly useful for integrating with multiple anchors. diff --git a/docs/build/apps/wallet/component/swift/install.mdx b/docs/build/apps/wallet/component/swift/install.mdx index d7051369f6..43d85ccbb1 100644 --- a/docs/build/apps/wallet/component/swift/install.mdx +++ b/docs/build/apps/wallet/component/swift/install.mdx @@ -1,3 +1 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Add the repository (https://github.com/Soneso/stellar-swift-wallet-sdk) as a Package Dependency in your XCode project. Two new Package dependencies will appear: "stellar-wallet-sdk" and "stellarsdk". diff --git a/docs/build/apps/wallet/component/ts/allowHttpInfo.mdx b/docs/build/apps/wallet/component/ts/allowHttpInfo.mdx index 7faffec9df..632ef0bf38 100644 --- a/docs/build/apps/wallet/component/ts/allowHttpInfo.mdx +++ b/docs/build/apps/wallet/component/ts/allowHttpInfo.mdx @@ -1,17 +1,11 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - :::info If the anchor home domain uses http, then you need to set the `allowHttp` flag when creating the anchor: - - ```typescript let anchor = wallet.anchor({ homeDomain: "example.com", allowHttp: true }); ``` - - This can only be used on Testnet. ::: diff --git a/docs/build/apps/wallet/component/ts/configClient.mdx b/docs/build/apps/wallet/component/ts/configClient.mdx index d1c980d198..25526e8c06 100644 --- a/docs/build/apps/wallet/component/ts/configClient.mdx +++ b/docs/build/apps/wallet/component/ts/configClient.mdx @@ -1,13 +1,9 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configuring the Client The Typescript wallet SDK uses the [axios client](https://axios-http.com/docs/intro) for all network requests. You can read more about how to configure the axios client [here](https://axios-http.com/docs/instance). For example, we can configure our axios client to be globally configured with a timeout: - - ```typescript const customClient: AxiosInstance = axios.create({ timeout: 1000, @@ -19,6 +15,4 @@ let wal = new Wallet({ }); ``` - - You can find more [configure options here.](https://axios-http.com/docs/req_config) diff --git a/docs/build/apps/wallet/component/ts/createKeypairInfo.mdx b/docs/build/apps/wallet/component/ts/createKeypairInfo.mdx index f5557c1f93..cac83adda4 100644 --- a/docs/build/apps/wallet/component/ts/createKeypairInfo.mdx +++ b/docs/build/apps/wallet/component/ts/createKeypairInfo.mdx @@ -1,17 +1,11 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - :::info If using react-native, `createKeypair` won't work. Instead use the helper method `createKeypairFromRandom` like this: - - ```typescript import * as Random from "expo-crypto"; const rand = Random.randomBytes(32); const kp = account.createKeypairFromRandom(Buffer.from(rand)); ``` - - ::: diff --git a/docs/build/apps/wallet/component/ts/globalSigner.mdx b/docs/build/apps/wallet/component/ts/globalSigner.mdx index ce1acba90f..b436caf5e8 100644 --- a/docs/build/apps/wallet/component/ts/globalSigner.mdx +++ b/docs/build/apps/wallet/component/ts/globalSigner.mdx @@ -1,9 +1,5 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finally, with the approach above we define the signer and client domain per request. If you want to define it once and use it for every authentication call your application is making, you can do so via changing the configuration: - - ```typescript const appCfg = new ApplicationConfiguration( new DomainSigner("https://my-domain.com/sign", { ...headers }), @@ -12,6 +8,4 @@ const appCfg = new ApplicationConfiguration( ); ``` - - This is particularly useful for integrating with multiple anchors. diff --git a/docs/build/apps/wallet/component/ts/install.mdx b/docs/build/apps/wallet/component/ts/install.mdx index e0722dcdfa..b021f7e116 100644 --- a/docs/build/apps/wallet/component/ts/install.mdx +++ b/docs/build/apps/wallet/component/ts/install.mdx @@ -1,9 +1,3 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```bash yarn add @stellar/typescript-wallet-sdk ``` - - diff --git a/docs/build/apps/wallet/intro.mdx b/docs/build/apps/wallet/intro.mdx index 08a2b67244..e44777c6c2 100644 --- a/docs/build/apps/wallet/intro.mdx +++ b/docs/build/apps/wallet/intro.mdx @@ -8,7 +8,7 @@ description: "Learn how to build a wallet application on the Stellar network wit # Getting Started import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import KtInstall from "./component/kt/install.mdx"; import TsInstall from "./component/ts/install.mdx"; @@ -37,7 +37,7 @@ First, you need to add the SDK dependency to your project. Let's start with the main class that provides all SDK functionality. It's advised to have a singleton wallet object shared across the application. Creating a wallet with a default configuration connected to Stellar's Testnet is simple: - + ```kotlin val wallet = Wallet(StellarConfiguration.Testnet) @@ -55,11 +55,11 @@ var wallet = Wallet.testNet; let wallet = Wallet.testNet ``` - + The wallet instance can be further configured. For example, to connect to the public network: - + ```kotlin val walletTestnet = Wallet(StellarConfiguration(Network.TESTNET, "https://horizon-testnet.stellar.org")) @@ -79,7 +79,7 @@ var wallet = Wallet(StellarConfiguration.publicNet); let wallet = Wallet(stellarConfig: StellarConfig.publicNet) ``` - + } /> @@ -95,7 +95,7 @@ The wallet SDK provides some extra functionality on top of the existing [Horizon To interact with the Horizon instance configured in the previous steps, simply do: - + ```kotlin val stellar = wallet.stellar() @@ -113,7 +113,7 @@ var stellar = wallet.stellar(); let stellar = wallet.stellar ``` - + This example will create a Stellar class that manages the connection to Horizon service. @@ -129,7 +129,7 @@ You can read more about working with the Stellar network in the [respective sect Primary use of the SDK is to provide an easy way to connect to anchors via sets of protocols known as SEPs. Let's look into connecting to the Stellar test anchor: - + ```kotlin val anchor = wallet.anchor("https://testanchor.stellar.org") @@ -147,13 +147,13 @@ var anchor = wallet.anchor("testanchor.stellar.org") let anchor = wallet.anchor(homeDomain: "testanchor.stellar.org") ``` - + } /> And the most basic interaction of fetching a [SEP-1]: Stellar Info File: - + ```kotlin suspend fun anchorToml(): TomlInfo { @@ -173,7 +173,7 @@ var resp = await anchor.sep1(); let resp = try await anchor.sep1 ``` - + Below you can find all the SEPs the anchor class currently supports: diff --git a/docs/build/apps/wallet/overview.mdx b/docs/build/apps/wallet/overview.mdx index f431fea5d9..c88c719f28 100644 --- a/docs/build/apps/wallet/overview.mdx +++ b/docs/build/apps/wallet/overview.mdx @@ -3,7 +3,6 @@ title: Overview sidebar_position: 10 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Header from "./component/header.mdx";
diff --git a/docs/build/apps/wallet/sep10.mdx b/docs/build/apps/wallet/sep10.mdx index 7e2c2c3845..7baeddcbf5 100644 --- a/docs/build/apps/wallet/sep10.mdx +++ b/docs/build/apps/wallet/sep10.mdx @@ -4,8 +4,7 @@ sidebar_position: 40 --- import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; -import { CodeExample as NonWalletCodeExample } from "@site/src/components/CodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import GlobalClientSignerKt from "./component/kt/globalSigner.mdx"; import GlobalClientSignerTs from "./component/ts/globalSigner.mdx"; @@ -35,7 +34,7 @@ Let's do a basic authentication. In this example, we will use wallet SDK to crea First, let's create an `anchor` object to work with the anchor you are integrating with. In this example, we will be using a reference anchor implementation with the home domain `testanchor.stellar.org` - + ```kotlin val anchor = wallet.anchor("https://testanchor.stellar.org") @@ -53,11 +52,11 @@ final anchor = wallet.anchor("testanchor.stellar.org"); let anchor = wallet.anchor(homeDomain: "testanchor.stellar.org") ``` - + Next, authenticate with the `authKey` created earlier: - + ```kotlin val authKey = SigningKeyPair.fromSecret("my secret key") @@ -88,7 +87,7 @@ let sep10 = try await anchor.sep10 let authToken = try await sep10.authenticate(userKeyPair: authKey) ``` - + For non-custodial wallets, you want to use the user's private key as an `authKey`. @@ -116,7 +115,7 @@ Supporting `client_domain` comes in two parts, the wallet's client and the walle First, let's implement the client side. In this example we will connect to a remote signer that signs transactions on the endpoint `https://demo-wallet-server.stellar.org/sign` for the client domain `demo-wallet-server.stellar.org`. - + ```kotlin val signer = WalletSigner.DomainSigner("https://demo-wallet-server.stellar.org/sign") {} @@ -160,7 +159,7 @@ let authToken = try await sep10.authenticate(userKeyPair: authKey, clientDomainSigner: signer) ``` - + :::danger @@ -170,7 +169,7 @@ The demo-wallet signing endpoint is not protected for anybody to use. Your produ Let's add authentication with a bearer token. Simply update the request transformer: - + ```kotlin val signer = WalletSigner.DomainSigner("https://demo-wallet-server.stellar.org/sign") { bearerAuth("authToken") } @@ -199,7 +198,7 @@ let signer = try DomainSigner(url: "https://demo-wallet-server.stellar.org/sign" requestHeaders: requestHeaders) ``` - + } @@ -215,8 +214,6 @@ First, generate a new authentication key that will be used as a `client_domain` Next, create a `SEP-1` toml file placed under `/.well-known/stellar.toml` with the following content: - - ```toml ACCOUNTS = [ "Authentication public key (address)" ] VERSION = "0.1.0" @@ -224,14 +221,10 @@ SIGNING_KEY = "Authentication public key (address)" NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" ``` - - Don't forget to change the network passphrase for Mainnet deployment. Finally, let's add server implementation. This sample implementation uses express framework: - - ```javascript app.post("/sign", (req, res) => { const envelope_xdr = req.body.transaction; @@ -255,8 +248,6 @@ app.post("/sign", (req, res) => { }); ``` - - You can see examples of both the wallet and server implementations [here](https://github.com/stellar/typescript-wallet-sdk/tree/main/%40stellar/typescript-wallet-sdk/examples/sep10). As mentioned before, this server sample implementation doesn't have any protection against unauthorized requests, so you must add authorization checks as part of the request. [sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md diff --git a/docs/build/apps/wallet/sep24.mdx b/docs/build/apps/wallet/sep24.mdx index d67b8b43b5..88e4eab8bf 100644 --- a/docs/build/apps/wallet/sep24.mdx +++ b/docs/build/apps/wallet/sep24.mdx @@ -6,7 +6,7 @@ sidebar_position: 50 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; import KtWatcher from "./component/kt/watcher.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -19,7 +19,7 @@ During the flow, a wallet makes several requests to the anchor, and finally rece Let's start with getting an instance of `Sep24` class, responsible for all SEP-24 interactions: - + ```kotlin val sep24 = anchor.sep24() @@ -37,11 +37,11 @@ final sep24 = await anchor.sep24(); let sep24 = anchor.sep24 ``` - + First, let's get the information about the anchor's support for [SEP-24]. This request doesn't require authentication, and will return generic info, such as supported currencies, and features supported by the anchor. You can get a full list of returned fields in the [SEP-24 specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info). - + ```kt suspend fun getAnchorServices(): AnchorServiceInfo { @@ -63,7 +63,7 @@ final servicesInfo = await sep24.getServiceInfo(); let servicesInfo = try await sep24.info ``` - + ## Interactive Flows @@ -71,7 +71,7 @@ Before getting started, make sure you have connected to the anchor and received To initiate an operation, we need to know an asset. You may want to hard-code it, or get it dynamically from the anchor's info file, like shown below (for USDC): - + ```kt val asset = info.currencies.first { it.code == "USDC" }.assetId @@ -104,7 +104,7 @@ let info = try await anchor.info let asset = try info.currencies?.first(where: {$0.code == "USDC"})?.assetId ``` - + :::info @@ -116,7 +116,7 @@ Before starting with the deposit flow, make sure that the user account has [esta Let's start with a basic deposit: - + ```kt val deposit = sep24.deposit(asset, authToken) @@ -137,13 +137,13 @@ final deposit = await sep24.deposit(asset, authToken); let deposit = try await sep24.deposit(assetId: asset, authToken: authToken) ``` - + As a result, you will get an [interactive response](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-and-withdraw-shared-responses) from the anchor. Open the received URL in an iframe and save the transaction ID for future reference: - + ```kt val url = deposit.url @@ -165,11 +165,11 @@ let url = deposit.url let id = deposit.id ``` - + Similarly to the deposit flow, a basic withdrawal flow has the same method signature and response type: - + ```kt val withdrawal = sep24.withdraw(asset, authToken) @@ -198,7 +198,7 @@ let url = withdrawal.url let id = withdrawal.id ``` - + ### Providing KYC Info @@ -216,7 +216,7 @@ At the time, accepted [SEP-9] is not strictly typed yet. Improved typing will be ::: - + ```kt val sep9 = mapOf("email_address" to "mail@example.com") @@ -243,7 +243,7 @@ let deposit = try await sep24.deposit(assetId: asset, extraFields: ["email_address" : "mail@example.com"]) ``` - + ### Changing Stellar Transfer Account @@ -251,7 +251,7 @@ By default, the Stellar transfer will be sent to the authenticated account (with While in most cases it's acceptable, some wallets may split their accounts. To do so, pass additional account (and optionally a memo): - + ```kt suspend fun depositDifferentAccount(): InteractiveFlowResponse { @@ -290,11 +290,11 @@ let deposit = try await sep24.deposit(assetId: asset, destinationMemoType: MemoType.text) ``` - + Similarly, for a withdrawal, the origin account of the Stellar transaction could be changed: - + ```kt val originAccount = "G..." @@ -322,7 +322,7 @@ let withdrawal = try await sep24.withdraw(assetId: asset, withdrawalAccount: originAccount) ``` - + ## Getting Transaction Info @@ -334,7 +334,7 @@ Alternatively, some anchors support webhooks for notifications. Note that this f Let's look into how to use the wallet SDK to track transaction status changes. We will use `Watcher` class for this purpose. First, let's initialize watcher and start tracking a transaction. - + ```kt val watcher = sep24.watcher() @@ -365,11 +365,11 @@ let result = watcher.watchOneTransaction(authToken: authToken, id: "transaction id") ``` - + Alternatively, we can track multiple transactions for the same asset. - + ```kt val watcher = sep24.watcher() @@ -397,7 +397,7 @@ let watcher = sep24.watcher() let result = watcher.watchAsset(authToken: authToken, asset: asset) ``` - + } /> @@ -405,7 +405,7 @@ let result = watcher.watchAsset(authToken: authToken, asset: asset) While `Watcher` class offers powerful tracking capabilities, sometimes it's required to just fetch a transaction (or transactions) once. The `Anchor` class allows you to fetch a transaction by ID, Stellar transaction ID, or external transaction ID: - + ```kt // "id" is the actual Anchor transaction id, all transactions should have it. @@ -494,11 +494,11 @@ let transaction = try await anchor.sep24.getTransactionBy(authToken: authToken, externalTransactionId: "external transaction id") ``` - + It's also possible to fetch transaction by the asset - + ```kt val transactions = sep24.getTransactionsForAsset(asset, authToken) @@ -519,7 +519,7 @@ final transactions = await sep24.getTransactionsForAsset(asset, authToken); let transactions = try await sep24.getTransactionsForAsset(authToken: authToken, asset: asset) ``` - + ## Submitting Withdrawal Transfer @@ -527,7 +527,7 @@ Previously, we took a look at starting the withdrawal flow. Now, let's take a lo First, start the withdrawal: - + ```kt val withdrawal = sep24.withdraw(asset, authToken) @@ -548,11 +548,11 @@ final withdrawal = await sep24.withdraw(asset, authToken); let withdrawal = try await sep24.withdraw(assetId: asset, authToken: authToken) ``` - + Next, open an interactive url : - + ```kt val url = withdrawal.url @@ -574,11 +574,11 @@ let url = withdrawal.url // open the url ``` - + After that we need to wait until the anchor is ready to receive funds. To do so, we will be waiting until transaction reaches `pending_user_transfer_start` status. This code uses a simple watching (polling) mechanism with no bail-out condition. The application’s code should be more robust. - + ```kt val withdrawalWatcher = sep24.watcher().watchOneTransaction(authToken, withdrawal.id) @@ -669,11 +669,11 @@ NotificationCenter.default.addObserver(self, } ``` - + Next, sign and submit the Stellar transfer: - + ```kt val anchorTransaction = (statusChange.transaction as WithdrawalTransaction) @@ -724,10 +724,10 @@ onMessage: (transaction) => { resolution strategy based on the error kind. On Stellar docs you can find a page dedicated to error handling: - https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging/error-handling + https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging And status/result codes: - https://developers.stellar.org/docs/data/horizon/api-reference/errors + https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors */ // Let's illustrate here how we could handle an 'invalid sequence number' error. @@ -746,7 +746,7 @@ onMessage: (transaction) => { detail: 'The transaction failed when submitted to the stellar network. The `extras.result_codes` field on this response contains further details. Descriptions of each code can be found at: - https://developers.stellar.org/docs/data/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed', + https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed', extras: { envelope_xdr: 'AAAAAgAAAADBjF7n9gfByOwlnyaJH...k4BRagf/////////8AAAAAAAAAAA==', result_codes: { transaction: 'tx_bad_seq' }, @@ -849,7 +849,7 @@ if let tx = statusChange.transaction as? WithdrawalTransaction { } ``` - + Where `keypair` is the SEP-10 authenticated account. If you want to transfer funds from a different address, refer to [Changing Stellar Transfer Account](#changing-stellar-transfer-account) section. @@ -861,7 +861,7 @@ Code for submitting transactions to Stellar should be developed thoughtfully. Th Finally, let's track transaction status updates. In this example we simply check if the transaction has been completed: - + ```kt var terminalStatus: TransactionStatus? = null @@ -957,7 +957,7 @@ NotificationCenter.default.addObserver(self, } ``` - + [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md diff --git a/docs/build/apps/wallet/sep30.mdx b/docs/build/apps/wallet/sep30.mdx index 6a07b50c5e..3d5d930534 100644 --- a/docs/build/apps/wallet/sep30.mdx +++ b/docs/build/apps/wallet/sep30.mdx @@ -4,7 +4,7 @@ sidebar_position: 60 --- import Header from "./component/header.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample";
@@ -14,7 +14,7 @@ The [Sep-30] standard defines the standard way for an individual (e.g., a user o First, let's create an account key, a device key, and a recovery key that will be attached to the account. - + ```typescript const accountKp = wallet.stellar().account().createKeypair(); @@ -40,13 +40,13 @@ let deviceKp = wallet.stellar.account.createKeyPair() let recoveryKp = wallet.stellar.account.createKeyPair() ``` - + The `accountKp` is the wallet's main account. The `deviceKp` we will be adding to the wallet as a signer so a device (eg. a mobile device a wallet is hosted on) can take control of the account. And the `recoveryKp` will be used to identify the key with the recovery servers. Next, let's identify the recovery servers and create our recovery object: - + ```typescript const server1Key = "server1"; @@ -103,11 +103,11 @@ let servers = [first: firstServer, second:secondServer] let recovery = wallet.recovery(servers: servers) ``` - + Next, we need to define SEP-30 identities. In this example we are going to create an identity for both servers. Registering an identity tells the recovery server what identities are allowed to access the account. - + ```typescript const identity1 = { @@ -172,7 +172,7 @@ let identity2 = [ ] ``` - + Here, stellar key and email are used as recovery methods. Other recovery servers may support phone as a recovery method as well. @@ -180,7 +180,7 @@ You can read more about SEP-30 identities [here](https://github.com/stellar/stel Next, let's create a recoverable account: - + ```typescript const config = { @@ -228,7 +228,7 @@ let config = RecoverableWalletConfig(accountAddress: accountKp, let recoverableWallet = try await recovery.createRecoverableWallet(config: config) ``` - + With the given parameters, this function will create a transaction that will: @@ -239,7 +239,7 @@ With the given parameters, this function will create a transaction that will: Finally, sign and submit transaction to the network: - + ```typescript recoverableWallet.transaction.sign(accountKp.keypair); @@ -265,13 +265,13 @@ try transaction.sign(keyPair: accountKp.keyPair, network: Network.testnet) try await wallet.stellar.submitTransaction(signedTransaction: transaction) ``` - + ## Get Account Info You can fetch account info from one or more servers. To do so, first we need to authenticate with a recovery server using the SEP-10 authentication method: - + ```typescript const authToken = await recovery @@ -293,11 +293,11 @@ let sep10 = try await recovery.sep10Auth(key: first) let authToken = try await sep10.authenticate(userKeyPair: recoveryKp) ``` - + Next, get account info using auth tokens: - + ```typescript const accountResp = await recovery.getAccountInfo(accountKp, { @@ -320,13 +320,13 @@ let accountInfo = try await recovery.getAccountInfo(accountAddress: accountKp, auth: [first:auth1Token.jwt]) ``` - + Our second identity uses an email as an auth method. For that we can't use a [SEP-10] auth token for that server. Instead we need to use a token that ties the email to the user. For example, Firebase tokens are a good use case for this. To use this, the recovery signer server needs to be prepared to handle these kinds of tokens. Getting account info using these tokens is the same as before. - + ```typescript // get token from firebase @@ -355,7 +355,7 @@ let accountInfo = try await recovery.getAccountInfo(accountAddress: accountKp, auth: [second:]) ``` - + ## Recover Wallet @@ -363,7 +363,7 @@ Let's say we've lost our device key and need to recover our wallet. First, we need to authenticate with both recovery servers: - + ```typescript const authToken1 = await recovery @@ -397,11 +397,11 @@ let auth1 = authToken.jwt let auth2 = "..."; // get other token e.g. firebase token ``` - + We need to know the recovery signer addresses that will be used to sign the transaction. You can get them from either the recoverable wallet object we created earlier (`recoverableWallet.signers`), or via fetching account info from recovery servers. - + ```typescript const recoverySignerAddress1 = recoverableWallet.signers[0]; @@ -420,11 +420,11 @@ var recoverySigners = recoverableWallet.signers; let recoverySigners = recoverableWallet.signers ``` - + Next, create a new device key and retrieve a signed transaction that replaces the device key: - + ```typescript const newDeviceKp = accountService.createKeypair(); @@ -485,7 +485,7 @@ let signedReplaceKeyTx = try await recovery.replaceDeviceKey(account: accountKp, serverAuth: serverAuth) ``` - + Calling this function will create a transaction that locks the previous device key and replaces it with your new key (having the same weight as the old one). Both recovery signers will have signed the transaction. @@ -500,7 +500,7 @@ Note: you can also use more low-level `signWithRecoveryServers` functions to sig Finally, it's time to submit the transaction: - + ```typescript await stellar.submitTransaction(recoverTxn); @@ -518,6 +518,6 @@ await wallet.stellar().submitTransaction(signedReplaceKeyTx); try await wallet.stellar.submitTransaction(signedTransaction: signedReplaceKeyTx) ``` - + [sep-30]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0030.md diff --git a/docs/build/apps/wallet/sep38.mdx b/docs/build/apps/wallet/sep38.mdx index 34a5c4d9eb..39a82ba66c 100644 --- a/docs/build/apps/wallet/sep38.mdx +++ b/docs/build/apps/wallet/sep38.mdx @@ -5,7 +5,7 @@ sidebar_position: 70 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -18,7 +18,7 @@ Let's start with creating a sep38 object, which we'll use for all SEP-38 interac Authentication is done using [Sep-10], and we add the authentication token to the sep38 object. - + ```typescript const accountKp = ... // our account keypair @@ -44,13 +44,13 @@ let authToken = try await sep10.authenticate(userKeyPair: accountKp) let sep38 = try await anchor.sep38(authToken: authToken) ``` - + ## Get Anchor Information First, let's get information about the anchor's support for [SEP-38]. The response gives what stellar on-chain assets and off-chain assets are available for trading. - + ```typescript const resp = await sep38.info(); @@ -64,7 +64,7 @@ var resp = await sep38.info(); let resp = try await sep38.info ``` - + For example a response will look like this. The asset identifiers are described below in [Asset Identification Format](#asset-identification-format). @@ -114,7 +114,7 @@ Now let's get [indicative](https://www.investopedia.com/terms/i/indicativequote. In our example we're getting prices for selling 5 fiat USD. - + ```typescript const resp = await sep38.prices({ @@ -135,7 +135,7 @@ let response = try await sep38.prices(sellAsset: "iso4217:USD", sellAmount: "5") ``` - + The response gives the asset prices for exchanging the requested sell asset. For example, a response look like this: @@ -159,7 +159,7 @@ Once again this is an indicative value. The actual price will be calculated at c Either a `sellAmount` or `buyAmount` value must be given, but not both. And `context` refers to what Stellar SEP context this will be used for (ie. `sep6`, `sep24`, or `sep31`). - + ```typescript const resp = await sep38.price({ @@ -189,7 +189,7 @@ let resp = try await sep38.price( sellAmount: "5") ``` - + The response gives information for exchanging these assets. For example, a response will look like this: @@ -203,7 +203,7 @@ Now let's get a [firm](https://www.investopedia.com/terms/f/firmquote.asp) quote The request body is similar to the `.price()` call we made earlier. - + ```typescript const requestResp = await sep38.requestQuote({ @@ -233,7 +233,7 @@ let resp = try await sep38.requestQuote( sellAmount: "5") ``` - + However now the response gives an `id` that we can use to identify the quote. The `expires_at` field tells us how long the anchor will wait to receive funds for this quote. @@ -255,7 +255,7 @@ An example response looks like this: Now let's get the previously requested quote. To do that we use the `id` from the `.requestQuote()` response. - + ```typescript const quoteId = requestResp.id; @@ -272,7 +272,7 @@ let quoteId = requestResp.id let getResp = try await sep38.getQuote(quoteId: quoteId) ``` - + The response should match the one given from `.requestQuote()` we made earlier. diff --git a/docs/build/apps/wallet/sep6.mdx b/docs/build/apps/wallet/sep6.mdx index a4abd27659..88d596564b 100644 --- a/docs/build/apps/wallet/sep6.mdx +++ b/docs/build/apps/wallet/sep6.mdx @@ -5,7 +5,7 @@ sidebar_position: 60 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -18,7 +18,7 @@ Please note, this is for _programmatic_ deposits and withdrawals. For hosted dep Let's start with creating a sep6 object, which we'll use for all SEP-6 interactions: - + ```typescript const sep6 = anchor.sep6(); @@ -32,11 +32,11 @@ var sep6 = anchor.sep6(); let sep6 = anchor.sep6 ``` - + First, let's get information about the anchor's support for [SEP-6]. This request doesn't require authentication, and will return generic info, such as supported currencies, and features supported by the anchor. You can get a full list of returned fields in the [SEP-6 specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#info). - + ```typescript const info = await sep6.info(); @@ -50,7 +50,7 @@ var info = await sep6.info(); let info = try await sep6.info() ``` - + ## Start a deposit @@ -66,7 +66,7 @@ Before starting with the deposit flow, make sure that the user account has [esta Let's start with a basic deposit. We will use `account` to represent our account's public key. - + ```typescript const deposit = await sep6.deposit({ @@ -95,7 +95,7 @@ case .depositSuccess(let how, let id, let eta, let minAmount, let maxAmount, let } ``` - + There are several kinds of responses, depending on if the anchor needs more information. All deposits and withdrawals will have these same response types: @@ -132,7 +132,7 @@ An example response: Let's show how a wallet can handle this situation. First, we get the deposit response object. If the response includes this error, then we can see which missing fields the anchor is requiring. - + ```typescript if (deposit.type === "non_interactive_customer_info_needed") { @@ -154,11 +154,11 @@ case .missingKYC(let fields): } ``` - + The wallet will need to handle displaying to the user which fields are missing. And then to add those fields, we can use the sep12 class like so. - + ```typescript const sep12 = await anchor.sep12(authToken); @@ -202,7 +202,7 @@ let sep9Info = [ let addResponse = try await sep12.add(sep9Info: sep9Info) ``` - + Then, we can re-call the deposit method like before and it should be successful. @@ -214,7 +214,7 @@ An anchor may respond to a deposit or withdrawal request saying they need additi Let's add some KYC info for our account using sample data. Binary data (eg. image data), needs to be sent in a separate field. The fields allowed to send to the anchor are described in [SEP-9]. - + ```typescript const sep12 = await anchor.sep12(authToken); @@ -278,13 +278,13 @@ let sep9Files = [ let addResponse = try await sep12.add(sep9Info: sep9Info, sep9Files: sep9Files) ``` - + ## Start a withdrawal Starting a withdrawal is similar to deposit, and has the same response types as described earlier. - + ```typescript const resp = await sep6.withdraw({ @@ -323,7 +323,7 @@ let resp = try await anchor.sep6.withdraw(params: withdrawParams, authToken: authToken) ``` - + ## Get exchange info @@ -333,7 +333,7 @@ The sep6 exchange functions allow a user to start an exchange deposit or withdra First, let's start a deposit exchange with sample data. Assets are described using the [SEP-38] scheme. - + ```typescript const resp = await sep6.depositExchange({ @@ -367,13 +367,13 @@ let resp = try await anchor.sep6.depositExchange(params: params, authToken: authToken) ``` - + The response follows the same types as all the deposits and withdrawals for SEP-6. -Now let's create a withdrawal exchange, which follows the same format as the deposit exchange. We also specify it's bank account withdrawal using the `type` field. +Now let's create a withdrawal exchange, which follows the same format as the deposit exchange. We also specify it's a bank account withdrawal using the `type` field. - + ```typescript const resp = await sep6.withdrawExchange({ @@ -410,7 +410,7 @@ let resp = try await anchor.sep6.withdrawExchange(params: params, authToken: authToken) ``` - + The response follows the same types as all the deposits and withdrawals for SEP-6. @@ -422,7 +422,7 @@ On the typical flow, the wallet would get transaction data to notify users about Let's look into how to use the sdk to track transaction status changes. We will use the `Watcher` class for this purpose. First, let's initialize it and start tracking a transaction. - + ```typescript const watcher = anchor.sep6().watcher(); @@ -476,11 +476,11 @@ NotificationCenter.default.addObserver(self, } ``` - + Alternatively, we can track multiple transactions for the same asset. - + ```typescript const watcher = anchor.sep6().watcher(); @@ -532,13 +532,13 @@ NotificationCenter.default.addObserver(self, } ``` - + ### Fetching Transaction While `Watcher` class offers powerful tracking capabilities, sometimes it's required to just fetch a transaction (or transactions) once. The `Anchor` class allows you to fetch a transaction by ID, Stellar transaction ID, or external transaction ID: - + ```typescript const transaction = await anchor @@ -559,11 +559,11 @@ let transaction = try await anchor.sep6.getTransactionBy( transactionId:transactionId) ``` - + It's also possible to fetch transactions by the asset. - + ```typescript const transactions = await anchor.sep6().getTransactionsForAsset({ @@ -586,7 +586,7 @@ let transactions = try await anchor.sep6.getTransactionsForAsset( ``` - + [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md diff --git a/docs/build/apps/wallet/sep7.mdx b/docs/build/apps/wallet/sep7.mdx index 9799737d53..5e1bfb6e09 100644 --- a/docs/build/apps/wallet/sep7.mdx +++ b/docs/build/apps/wallet/sep7.mdx @@ -4,7 +4,7 @@ sidebar_position: 80 --- import Header from "./component/header.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample";
@@ -14,7 +14,7 @@ The [Sep-7] standard defines a way for a non-wallet application to construct a U The tx operation represents a request to sign a specific transaction envelope, with [some configurable parameters]. - + ```typescript const sourceAccountKeyPair = "G..."; @@ -54,11 +54,11 @@ let uri = try wallet.parseSep7Uri(uri: txUri) // uri can be parsed and transaction can be signed/submitted by an application that implements Sep-7 ``` - + You can set replacements to be made in the xdr for specific fields by the application, these will be added in the [Sep-11 transaction representation format] to the URI. - + ```typescript const uri = new Sep7Tx(txUri); @@ -92,11 +92,11 @@ if let uri = uri as? Sep7Tx { } ``` - + You can assign parameters after creating the initial instance using the appropriate setter for the parameter. - + ```typescript const sourceAccountKeyPair = "G..."; @@ -135,13 +135,13 @@ try uri.setMsg(msg: "here goes a message") let uriStr = uri.toString() // encodes everything and converts to a uri string ``` - + ## Pay Operation The pay operation represents a request to pay a specific address with a specific asset, regardless of the source asset used by the payer. You can [configure parameters] to build the payment operation. - + ```typescript const destination = "G..."; @@ -182,11 +182,11 @@ uri = try Sep7.parseSep7Uri(uri: payUri) // uri can be parsed and transaction can be built/signed/submitted by an application that implements Sep-7 ``` - + You can assign parameters after creating the initial instance using the appropriate setter for the parameter. - + ```typescript const uri = wallet.Sep7Pay.forDestination("G..."); @@ -218,11 +218,11 @@ uri.setAmount(amount: "10") uri.toString() // encodes everything and converts to a uri string ``` - + The last step after building a `Sep7Tx` or `Sep7Pay` is to add a signature to your uri. This will create a payload out of the transaction and sign it with the provided keypair. - + ```typescript const uri = wallet.Sep7Pay.forDestination("G..."); @@ -248,11 +248,11 @@ try uri.addSignature(keyPair: keyPair) print(uri.getSignature()) // signed uri payload ``` - + The signature can then be verified by fetching the [Stellar toml file] from the origin domain in the uri, and using the included signing key to verify the uri signature. This is all done as part of the `verifySignature` method. - + ```typescript const passesVerification = await uri.verifySignature(); // true or false @@ -266,10 +266,10 @@ final passesVerification = await uri.verifySignature(); // true or false let passesVerification = await uri.verifySignature() // true or false ``` - + [Sep-7]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md [Sep-11 transaction representation format]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0011.md [some configurable parameters]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md#operation-tx [configure parameters]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md#operation-pay -[Stellar toml file]: https://developers.stellar.org/docs/build/apps/example-application-tutorial/anchor-integration/sep1 +[Stellar toml file]: ../../apps/example-application-tutorial/anchor-integration/sep1.mdx diff --git a/docs/build/apps/wallet/stellar.mdx b/docs/build/apps/wallet/stellar.mdx index e6ec8a4fe6..5fee192274 100644 --- a/docs/build/apps/wallet/stellar.mdx +++ b/docs/build/apps/wallet/stellar.mdx @@ -4,7 +4,7 @@ sidebar_position: 30 --- import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import CreateKeyPairInfo from "./component/ts/createKeypairInfo.mdx"; @@ -16,7 +16,7 @@ In the previous section we learned how to create a wallet and a `Stellar` object The most basic entity on the Stellar network is an account. Let's look into AccountService that provides the capability to work with accounts: - + ```kt val account = wallet.stellar().account() @@ -34,11 +34,11 @@ var account = wallet.stellar().account(); let account = wallet.stellar.account ``` - + Now we can create a keypair: - + ```kt val accountKeyPair = account.createKeyPair() @@ -56,7 +56,7 @@ var accountKeyPair = account.createKeyPair(); let accountKeyPair = account.createKeyPair() ``` - + } /> @@ -72,7 +72,7 @@ First, let's look into building basic transactions. The create account transaction activates/creates an account with a starting balance of XLM (1 XLM by default). - + ```kotlin suspend fun createAccount(): Transaction { @@ -97,13 +97,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.createAccount(newAccount: destinationAccountKeyPair).build() ``` - + #### Modify Account You can lock the master key of the account by setting its weight to 0. Use caution when locking the account's master key. Make sure you have set the correct signers and weights. Otherwise, you will lock the account irreversibly. - + ```kotlin suspend fun lockMasterKey(): Transaction { @@ -129,11 +129,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.lockAccountMasterKey().build() ``` - + Add a new signer to the account. Use caution when adding new signers and make sure you set the correct signer weight. Otherwise, you will lock the account irreversibly. - + ```kotlin val newSignerKeyPair = account.createKeyPair() @@ -163,11 +163,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.addAccountSigner(signerAddress: newSignerKeyPair, signerWeight: 10).build() ``` - + Remove a signer from the account. - + ```kotlin suspend fun removeSigner(): Transaction { @@ -189,11 +189,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.removeAccountSigner(signerAddress: newSignerKeyPair).build() ``` - + Modify account thresholds (useful when multiple signers are assigned to the account). This allows you to restrict access to certain operations when the limit is not reached. - + ```kotlin suspend fun setThreshold(): Transaction { @@ -215,13 +215,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.setThreshold(low: 1, medium: 10, high: 20).build() ``` - + #### Modify Assets (Trustlines) Add an asset (trustline) to the account. This allows the account to receive transfers of the asset. - + ```kotlin val asset = IssuedAssetId("USDC", "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5") @@ -258,11 +258,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.addAssetSupport(asset: asset).build() ``` - + Remove an asset from the account (the asset's balance must be 0). - + ```kotlin suspend fun removeAsset(): Transaction { @@ -284,13 +284,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.removeAssetSupport(asset: asset).build() ``` - + #### Swap Exchange an account's asset for a different asset. The account must have a trustline for the destination asset. - + ```typescript const txBuilder = await stellar.transaction({ @@ -330,13 +330,13 @@ let txn = try txBuilder.swap(fromAsset: NativeAssetId(), amount: 0.1).build() ``` - + #### Path Pay Send one asset from the source account and receive a different asset in the destination account. - + ```typescript const txBuilder = await stellar.transaction({ @@ -385,13 +385,13 @@ let txn = try txBuilder.pathPay(destinationAddress: receivingKp.address, sendAmount: 5).build() ``` - + #### Set Memo Set a memo on the transaction. The memo object can be imported from ["@stellar/stellar-sdk"](https://www.npmjs.com/package/@stellar/stellar-sdk). - + ```typescript import { Memo } from "@stellar/stellar-sdk"; @@ -413,13 +413,13 @@ let memo = Memo.text("Memo string") let tx = try txBuilder.setMemo(memo: memo).build() ``` - + #### Account Merge Merges account into a destination account. - + ```typescript const txBuilder = await stellar.transaction({ @@ -448,13 +448,13 @@ let mergeTxn = try txBuilder.accountMerge(destinationAddress: accountKp.address, sourceAddress: sourceKp.address).build() ``` - + #### Fund Testnet Account Fund an account on the Stellar test network - + ```typescript wallet.stellar().fundTestnetAccount(accountKp.publicKey); @@ -468,13 +468,13 @@ await wallet.stellar().fundTestNetAccount(accountKp.address); try await wallet.stellar.fundTestNetAccount(address: accountKp.address) ``` - + ### Building Advanced Transactions In some cases a private key may not be known prior to forming a transaction. For example, a new account must be funded to exist and the wallet may not have the key for the account so may request the create account transaction to be sponsored by a third party. - + ```kt // Third-party key that will sponsor creating new account @@ -500,11 +500,11 @@ let externalKeyPair = try PublicKeyPair(accountId: "GC5GD...") let newKeyPair = account.createKeyPair() ``` - + First, the account must be created. - + ```kotlin suspend fun makeCreateTx(): Transaction { @@ -526,11 +526,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: externalKeyPair) let createTxn = try txBuilder.createAccount(newAccount: newKeyPair).build() ``` - + This transaction must be sent to external signer (holder of `externalKeyPair`) to be signed. - + ```kt suspend fun remoteSignTransaction(transaction: Transaction) { @@ -572,7 +572,7 @@ let xdrStringFromBackend = await sendTransactionToBackend(xdrString) let signedTransaction = stellar.decodeTransaction(xdr: xdrStringFromBackend) ``` - + :::note @@ -582,7 +582,7 @@ You can read more about passing XDR transaction to the server in the [chapter be Signed transaction can be submitted by the wallet. - + ```kt suspend fun submitCreateTx(signedCreateTx: Transaction) { @@ -603,11 +603,11 @@ bool success = await stellar.submitTransaction(signedTransaction); try await stellar.submitTransaction(signedTransaction: signedTransaction) ``` - + Now, after the account is created, it can perform operations. For example, we can disable the master keypair and replace it with a new one (let's call it the device keypair) atomically in one transaction: - + ```kotlin suspend fun addDeviceKeyPair() { @@ -671,13 +671,13 @@ stellar.sign(tx: modifyAccountTransaction, try await stellar.submitTransaction(signedTransaction: modifyAccountTransaction) ``` - + #### Adding an Operation Add a custom Operation to a transaction. This can be any [Operation](../../../learn/fundamentals/transactions/list-of-operations) supported by the Stellar network. The Operation object can be imported from ["@stellar/stellar-sdk"](https://www.npmjs.com/package/@stellar/stellar-sdk). - + ```typescript import { Operation } from "@stellar/stellar-sdk"; @@ -726,7 +726,7 @@ let manageDataOperation = ManageDataOperation(sourceAccountId: sourceAccountKeyP let tx = try txBuilder.addOperation(operation: manageDataOperation).build() ``` - + ### Sponsoring Transactions @@ -734,7 +734,7 @@ let tx = try txBuilder.addOperation(operation: manageDataOperation).build() Some operations, that modify account reserves can be [sponsored](../../guides/transactions/sponsored-reserves.mdx). For sponsored operations, the sponsoring account will be paying for the reserves instead of the account that being sponsored. This allows you to do some operations, even if account doesn't have enough funds to perform such operations. To sponsor a transaction, simply start a sponsoring block:} ts={simply create a building function (describing which operations are to be sponsored) and pass it to the sponsoring method:}/> - + ```kotlin suspend fun sponsorOperation() { @@ -782,7 +782,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: sponsoredKeyPair) ``` - + :::info @@ -794,7 +794,7 @@ Only some operations can be sponsored, and a sponsoring + ```kt suspend fun sponsorAccountCreation() { @@ -850,7 +850,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: newKeyPair) ``` - + Note how in the first example the transaction source account is set to `sponsoredKeyPair`. Due to this, we did not need to pass a sponsored account value to the `sponsoring` block} ts={method} />. Since when ommitted, the sponsored account defaults to the transaction source account (`sponsoredKeyPair`). @@ -860,7 +860,7 @@ However, this time, the sponsored account (freshly created `newKeyPair`) is diff If you want to create an account and modify it in one transaction, it's possible to do so with passing a `sponsoredAccount` optional argument to the sponsored block} ts={sponsoring method} /> (`newKeyPair` below). If this argument is present, all operations inside the sponsored block will be sourced by this `sponsoredAccount`. (Except account creation, which is always sourced by the sponsor). - + ```kotlin suspend fun sponsorAccountCreationAndModification() { @@ -940,7 +940,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: newKeyPair) ``` - + ### Fee-Bump Transaction @@ -948,7 +948,7 @@ If you wish to modify a newly created account with a 0 balance, it's also possib First, let's create a transaction that will replace the master key of an account with a new keypair. - + ```kt val replaceWith = account.createKeyPair() @@ -1000,11 +1000,11 @@ let transaction = try txBuilder.sponsoring( }).build() ``` - + Second, sign transaction with both keys. - + ```kt transaction.sign(sponsoredKeyPair).sign(sponsorKeyPair) @@ -1025,11 +1025,11 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: sponsoredKeyPair) ``` - + Next, create a fee bump, targeting the transaction. - + ```kt val feeBump = stellar.makeFeeBump(sponsorKeyPair, transaction) @@ -1055,11 +1055,11 @@ let feeBump = try stellar.makeFeeBump(feeAddress: sponsorKeyPair, stellar.sign(tx: transaction, keyPair: sponsorKeyPair) ``` - + Finally, submit a fee-bump transaction. Executing this transaction will be fully covered by the `sponsorKeyPair` and `sponsoredKeyPair` and may not even have any XLM funds on its account. - + ```kt wallet.stellar().submitTransaction(feeBump) @@ -1077,13 +1077,13 @@ bool success = await stellar.submitTransaction(feeBump); try await stellar.submitTransaction(signedFeeBumpTransaction: feeBump) ``` - + ### Using XDR to Send Transaction Data Note, that a wallet may not have a signing key for `sponsorKeyPair`. In that case, it's necessary to convert the transaction to XDR, send it to the server, containing `sponsorKey` and return the signed transaction back to the wallet. Let's use the previous example of sponsoring account creation, but this time with the sponsor key being unknown to the wallet. The first step is to define the public key of the sponsor keypair: - + ```kt val sponsorKeyPair = "SponsorAddress".toPublicKeyPair() @@ -1101,11 +1101,11 @@ var sponsorKeyPair = PublicKeyPair.fromAccountId("GC5GD..."); let sponsorKeyPair = try PublicKeyPair(accountId: "GC5GD...") ``` - + Next, create an account in the same manner as before and sign it with `newKeyPair`. This time, convert the transaction to XDR: - + ```kt suspend fun sponsorAccountCreation(): String { @@ -1161,11 +1161,11 @@ stellar.sign(tx: transaction, keyPair: newKeyPair) let xdrString = transaction.toEnvelopeXdrBase64() ``` - + It can now be sent to the server. On the server, sign it with a private key for the sponsor address: - + ```kt // On the server @@ -1218,11 +1218,11 @@ internal func signTransaction(xdr:String) throws -> String { } ``` - + When the client receives the fully signed transaction, it can be decoded and sent to the Stellar network: - + ```kt suspend fun recoverSigned(xdrString: String) { @@ -1258,7 +1258,7 @@ case .invalidXdrErr: } ``` - + ## Submit Transaction @@ -1272,7 +1272,7 @@ Finally, let's submit a signed transaction to the Stellar network. Note that a s The transaction is automatically re-submitted on the Horizon 504 error (timeout), which indicates a sudden network activity increase. - + ```kotlin suspend fun signAndSubmit() { @@ -1296,13 +1296,13 @@ stellar.sign(tx: transaction, keyPair: sourceAccountKeyPair) try await stellar.submitTransaction(signedTransaction: transaction) ``` - + However, the method above doesn't handle fee surge pricing in the network gracefully. If the required fee for a transaction to be included in the ledger becomes too high and transaction expires before making it into the ledger, this method will throw an exception. So, instead, the alternative approach is to: - + ```kotlin suspend fun submitWithFeeIncrease() { @@ -1348,7 +1348,7 @@ try await stellar.submitWithFeeIncrease( }) ``` - + This will create and sign the transaction that originated from the `sourceAccountKeyPair`. Every 30 seconds this function will re-construct this transaction with a new fee (increased by 100 stroops), repeating signing and submitting. Once the transaction is successful, the function will return the transaction body. Note, that any other error will terminate the retry cycle and an exception will be thrown. @@ -1356,7 +1356,7 @@ This will create and sign the transaction that originated from the `sourceAccoun It's very simple to use the Horizon SDK connecting to the same Horizon instance as a `Wallet` class. To do so, simply call: - + ```kotlin val server = wallet.stellar().server @@ -1374,11 +1374,11 @@ var server = wallet.stellar().server; let server = wallet.stellar.server ``` - + And you can work with Horizon Server instance: - + ```kt val stellarTransaction = server.transactions().transaction("transaction_id") @@ -1405,4 +1405,4 @@ case .failure(let error): } ``` - + diff --git a/docs/build/apps/zk.mdx b/docs/build/apps/zk.mdx new file mode 100644 index 0000000000..1ea2cb3a4f --- /dev/null +++ b/docs/build/apps/zk.mdx @@ -0,0 +1,52 @@ +--- +title: ZK Proofs on Stellar +sidebar_position: 75 +--- + +X-Ray (Protocol 25) introduced native host functions for zero-knowledge-friendly primitives (BN254 and Poseidon/Poseidon2), marking an important milestone in a long-term strategy to equip developers with the execution-environment infrastructure needed to build compliance-forward, privacy-preserving applications using zero-knowledge cryptography. These primitives are foundational building blocks and do not, on their own, provide end-to-end private payments without additional higher-level protocol or application logic. + +For more details on X-Ray, see this [blog post](https://stellar.org/blog/developers/announcing-stellar-x-ray-protocol-25). + +## BN254 + +BN254 is a pairing-friendly elliptic curve defined over a 254-bit prime field, commonly used in zero-knowledge proof systems because it supports efficient bilinear pairings. These pairings enable succinct proof constructions where complex statements can be verified quickly on-chain or in constrained environments. BN254 is especially popular in blockchain ecosystems because its arithmetic and pairing operations are relatively efficient to implement and well supported by existing libraries and tooling. + +While BN254 host functions provide the cryptographic operations needed for proof verification, developers must still generate proofs using higher-level systems (such as circuits written in Noir or Risc0 methods) and deploy verifier smart contracts on Stellar to implement complete zero-knowledge workflows. + +### BN254 host functions + +- `g1_add` — adds two elliptic-curve points in the G1 group, producing a new point. This is commonly used to combine proof or verification values. +- `g1_mul` — multiplies a G1 elliptic-curve point by an integer, returning a new point. This operation is a core building block in many proof verification calculations. +- `pairing_check` — verifies a pairing equation over lists of G1 and G2 points. This is typically the final step when checking the validity of a BN254 pairing-based proof. + +### Resources + +- [P25 Preview examples](https://github.com/jayz22/soroban-examples/tree/p25-preview/p25-preview) +- [Soroban SDK BN254 documentation - types and functions](https://docs.rs/soroban-sdk/latest/soroban_sdk/_migrating/v25_bn254/index.html) +- [CAP-74 proposal](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0074.md) +- [Noir Ultrahonk Soroban Verifier Contract](https://github.com/indextree/ultrahonk_soroban_contract) +- [Noir documentation (circuits)](https://noir-lang.org/docs/) +- [Risc0 documentation (circuits)](https://dev.risczero.com/) + +## Poseidon + +Poseidon is a cryptographic hash function specifically designed for zero-knowledge proof systems, where efficiency inside arithmetic circuits is critical. Unlike traditional hashes such as SHA-256, Poseidon is optimized to minimize the number of constraints required in zero-knowledge circuits by operating natively over finite fields used by zk-SNARKs. This makes it significantly faster and cheaper to prove and verify statements involving hashing, which is why Poseidon is widely used for commitments, Merkle trees, and nullifiers in zero-knowledge applications. + +Poseidon host functions support hashing within ZK-friendly environments, but developers must still incorporate them into higher-level proof systems and pair them with Stellar verifier contracts to build end-to-end zero-knowledge application flows. + +### Poseidon host functions + +- `poseidon` - computes the Poseidon hash of the input field elements +- `poseidon2` - computes the Poseidon hash of the input field elements + +### Resources + +- [P25 Preview examples](https://github.com/jayz22/soroban-examples/tree/p25-preview/p25-preview) +- [Soroban SDK Poseidon documentation](https://docs.rs/soroban-sdk/latest/soroban_sdk/_migrating/v25_poseidon/index.html) +- [CAP-75 proposal](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0075.md) + +:::note + +Poseidon is currently being branched out as a separate Rust SDK for use in smart contracts. + +::: diff --git a/docs/build/guides/archival/test-ttl-extension.mdx b/docs/build/guides/archival/test-ttl-extension.mdx index 4ecb216265..228c2451d0 100644 --- a/docs/build/guides/archival/test-ttl-extension.mdx +++ b/docs/build/guides/archival/test-ttl-extension.mdx @@ -8,7 +8,7 @@ In order to test contracts that extend the contract data [TTL](../../../learn/fu ## Example -Follow along the [example](https://github.com/stellar/soroban-examples/blob/main/ttl/src/lib.rs) that tests TTL extensions. The example has extensive comments, this document just highlights the most important parts. +Follow along the [example](https://github.com/stellar/soroban-examples/blob/v23.0.0/ttl/src/lib.rs) that tests TTL extensions. The example has extensive comments, this document just highlights the most important parts. We use a very simple contract that only extends an entry for every Soroban storage type: @@ -51,30 +51,38 @@ The focus of the example is the tests, so the following code snippets come from It's a good idea to define the custom values of TTL-related network settings, since the defaults are defined by the SDK and aren't immediately obvious for the reader of the tests: ```rust -env.ledger().with_mut(|li| { - // Current ledger sequence - the TTL is the number of - // ledgers from the `sequence_number` (exclusive) until - // the last ledger sequence where entry is still considered - // alive. - li.sequence_number = 100_000; - // Minimum TTL for persistent entries - new persistent (and instance) - // entries will have this TTL when created. - li.min_persistent_entry_ttl = 500; - // Minimum TTL for temporary entries - new temporary - // entries will have this TTL when created. - li.min_temp_entry_ttl = 100; - // Maximum TTL of any entry. Note, that entries can have their TTL - // extended indefinitely, but each extension can be at most - // `max_entry_ttl` ledger from the current `sequence_number`. - li.max_entry_ttl = 15000; -}); +/// Create an environment with specific values of network settings. +fn create_env() -> Env { + let env = Env::default(); + env.ledger().with_mut(|li| { + // Current ledger sequence - the TTL is the number of + // ledgers from the `sequence_number` (exclusive) until + // the last ledger sequence where entry is still considered + // alive. + li.sequence_number = 100_000; + // Minimum TTL for persistent entries - new persistent (and instance) + // entries will have this TTL when created. + li.min_persistent_entry_ttl = 500; + // Minimum TTL for temporary entries - new temporary + // entries will have this TTL when created. + li.min_temp_entry_ttl = 100; + // Maximum TTL of any entry. Note, that entries can have their TTL + // extended indefinitely, but each extension can be at most + // `max_entry_ttl` ledger from the current `sequence_number`. + li.max_entry_ttl = 15000; + }); + env +} ``` You could also use the current [network settings](../../../networks/resource-limits-fees.mdx#resource-fees) when setting up the tests, but keep in mind that these are subject to change, and the contract should be able to work with any values of these settings. -Now we run a test scenario that verifies the TTL extension logic (see [`test_extend_ttl_behavior`](https://github.com/stellar/soroban-examples/blob/f595fb5df06058ec0b9b829e9e4d0fe0513e0aa8/ttl/src/test.rs#L38) test for the full scenario). First, we setup the data and ensure that the initial TTL values correspond to the network settings we've defined above: +Now we run a test scenario that verifies the TTL extension logic (see [`test_extend_ttl_behavior`](https://github.com/stellar/soroban-examples/blob/v23.0.0/ttl/src/test.rs#L38) test for the full scenario). First, we setup the data and ensure that the initial TTL values correspond to the network settings we've defined above: ```rust +// Create initial entries and make sure their TTLs correspond to +// `min_persistent_entry_ttl` and `min_temp_entry_ttl` values set in +// `create_env()`. client.setup(); env.as_contract(&contract_id, || { // Note, that TTL doesn't include the current ledger, but when entry @@ -87,7 +95,7 @@ env.as_contract(&contract_id, || { }); ``` -Notice, that we use `env.as_contract` in order to access the contract's storage. +Notice, that we use `env.as_contract(...)` in order to access the contract's storage. Then we call the TTL extension operations and verify that they behave as expected, for example: @@ -97,6 +105,8 @@ client.extend_persistent(); env.as_contract(&contract_id, || { assert_eq!(env.storage().persistent().get_ttl(&DataKey::MyKey), 5000); }); + +// ... repeat with `client.extend_instance` and `client.extend_temporary` ... ``` In order to test the extension thresholds (i.e. maximum current TTL that requires extension), we need to increase the ledger sequence number: @@ -118,6 +128,7 @@ env.as_contract(&contract_id, || { Then we can extend the entries again and ensure that only entries that are below threshold have been extended (specifically, persistent and temporary entries in this example): ```rust +// Extend TTL of all the entries. client.extend_persistent(); client.extend_instance(); client.extend_temporary(); @@ -131,13 +142,14 @@ env.as_contract(&contract_id, || { }); ``` -Soroban SDK also emulates the behavior for the entries that have their TTL expired. Temporary entries behave 'as if' they were deleted (see [`test_temp_entry_removal`](https://github.com/stellar/soroban-examples/blob/f595fb5df06058ec0b9b829e9e4d0fe0513e0aa8/ttl/src/test.rs#L112) test for the full scenario): +Soroban SDK also emulates the behavior for the entries that have their TTL expired. Temporary entries behave 'as if' they were deleted (see [`test_temp_entry_removal`](https://github.com/stellar/soroban-examples/blob/v23.0.0/ttl/src/test.rs#L112) test for the full scenario): ```rust +// Extend the temporary entry TTL to 7000 ledgers. client.extend_temporary(); // Bump the ledger sequence by 7001 ledgers (one ledger past TTL). env.ledger().with_mut(|li| { - li.sequence_number = 100_000 + 7001; + li.sequence_number += 7001; }); // Now the entry is no longer present in the environment. env.as_contract(&contract_id, || { @@ -145,28 +157,27 @@ env.as_contract(&contract_id, || { }); ``` -Persistent entries are more subtle: when a transaction that is executed on-chain contains a persistent entry that has been archived (i.e. it has it's TTL expired) in the footprint, then the Soroban environment will not even be instantiated. Since this behavior is not directly reproducible in test environment, instead an irrecoverable 'internal' error will be produced as soon as an archived entry is accessed, and the test will `panic`: +Persistent entries are more subtle: when a transaction that is executed on-chain contains a persistent entry that has been archived (i.e., it has its TTL expired) in the footprint, then the entry will be automatically restored. Automatic restoration is mostly transparent, the main side effect is the increased fees. (see [`test_persistent_entry_auto_restored`](https://github.com/stellar/soroban-examples/blob/v23.0.0/ttl/src/test.rs#L136) test for the full scenario): ```rust -#[test] -#[should_panic(expected = "[testing-only] Accessed contract instance key that has been archived.")] -fn test_persistent_entry_archival() { - let env = create_env(); - let contract_id = env.register(TtlContract, ()); - let client = TtlContractClient::new(&env, &contract_id); - client.setup(); - // Extend the instance TTL to 10000 ledgers. - client.extend_instance(); - // Bump the ledger sequence by 10001 ledgers (one ledger past TTL). - env.ledger().with_mut(|li| { - li.sequence_number = 100_000 + 10_001; - }); - // Now any call involving the expired contract (such as `extend_instance` - // call here) will panic as soon as that contract is accessed. - client.extend_instance(); -} +// Extend the persistent entry TTL to 5000 ledgers. +client.extend_persistent(); +// Bump the ledger sequence by 5001 ledgers (one ledger past TTL). +env.ledger().with_mut(|li| { + li.sequence_number += 5001; +}); +// Now any call involving the expired persistent data will cause automatic +// restoration. +client.extend_persistent(); + +// Notice that disk read bytes and write bytes are increased even though the +// function itself is read-only. +let resources = env.cost_estimate().resources(); +assert!(resources.disk_read_bytes > 0); +assert!(resources.write_bytes > 0); +assert_eq!(resources.write_entries, 1); ``` ## Testing TTL extension for other contract instances -Sometimes a contract may want to extend TTL of another contracts and/or their Wasm entries (usually that would happen in factory contracts). This logic may be covered in a similar fashion to the example above using `env.deployer().get_contract_instance_ttl(&contract)` to get TTL of any contract's instance, and `env.deployer().get_contract_code_ttl(&contract)` to get TTL of any contract's Wasm entry. You can find an example of using these function in the SDK [test suite](https://github.com/stellar/rs-soroban-sdk/blob/ff05c3d4cbed97db50142372e9d7a4fa4a8d1d5d/soroban-sdk/src/tests/storage_testutils.rs#L76). +Sometimes a contract may want to extend TTL of another contracts and/or their Wasm entries (usually that would happen in factory contracts). This logic may be covered in a similar fashion to the example above using `env.deployer().get_contract_instance_ttl(&contract)` to get TTL of any contract's instance, and `env.deployer().get_contract_code_ttl(&contract)` to get TTL of any contract's Wasm entry. You can find an example of using these functions in the SDK [test suite](https://github.com/stellar/rs-soroban-sdk/blob/v23.4.1/soroban-sdk/src/tests/storage_testutils.rs#L76). diff --git a/docs/build/guides/auth/contract-authorization.mdx b/docs/build/guides/auth/contract-authorization.mdx index 2ed8c34d65..6072aa210e 100644 --- a/docs/build/guides/auth/contract-authorization.mdx +++ b/docs/build/guides/auth/contract-authorization.mdx @@ -8,7 +8,7 @@ description: Learn about smart contract auth on Stellar Smart contracts can be invoked without any caller authorization by default. The functionality of the smart contract can either justify, or even require, authorization. Let’s say we want to read or write sensitive information: then access to the contract should be restricted through authorization. Authorization is required if the contract signs transactions. -For a deeper understanding of how authorization works, see the [Security](https://developers.stellar.org/docs/learn/fundamentals/contract-development/authorization) section. +For a deeper understanding of how authorization works, see the [Security](../../../learn/fundamentals/contract-development/authorization.mdx) section. ### Address-based authorization @@ -76,6 +76,7 @@ First, we instruct the environment to mock all authorizations and let all `requi The second test will check if the expected authorization happened and only the expected authorization happened. ```rust +#[test] fn test() { let env = Env::default(); let contract_id = env.register(IncrementContract, {}); @@ -87,7 +88,7 @@ fn test() { assert_eq!(client.increment(&user, &value), 10); - Let expected_auth = AuthorizedInvocation { + let expected_auth = AuthorizedInvocation { function: AuthorizedFunction::Contract(( contract_id.clone(), symbol_short!("increment"), @@ -183,6 +184,7 @@ Contract functions using `require_auth_for_args()` for authorization can be test First, a test of the contract function is performed, where the authorization is mocked, followed by a test of the authorization itself. ```rust +#[test] fn test() { let env = Env::default(); let contract_id = env.register(IncrementContract, {}); @@ -194,7 +196,7 @@ fn test() { assert_eq!(client.increment(&user, &value), 10); - Let expected_auth = AuthorizedInvocation { + let expected_auth = AuthorizedInvocation { function: AuthorizedFunction::Contract(( contract_id.clone(), symbol_short!("increment"), @@ -244,7 +246,7 @@ test test::test ... ok Smart contracts can invoke functions in other contracts (called cross-contract calls). These direct calls are implicitly authorized by the invoker and do not need to be authorized. However, the contract function being invoked may require authorization from a user other than the contract itself. An example could be a transfer function, where an external user may have to authorize the transfer to the current contract. -To illustrate how to add authorization to a simple cross-contract invocation, we use the [Cross Contract Calls example contract](https://developers.stellar.org/docs/build/smart-contracts/example-contracts/cross-contract-call), which consists of two separate contracts, one that has a simple addition contract function, and another contract to invoke the first one. +To illustrate how to add authorization to a simple cross-contract invocation, we use the [Cross Contract Calls example contract](../../smart-contracts/example-contracts/cross-contract-call.mdx), which consists of two separate contracts, one that has a simple addition contract function, and another contract to invoke the first one. ### Invoking contract @@ -300,17 +302,17 @@ By using `env.current_contract_address()`, we can get the invoker's address and ## 3. Contract account authorization -Custom account contracts are contracts that implement a special reserved function for validating externally provided signatures within the respective authorization context. The custom account contracts are essentially regular contracts, with an added capability to verify externally provided authorization. +Contract accounts are contracts that implement a special reserved function for validating externally provided signatures within the respective authorization context. These accounts are essentially regular contracts, with an added capability to verify externally provided authorization. ### `__check_auth()` -A contract that implements the `CustomAccountInterface` for authorizing calls becomes a custom account contract. The interface contains a single function called `__check_auth()`. The function is a reserved function, and it is invoked automatically by the Host when a contract authorizes a transaction. It cannot be called manually. +A contract that implements the `CustomAccountInterface` for authorizing calls becomes a contract account. The interface contains a single function called `__check_auth()`. The function is a reserved function, and it is invoked automatically by the Host when a contract authorizes a transaction. It cannot be called manually. The function `__check_auth()` may be invoked for a given contract if two conditions are met. The first condition is when `require_auth()` or `require_auth_for_args()` are called. The second condition occurs when an account contract has not provided invoker authorization, for example, by calling a function that requires authorization directly. #### How it works -The `__check_auth()` function can implement the appropriate checks, such as signature verification, transfer allowance, or balance checks. The [Simple Account example code](https://github.com/stellar/soroban-examples/tree/main/simple_account) shows a very simple implementation of `__check_auth()`. +`__check_auth()` verifies the credentials and policy for an account address whenever another contract calls `require_auth`. A minimal implementation, shown below and documented end-to-end in the [Simple Account example](../../smart-contracts/example-contracts/simple-account.mdx), loads a stored Ed25519 key and verifies the signature payload against it: ```rust pub fn __check_auth( @@ -329,71 +331,38 @@ The `__check_auth()` function can implement the appropriate checks, such as sign } ``` -The Simple Account example has an `init()` function, which is used to store the owner’s ed25591 public key. When `require_auth()` is called, `__check_auth()` will check if the payload is signed by the owner. +More advanced accounts build on the same structure: the [Complex Account example](../../smart-contracts/example-contracts/complex-account.mdx) adds multiple signers, signature weights, and spend limits enforced via `auth_context` traversal. #### Authorization logic -The authorization logic inside `__check_auth()` can be written to fit the purpose of the check. Some examples of common checks are: - -- All required signers have signed -- Authorizing cross-contract calls -- Conditions such as spend limits, user restrictions, etc. - -View the smart contract examples to see how `__check_auth()` could be implemented. The [custom account example](https://github.com/stellar/soroban-examples/tree/main/account) is a good starting point. +You can customize `__check_auth()` to enforce whatever rules the account requires. Common checks include verifying all required signers, limiting which cross-contract sub-invocations are allowed, or enforcing spend limits. Refer to the Simple and Complex Account examples for end-to-end implementations. ### How to test -As shown in previous examples, authorization can be mocked in tests by adding env.mock_all_auths(). However, the `check_auth()` function will not be called by the test when mocking authorization. This doesn’t mean we can’t test the `check_auth()` function; there are two different methods of testing authorization, including the `check_auth()` function. `try_invoke_contract_check_auth()` The easiest way to test `check_auth()` is to use the try_invoke_contract_check_auth testing utility, which emulates a host call of the `__check_auth()` function, and tests it by treating it as a regular function. - -The [simple account example](https://github.com/stellar/soroban-examples/tree/main/simple_account) shows a very basic implementation on `try_invoke_contract_check_auth`. Let’s first take a look at the `__check_auth()` function: +As shown in previous examples, authorization can be mocked in tests by adding `env.mock_all_auths()`. However, `mock_all_auths` skips `__check_auth()`, so you still need direct coverage of the account logic. The recommended way is to call `env.try_invoke_contract_check_auth`, which emulates the host and feeds a payload, signature(s), and authorization context into your account. A typical pattern is: ```rust - #[allow(non_snake_case)] - pub fn __check_auth( - env: Env, - signature_payload: BytesN<32>, - signature: BytesN<64>, - _auth_context: Vec, - ) { - let public_key: BytesN<32> = env - .storage() - .instance() - .get::<_, BytesN<32>>(&DataKey::Owner) - .unwrap(); - - env.crypto() - .ed25519_verify(&public_key, &signature_payload.into(), - &signature); - } -``` - -If we look at the `__check_auth()` function, a payload, a signature, and context are required; so we need to provide the same parameters in `try_invoke_contract_check_auth`, along with the contract address. - -```rust - #[test] - fn test_account() { - let env = Env::default(); - let signer = generate_keypair(); - let payload = BytesN::random(&env); - +#[test] +fn test_account() { + let env = Env::default(); + let signer = generate_keypair(); + let payload = BytesN::random(&env); - ... + ... - account_contract.init(&signer.public.to_bytes().into_val(&env)); + account_contract.init(&signer.public.to_bytes().into_val(&env)); - env.try_invoke_contract_check_auth::( - &account_contract.address, - &payload, - sign(&env, &signer, &payload), - &vec![&env], - ) - .unwrap(); - } + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + sign(&env, &signer, &payload), + &vec![&env], + ) + .unwrap(); +} ``` -The test script creates a signer and a random payload. The contract function `init()` is called with the signer as an argument. The purpose of the `init()` function is to store the signer’s public key as the contract owner, so the `__check_auth()` function can verify if the signer is the contract owner, set by the `init()`. - -As this test case shows, `testing __check_auth()` is very simple using `try_invoke_contract_check_auth`, and it’s the recommended method of testing authorization `with __check_auth()`. See the simple account example for the full test code. +That snippet highlights the key inputs: contract address, payload, signature, and authorization tree. For the full tests, see the [Simple Account example](../../smart-contracts/example-contracts/simple-account.mdx); the Complex Account doc includes multisig and policy coverage. #### `set_auths()` @@ -476,6 +445,6 @@ Similar to how the host executes authorization on Testnet and Mainnet, `set_auth A `SorobanAuthorizationEntry` contains authorization credentials and contract invocation details. The credentials part specifies the contract address of `the __check_auth()` function, and relevant authorization data. The root invocation part specifies the contract ID, the name of the function being tested, and the function’s arguments. -For more information about authorization details provided in `set_auths()`, see the [Stellar Transactions](https://developers.stellar.org/docs/learn/fundamentals/contract-development/contract-interactions/stellar-transaction) documentation. +For more information about authorization details provided in `set_auths()`, see the [Stellar Transactions](../../../learn/fundamentals/contract-development/contract-interactions/stellar-transaction.mdx) documentation. Testing using `set_auths()` is more complex than testing using `try_invoke_contract_check_auth`, but in return, it allows for more advanced testing scenarios. If more advanced testing, e.g., testing specific authorization edge cases, is required, `set_auths()` might be a good choice. Otherwise, `try_invoke_contract_check_auth` generally is the recommended method for testing. diff --git a/docs/build/guides/basics/classic-transition.mdx b/docs/build/guides/basics/classic-transition.mdx index 1728845b87..2d99f7ea57 100644 --- a/docs/build/guides/basics/classic-transition.mdx +++ b/docs/build/guides/basics/classic-transition.mdx @@ -20,7 +20,7 @@ You can set up an RPC environment by hosting your own node or using a third-part ### Ingesting Smart Contract Events -Horizon offers an effects endpoint that describes state changes executed by classic operations. Similarly, contracts emit [events](../../../learn/fundamentals/stellar-data-structures/events.mdx) that describe changes to their state, which can be fetched via RPC's API. Off-chain solutions can [monitor and ingest these events](../../../build/guides/events/ingest.mdx) (for token transfers or protocol updates) and remain in sync with on-chain data. Each event is defined by the contract and is subject to standards applied to the implementation. Depending on the requirements for retention, a solution might have to handle ingestion directly or use a [third-party service](../../../data/indexers/indexer-providers/indexer-providers.mdx) for a longer-term history. +Horizon offers an effects endpoint that describes state changes executed by classic operations. Similarly, contracts emit [events](../../../learn/fundamentals/stellar-data-structures/events.mdx) that describe changes to their state, which can be fetched via RPC's API. Off-chain solutions can [monitor and ingest these events](../../../build/guides/events/ingest.mdx) (for token transfers or protocol updates) and remain in sync with on-chain data. Each event is defined by the contract and is subject to standards applied to the implementation. Depending on the requirements for retention, a solution might have to handle ingestion directly or use a [third-party service](../../../data/indexers/README.mdx) for a longer-term history. ### Simulating Transaction diff --git a/docs/build/guides/basics/verify-trustlines.mdx b/docs/build/guides/basics/verify-trustlines.mdx index 634ea85165..1f0648113f 100644 --- a/docs/build/guides/basics/verify-trustlines.mdx +++ b/docs/build/guides/basics/verify-trustlines.mdx @@ -4,9 +4,6 @@ sidebar_position: 40 description: Learn to verify trustlines before sending transactions to Stellar. --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - When performing payments on Stellar for [Stellar Assets](../../../tokens/README.mdx) other than XLM, it is important to ensure that the receiving account has a trustline established for the asset being sent. This one-pager provides a quick overview of how to verify trustlines before sending transactions, ensuring that payments are processed smoothly and allowing for application to appropriately handle cases where trustlines are not established or invalid. ## Why Verify Trustlines? @@ -231,10 +228,9 @@ For this example, we'll be using SAC as a smart contract interface for the testn This function can be accessed directly in a smart contract invocation as the example below demonstrates, or it can also be invoked by another contract, allowing for more complex interactions and programmability to be built in smart contracts. - - To use the RPC example below you should first generate the contract bindings so the - client can be used accordingly. This can be achieved through the [Stellar - CLI](../../../tools/cli/README.mdx). +:::info + +To use the RPC example below you should first generate the contract bindings so the client can be used accordingly. This can be achieved through the [Stellar CLI](../../../tools/cli/README.mdx). E.g.: Generating the typescript bindings for the `sac` contract of a given asset: @@ -242,7 +238,7 @@ E.g.: Generating the typescript bindings for the `sac` contract of a given asset stellar contract bindings typescript --network=testnet --contract-id=CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA --output-dir=./bindings ``` - +::: Given a receiver addresss, the following code snippet demonstrates how to simulate a transaction to check if a trustline exists for a specific asset: diff --git a/docs/build/guides/contract-accounts/README.mdx b/docs/build/guides/contract-accounts/README.mdx new file mode 100644 index 0000000000..95dfe58786 --- /dev/null +++ b/docs/build/guides/contract-accounts/README.mdx @@ -0,0 +1,25 @@ +--- +title: Contract Accounts +hide_table_of_contents: true +sidebar_class_name: sidebar-category-items-hidden +sidebar_position: 5 +description: Build, evaluate, and extend contract accounts on Stellar. +--- + +Contract accounts are smart contracts that act like accounts. They hold balances and use `__check_auth` to decide who can act and under what conditions. + +Use a contract account when: + +- You need custom authentication in the contract (passkeys/WebAuthn, hardware keys, or other signer checks). +- You need on chain rules such as spend caps, allow lists, or timelocks. + +Stay with a classic account when: + +- You want the simplest path: one private key, fund the account, no extra contract code or infrastructure. +- You must interoperate with systems/tools that expect memos (for example, some exchanges require payments with memos from a G-address; contract account payments go through the Stellar Asset Contract as muxed transfers, so transfers from contracts are not supported by exchanges today). + +Quick links: + +- [Simple Account example](../../smart-contracts/example-contracts/simple-account.mdx) +- [Complex Account example](../../smart-contracts/example-contracts/complex-account.mdx) +- [Contract authorization starter guide](../auth/contract-authorization.mdx) and [Authorization fundamentals](../../../learn/fundamentals/contract-development/authorization.mdx) diff --git a/docs/build/guides/contract-accounts/_category_.json b/docs/build/guides/contract-accounts/_category_.json new file mode 100644 index 0000000000..163cb24ca4 --- /dev/null +++ b/docs/build/guides/contract-accounts/_category_.json @@ -0,0 +1,3 @@ +{ + "collapsible": false +} diff --git a/docs/build/guides/contract-accounts/advanced-patterns.mdx b/docs/build/guides/contract-accounts/advanced-patterns.mdx new file mode 100644 index 0000000000..7bcc064d2b --- /dev/null +++ b/docs/build/guides/contract-accounts/advanced-patterns.mdx @@ -0,0 +1,49 @@ +--- +title: Advanced contract account patterns +description: Layer spend limits, allow lists, time rules, and other guardrails onto contract accounts. +sidebar_position: 40 +--- + +Use these patterns to extend a basic contract account with guardrails. Put the logic in `__check_auth` or a helper it calls, and test both the allow and deny paths. Treat signer rules as “who can act” and policy rules as “under what conditions.” + +## Spend limits + +- Store a limit and a running total in instance storage (for example, outflows over the last 24 hours). +- Derive a window key from the ledger timestamp (for example, `day = timestamp / 86_400`) and reset the total when the window changes. +- On each request, check the remaining allowance; if the amount would exceed it, reject and emit an event with the attempted amount and remaining allowance. + +See the [Complex Account example](../../smart-contracts/example-contracts/complex-account.mdx) for a reference implementation with weighted signers and limits. + +## Allow lists + +- Keep allowed destination addresses or contract IDs in storage. +- Inspect both the root invocation and any subinvocations in `auth_context` before approving so nested calls cannot bypass the list. + +## Policy signers + +- Define one or more policy signer roles in storage. A policy signer exists to approve or deny specific actions (for example, an auditor key, a guardian key, or a service that enforces spending rules). +- For high-risk contract calls (e.g. large transfers, changing signers), require the end user plus a policy signer; reject if either is missing. +- Separate roles (admin vs. standard) so daily use can be delegated while upgrades or recovery stay with admins. + +## Time rules + +- Block execution until a specific ledger timestamp, or add a cooldown after actions like key rotation or large transfers. +- Store the earliest allowed timestamp in instance storage; compare it against the current ledger timestamp in `__check_auth`. + +## Session keys + +- Generate a short-lived session key (for example, a p256 key created client-side and kept in secure browser storage) and limit it to one function plus a maximum amount. +- Store a record for the session key with its expiry, allowed scope, and remaining allowance; reduce the allowance on each authorized call. +- Reject if the session key is unknown, expired, out of allowance, or used outside its allowed scope. + +## External policy contracts + +- Offload specific checks (deny lists, time windows, device posture) to a dedicated policy contract; pass context into `__check_auth` and require the policy contract to approve before returning success. +- Keep the policy interface minimal (for example, `fn approve(auth_context) -> bool`) so you can swap policies without changing your account. + +## Where to go next + +- See these patterns applied in the [contract account examples](./examples.mdx). +- Explore reference implementations and libraries: + - [OpenZeppelin Stellar contracts](https://github.com/OpenZeppelin/stellar-contracts/) + - [Crossmint smart account](https://github.com/Crossmint/stellar-smart-account) diff --git a/docs/build/guides/contract-accounts/examples.mdx b/docs/build/guides/contract-accounts/examples.mdx new file mode 100644 index 0000000000..b2f215f3f0 --- /dev/null +++ b/docs/build/guides/contract-accounts/examples.mdx @@ -0,0 +1,47 @@ +--- +title: Contract account examples +description: Real projects that showcase policy signers, passkeys, and contract-account UX on Stellar. +sidebar_position: 50 +--- + +Use these projects as references or starting points. They are community-built; review and test before reusing in production. + +### Zafegard + +A smart wallet that demonstrates the use of stateful policy signers. + +- View the [code](https://github.com/kalepail/zafegard) +- Watch the [demo video](https://www.youtube.com/watch?v=I4i6sL-pHrs) + +### Do Math + +A smart wallet that demonstrates the use of multi-sig and policy signers to, surprisingly, do math without needing to input a passkey for every interaction. + +- View the [code](https://github.com/kalepail/do-math) +- Watch the [demo video](https://www.youtube.com/watch?v=lwvE6pEBmXw) + +### Soroban by example + +An app that uses passkeys to sign Stellar smart contract transactions. + +- View the [demo](https://passkey.sorobanbyexample.org/) +- View the [code](https://github.com/kalepail/soroban-passkey) +- Watch the [demo video](https://www.youtube.com/watch?v=y38_O4oIvbY) +- Watch the [discussion](/meetings/2024/05/09) +- Read the [blog](https://kalepail.com/blockchain/the-passkey-powered-future-of-web3) + +### Super Peach + +A passkey-powered multi-signer abstract account contract example. + +- View the [demo](https://superpeach.xyz/) +- View the [code](https://github.com/kalepail/superpeach) +- Watch the [demo video](https://youtu.be/0Agiwso2OMc?si=CHD9U8s-YLyqbXUJ) + +### Ye Olde Guestbook + +A passkey-powered internet guestbook from yesteryear built with smart contracts and frontend code. + +- View the [demo](https://ye-olde-guestbook.vercel.app) +- View the [code](https://github.com/ElliotFriend/ye-olde-guestbook) +- Read the [tutorial](../../apps/guestbook/README.mdx) diff --git a/docs/build/guides/contract-accounts/smart-wallets.mdx b/docs/build/guides/contract-accounts/smart-wallets.mdx new file mode 100644 index 0000000000..02c9684790 --- /dev/null +++ b/docs/build/guides/contract-accounts/smart-wallets.mdx @@ -0,0 +1,52 @@ +--- +title: Smart wallets +sidebar_position: 10 +--- + +Smart wallets are contract accounts that act as user wallets. They hold assets and enforce authorization in `__check_auth` instead of a single secret key. Passkeys (WebAuthn) are common, but you can also use Ed25519 keys, policy signers, session keys or anything the contract can verify. + +## When to use a smart wallet + +- You need programmable authorization (limits, allow lists, multi-factor approvals such as user plus device key). +- You want a passkey or hardware key experience without exposing seed phrases. +- You need flexible signer mixes: passkeys for UX, Ed25519 for compatibility, policy or multisig signers for risk controls. + +## WebAuthn + +[WebAuthn](https://www.w3.org/TR/webauthn/) is a browser standard for passwordless authentication using public key cryptography. A device creates a keypair and proves possession with a challenge/response flow. Keys stay on the device or synced across devices through cloud providers. + +Benefits: + +- Works across modern browsers and platforms. +- Familiar flows (Touch ID, Face ID, hardware keys) without seed phrases. +- Produces signatures you verify in `__check_auth`. + +## secp256r1 on Stellar + +`secp256r1` (prime256v1) is the curve most WebAuthn authenticators use. Stellar added native verification for this curve in Protocol 21, so contracts can validate WebAuthn signatures on chain. + +## Passkeys + +- WebAuthn is the browser standard for passwordless auth. +- secp256r1 is the curve most authenticators use; Stellar verifies it on-chain. +- Passkeys are the platform or hardware-backed credentials that implement WebAuthn. +- See [examples](./examples.mdx) for real projects. + +## Passkeys in practice + +- Registration: use WebAuthn to create a device keypair; store the public key (and optional credential ID) in contract state. +- Signing: request a WebAuthn assertion when the user approves an action; it returns a signature over the payload. +- Verification: pass the signature and credential ID to your contract; in `__check_auth`, verify the secp256r1 signature and apply any policy checks (limits, allow lists, timelocks). + +## Tooling + +- **Passkey Kit**: TypeScript SDK for creating contract accounts and signing with passkeys. + - Demo: [passkey-kit-demo.pages.dev](https://passkey-kit-demo.pages.dev/) + - Code: [github.com/kalepail/passkey-kit](https://github.com/kalepail/passkey-kit) +- **Launchtube**: relay for submitting transactions and handling fees/sequence numbers. + - Code: [github.com/stellar/launchtube](https://github.com/stellar/launchtube) + +## Get involved + +- Join the conversation in the `#passkeys` channel on the [Stellar Developer Discord](https://discord.gg/stellardev). +- Track the evolving contract account interface in [the SEP discussion](https://github.com/orgs/stellar/discussions/1499). diff --git a/docs/build/guides/conventions/deploy-sac-with-code.mdx b/docs/build/guides/conventions/deploy-sac-with-code.mdx index c0328d5574..6faa159597 100644 --- a/docs/build/guides/conventions/deploy-sac-with-code.mdx +++ b/docs/build/guides/conventions/deploy-sac-with-code.mdx @@ -26,7 +26,7 @@ In this guide, you'll learn how to deploy a [Stellar Asset Contract (SAC)](../.. - [Node.js ](https://nodejs.org/en) and npm installed. - Stellar SDK for [JavaScript](https://www.npmjs.com/package/@stellar/stellar-sdk) installed -- [Knowledge about Issuing an Asset on Stellar](https://developers.stellar.org/docs/tokens/how-to-issue-an-asset) +- [Knowledge about Issuing an Asset on Stellar](../../../tokens/how-to-issue-an-asset.mdx) - An understanding of the rudimentary, retry-enabled transaction polling function `submitTx` which we outlined in [another guide](../transactions/submit-transaction-wait-js.mdx) ## Code overview diff --git a/docs/build/guides/conversions/address-conversions.mdx b/docs/build/guides/conversions/address-conversions.mdx index 0e5b4f6b33..dea10efd24 100644 --- a/docs/build/guides/conversions/address-conversions.mdx +++ b/docs/build/guides/conversions/address-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convert an address to other types --- -import { CodeExample } from "@site/src/components/CodeExample"; - The `Address` is an opaque type that represents either a 'default' externally owned account on the Stellar network, or a contract (that may also provide logic for custom externally owned accounts, see [authorization docs](../../../learn/fundamentals/contract-development/authorization.mdx#account-abstraction) for details). For the smart contracts it normally doesn't matter which kind of `Address` is used. However, in some contexts it's useful to convert `Address` to/from different data types, such as string or XDR. The conversions have distinctly different purpose depending on whether they happen in the smart contract itself, or in the client code. ## String conversions diff --git a/docs/build/guides/conversions/bytes-conversions.mdx b/docs/build/guides/conversions/bytes-conversions.mdx index abe3efa980..f185799e0b 100644 --- a/docs/build/guides/conversions/bytes-conversions.mdx +++ b/docs/build/guides/conversions/bytes-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convert from bytes to other types --- -import { CodeExample } from "@site/src/components/CodeExample"; - Bytes is a contiguous growable array type containing u8s. They may represent various types of data including strings, addresses, or other information. Converting any data type to bytes ensures that the data be consistently handled by the Soroban runtime and interacting systems. ## Bytes to Address diff --git a/docs/build/guides/conversions/scval-conversions.mdx b/docs/build/guides/conversions/scval-conversions.mdx index 450de9097c..5212df1ba7 100644 --- a/docs/build/guides/conversions/scval-conversions.mdx +++ b/docs/build/guides/conversions/scval-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convert a ScVal to other type --- -import { CodeExample } from "@site/src/components/CodeExample"; - Soroban Contract Value (`ScVal`) is a custom type defined within the Soroban runtime environment that represents other data types such as strings, bytes, and more complex structures used within smart contracts in a format that that the soroban runtime can process, store and retrieve efficiently. ## ScVal to bytes diff --git a/docs/build/guides/conversions/string-conversions.mdx b/docs/build/guides/conversions/string-conversions.mdx index db9539e715..da46f33c95 100644 --- a/docs/build/guides/conversions/string-conversions.mdx +++ b/docs/build/guides/conversions/string-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convert a string to other types --- -import { CodeExample } from "@site/src/components/CodeExample"; - Strings are a sequence of characters used to represent readable text. They are used to store and manipulate text-based information such as function names, arguments, key-value data and interfacing with external systems. Strings may often need to be converted to other data types for efficient processing and storage. ## String to bytesN diff --git a/docs/build/guides/dapps/frontend-guide.mdx b/docs/build/guides/dapps/frontend-guide.mdx index 2f8caa76c4..612c7543ef 100644 --- a/docs/build/guides/dapps/frontend-guide.mdx +++ b/docs/build/guides/dapps/frontend-guide.mdx @@ -377,7 +377,7 @@ Now that we have our basic UI components in place, let's integrate them with the - Test network: This is a test environment for developers to test their applications without using real lumens. - Futurenet network: This is a network for testing new features before they are deployed to the public network. -For this guide, we'll be using the Test network to avoid using real lumens during development. Read more about the Stellar networks [here](https://developers.stellar.org/docs/learn/fundamentals/networks). +For this guide, we'll be using the Test network to avoid using real lumens during development. Read more about the [Stellar networks here](../../../networks/README.mdx). ### Setting up the Stellar SDK @@ -744,7 +744,7 @@ This is made possible by using the `server.getEvents` method which allows you to We will be editing the `CounterPage` component to read events from the counter smart contract immediately the page loads to get the initial counter value and update instead of using "Unknown". Before we continue, please take a look at the [contract code](https://github.com/stellar/soroban-examples/blob/main/events/src/lib.rs). In the contract code, an event named `increment` is emitted whenever the `increment` function is called. It is published over 2 topics, `increment` and `COUNTER` and we need to listen to these topics to get the events. -The topics are stored in a data type called `symbol` and we will need to convert both `increment` and `COUNTER` to `symbol` before we can use them in the [`server.getEvents`](../../../data/apis/rpc/api-reference/methods/getEvents) method. At maximum, stellar RPCs keep track of events for 7 days and you can query events that happened within the last 7 days, so if you need to store events for longer, you may need to make use of an [indexer](../../../data/indexers/indexer-providers). +The topics are stored in a data type called `symbol` and we will need to convert both `increment` and `COUNTER` to `symbol` before we can use them in the [`server.getEvents`](../../../data/apis/rpc/api-reference/methods/getEvents.mdx) method. At maximum, stellar RPCs keep track of events for 7 days and you can query events that happened within the last 7 days, so if you need to store events for longer, you may need to make use of an [indexer](../../../data/indexers/README.mdx). To use events,we edit our counter page and add the following code: diff --git a/docs/build/guides/dapps/initialization.mdx b/docs/build/guides/dapps/initialization.mdx index 4eb4cd6d7e..aa78bdddc8 100644 --- a/docs/build/guides/dapps/initialization.mdx +++ b/docs/build/guides/dapps/initialization.mdx @@ -5,7 +5,7 @@ description: Set up initialization correctly to ensure seamless setup for your d When setting up an example Soroban Dapp, correct initialization is crucial. This process entails several steps, including deploying Docker, cloning and deploying smart contracts, and invoking functions to configure them. In this comprehensive guide, you will walk you through the necessary steps to successfully build and deploy these smart contracts, ensuring a seamless setup for your Soroban Dapp. -## Building and Deploying the Soroban Token Smart Contract +## Building the Soroban Token Smart Contract In dapps like the [Example Payment Dapp](https://github.com/stellar/soroban-react-payment/), the [Soroban Token smart contracts](https://github.com/stellar/soroban-examples/tree/main/token) are used to represent the tokenized asset that users can send and receive. Here is an example of how to build and deploy the Soroban Token smart contracts: @@ -27,46 +27,61 @@ At this point you can build the smart contract: make ``` -This action will compile the smart contracts and place them in the `token/target/wasm32v1-none/release` directory. - -After building, you're ready to deploy the smart contracts to Futurenet. To do this, open a terminal in the `soroban-examples/token` directory and execute the following: - -```shell -stellar contract deploy \ - --wasm target/wasm32v1-none/release/soroban_token_contract.wasm \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' +This action will compile the smart contracts and place them in the `token/target/wasm32v1-none/release` directory. After building, you're ready to deploy the smart contracts to Testnet. + +## Deploying and Initializing the Soroban Token Smart Contract + +The smart contract can be initialized at deploy-time by utilizing the `__constructor` function. This function will be called at deploy-time and can be declared with parameters you can pass to the function with the deploy command. + +The `__constructor` function is added to the contract entry point, in this `token` smart contract it is found in the [contract.rs](https://github.com/stellar/soroban-examples/blob/main/token/src/contract.rs) file. + +```rust title="contract.rs" +#[contractimpl] +impl Token { + pub fn __constructor(e: Env, admin: Address, decimal: u32, name: String, symbol: String) { + if decimal > 18 { + panic!("Decimal must not be greater than 18"); + } + write_administrator(&e, &admin); + write_metadata( + &e, + TokenMetadata { + decimal, + name, + symbol, + }, + ) + } + ... +} ``` -This command deploys the smart contracts to Futurenet using the `stellar contract deploy` function. - -## Initializing a Token Contract +The `__constructor` function in this example project takes the following parameters: -With the contracts deployed, it's time to initialize the token contract: +- Administrator Account: This is the public key of the administrator account. The administrator has control and authority over the token contract, enabling management of various contract functionalities. Learn more about the administrator's role from the Soroban Token Interface. -```shell -stellar contract invoke \ - --id \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' \ - -- initialize \ - --admin \ - --decimal 7 \ - --name '44656d6f20546f6b656e' \ - --symbol '"4454"' -``` +- Decimal Precision: The decimal precision specifies the maximum number of decimal places the token can support transactions up to. This precision level enables flexibility when transferring token amounts. -This command requires certain inputs: +- Token Name: The token's name. -- Administrator Account: This is the public key of the administrator account. The administrator has control and authority over the token contract, enabling management of various contract functionalities. Learn more about the administrator's role from the Soroban Token Interface. +- Token Symbol: This is the token's symbol. -- Decimal Precision: The decimal precision value of 7 specifies that the token can support transactions up to 7 decimal places. This precision level enables flexibility when transferring token amounts. +To deploy the smart contract in this example, open a terminal in the `soroban-examples/token` directory and execute the following: -- Token Name: The token's name, represented as a hex-encoded string. In this case, '44656d6f20546f6b656e' corresponds to "Demo Token". +```shell +stellar contract deploy \ + --wasm target/wasm32v1-none/release/soroban_token_contract.wasm \ + --source-account alice \ + --rpc-url https://soroban-testnet.stellar.org \ + --network-passphrase 'Test SDF Network ; September 2015' + -- \ + --admin alice \ + --decimal 10 \ + --name 'Demo Token' \ + --symbol 'DT' +``` -- Token Symbol: This is the token's symbol, also represented as a hex string. '4454' translates to the symbol "DT". +This command deploys the smart contracts to Testnet using the `stellar contract deploy` function. The smart contract will be deployed with the mandatory parameters, and the smart contract will be initialized with these values. ## Minting Tokens @@ -75,15 +90,15 @@ Lastly, you need to mint some tokens to the sender's account: ```shell stellar contract invoke \ --id \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' \ + --source-account alice \ + --rpc-url https://soroban-testnet.stellar.org \ + --network-passphrase 'Test SDF Network ; September 2015' -- mint \ - --to \ + --to bob \ --amount 1000000000 ``` -This command will mint 100 tokens to the designated user's account. +This command will mint 100 tokens to the designated user's account, in this case `bob`. By following these steps, you ensure that the Soroban token smart contracts are correctly deployed and initialized, setting the stage for the Dapp to effectively interact with the token. @@ -91,7 +106,7 @@ For a deeper dive into Stellar CLI commands, check out the [Stellar CLI repo](ht ## Automating Initialization with Scripts -To streamline the initialization process, you can use a script. This script should automate various tasks such as setting up the network, wrapping Stellar assets, generating token-admin identities, funding the token-admin account, building and deploying the contracts, and initializing them with necessary parameters. +To streamline the initialization process, you can use a script. This script should automate various tasks such as setting up the network, generating token-admin identities, funding the token-admin account, building and deploying the contracts, and initializing them with necessary parameters. Here's an example initializer script: @@ -135,7 +150,6 @@ testnet) ;; esac - echo Add the $NETWORK network to cli client stellar network add \ --rpc-url "$SOROBAN_RPC_URL" \ @@ -148,8 +162,6 @@ fi TOKEN_ADMIN_SECRET="$(stellar keys show token-admin)" TOKEN_ADMIN_ADDRESS="$(stellar keys address token-admin)" -# TODO: Remove this once we can use `stellar keys` from webpack. -mkdir -p .soroban-example-dapp echo "$TOKEN_ADMIN_SECRET" > .soroban-example-dapp/token_admin_secret echo "$TOKEN_ADMIN_ADDRESS" > .soroban-example-dapp/token_admin_address @@ -157,42 +169,18 @@ echo "$TOKEN_ADMIN_ADDRESS" > .soroban-example-dapp/token_admin_address echo Fund token-admin account from friendbot curl --silent -X POST "$FRIENDBOT_URL?addr=$TOKEN_ADMIN_ADDRESS" >/dev/null -ARGS="--network $NETWORK --source-account token-admin" - -echo Deploy the Stellar asset contract -TOKEN_ID=$(stellar contract asset deploy $ARGS --asset "EXT:$TOKEN_ADMIN_ADDRESS") -echo "Token deployed successfully with TOKEN_ID: $TOKEN_ID" - -# TODO - remove this workaround when -# https://github.com/stellar/soroban-tools/issues/661 is resolved. -TOKEN_ADDRESS="$(node ./address_workaround.js $TOKEN_ID)" -echo "Token Address converted to StrKey contract address format:" $TOKEN_ADDRESS - -echo -n "$TOKEN_ID" > .soroban-example-dapp/token_id - -echo Build the crowdfund contract +echo Build the contract make build -echo Deploy the crowdfund contract +echo Deploy the contract +ARGS="--network $NETWORK --source-account token-admin -- --admin $2 --decimal $3 --name $4 --symbol $5" CROWDFUND_ID="$( stellar contract deploy $ARGS \ - --wasm target/wasm32v1-none/release/soroban_crowdfund_contract.wasm + --wasm target/wasm32v1-none/release/soroban_token_contract.wasm )" echo "Contract deployed successfully with ID: $CROWDFUND_ID" echo "$CROWDFUND_ID" > .soroban-example-dapp/crowdfund_id -echo "Initialize the crowdfund contract" -deadline="$(($(date +"%s") + 86400))" -stellar contract invoke \ - $ARGS \ - --id "$CROWDFUND_ID" \ - -- \ - initialize \ - --recipient "$TOKEN_ADMIN_ADDRESS" \ - --deadline "$deadline" \ - --target_amount "1000000000" \ - --token "$TOKEN_ADDRESS" - echo "Done" ``` @@ -207,9 +195,7 @@ Here's a summary of what the `initialize.sh` script does: - Fetches the TOKEN_ADMIN_SECRET and TOKEN_ADMIN_ADDRESS from the newly generated identity - Saves the TOKEN_ADMIN_SECRET and TOKEN_ADMIN_ADDRESS in the .soroban directory - Funds the token-admin account using Friendbot -- Deploy the Stellar asset contract with `stellar contract asset deploy` and stores the resulting TOKEN_ID -- Builds the crowdfund contract with `make build` and deploys it using `stellar contract deploy`, storing the returned CROWDFUND_ID -- Initializes the crowdfund contract by invoking the initialize function with necessary parameters +- Builds the contract with `make build` and deploys it using `stellar contract deploy`, storing the returned CROWDFUND_ID - Prints "Done" to signify the end of the initialization process By leveraging automated initialization, you can streamline the setup process for your Soroban Dapp, ensuring it is correctly deployed and initialized. diff --git a/docs/build/guides/dapps/react.mdx b/docs/build/guides/dapps/react.mdx index 507b250bba..57812d9786 100644 --- a/docs/build/guides/dapps/react.mdx +++ b/docs/build/guides/dapps/react.mdx @@ -4,15 +4,13 @@ description: Connect dapp frontends to contracts and Freighter wallet using @sor draft: true --- -import { Alert } from "@site/src/components/Alert"; - This section elaborates on how the frontends from your dapp can interact with the example contracts and access chain data, and connect to a freighter wallet. This will be illustrated by utilizing libraries provided by [`@soroban-react`](https://soroban-react.gitbook.io/index/), a simple, powerful framework for building modern Dapps using React. `@soroban-react` was created and is maintained by an amazing member of the community! - +:::info This guide will demonstrate how an [example crowdfund dapp] frontend was developed with React. While much of the code is specific to this project, the principles demonstrated should be educational enough to get you started. - +::: Below is a list of the libraries used throughout the frontend code and their respective imports: diff --git a/docs/build/guides/dapps/state-archival.mdx b/docs/build/guides/dapps/state-archival.mdx index f22d9744e9..13ed583d72 100644 --- a/docs/build/guides/dapps/state-archival.mdx +++ b/docs/build/guides/dapps/state-archival.mdx @@ -5,7 +5,7 @@ description: Learn how to implement state archival in your dapp When developing decentralized applications on Stellar, state archival is part of what we need to consider due to how data is stored on the network. This guide will help you understand how to work with state archival in your dapp. -Some state archival terminology we will be using in this guide are described in the [state archival section](/docs/learn/fundamentals/contract-development/storage/state-archival#terms-and-semantics). +Some state archival terminology we will be using in this guide are described in the [state archival section](../../../learn/fundamentals/contract-development/storage/state-archival.mdx#terms-and-semantics). ## Why managing state archival is important for applications @@ -261,7 +261,7 @@ async function performContractAction(contractId, method, ...args) { For restoring an entire contract instance, you might need a separate function: -Here we will be using the [`getLedgerEntries` method](/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#requesting-a-contracts-wasm-code) to get the WASM code of the contract and also the [`restoreFootprint` operation](/docs/learn/fundamentals/transactions/list-of-operations#restore-footprint) to restore the contract instance. +Here we will be using the [`getLedgerEntries` method](../../../data/apis/rpc/api-reference/methods/getLedgerEntries.mdx#2-request-the-contractcode-using-the-retrieved-ledgerkey) to get the WASM code of the contract and also the [`restoreFootprint` operation](../../../learn/fundamentals/transactions/list-of-operations.mdx#restore-footprint) to restore the contract instance. ```javascript async function restoreContractInstance(contractId) { diff --git a/docs/build/guides/dapps/working-with-contract-specs.mdx b/docs/build/guides/dapps/working-with-contract-specs.mdx index e562aea889..f68802e39d 100644 --- a/docs/build/guides/dapps/working-with-contract-specs.mdx +++ b/docs/build/guides/dapps/working-with-contract-specs.mdx @@ -3,8 +3,6 @@ title: Work with contract specs in Java, Python, and PHP description: A guide to understanding and interacting with Soroban smart contracts in different programming languages --- -import { CodeExample } from "@site/src/components/CodeExample"; - ## Introduction Soroban smart contracts are powerful tools for building decentralized applications on the Stellar network. To interact with these contracts effectively, it's crucial to understand their specifications and how to use them in your programming language of choice. diff --git a/docs/build/guides/fees/analyzing-smart-contract-cost.mdx b/docs/build/guides/fees/analyzing-smart-contract-cost.mdx index 4a5fffc5b2..acdd9d8184 100644 --- a/docs/build/guides/fees/analyzing-smart-contract-cost.mdx +++ b/docs/build/guides/fees/analyzing-smart-contract-cost.mdx @@ -526,14 +526,13 @@ To optimize the size of your `wasm` binary, you can: ### 1. Use of built-in tools -One way to optimize the size of your `wasm` binary is to use the `soroban optimize` command. This command comes from the [Stellar CLI](../../../tools/cli/stellar-cli.mdx) will optimize the size of your `wasm` binary by removing unnecessary code and reducing the size of the binary. +One way to optimize the size of your `wasm` binary is by using `--optimize` when building your contracts with the [Stellar CLI](../../../tools/cli/stellar-cli.mdx). This flag will optimize the size of your `wasm` binary by removing unnecessary code and reducing the size of the binary. ```bash -stellar contract optimize \ - --wasm target/wasm32v1-none/release/project.wasm +stellar contract build --optimize ``` -Another way to optimize your smart contract is to use the `stellar contract invoke` command with the `--cost` and `--sim-only` flags. This command will provide you with a detailed breakdown of the cost of running your smart contract on the Stellar network. +Another way to optimize your smart contract is to use the `stellar contract invoke` command with the `--cost` flag. This command will provide you with a detailed breakdown of the cost of running your smart contract on the Stellar network. ```bash stellar contract invoke \ @@ -541,7 +540,6 @@ stellar contract invoke \ --source-account alice \ --network testnet \ --cost \ - --sim-only \ -- \ increment ``` @@ -556,7 +554,7 @@ Perform a manual code review of your smart contract to identify areas where you Use unit tests to measure the gas cost of your smart contract functions. This will help you identify functions that are consuming a lot of gas and optimize them accordingly. -Also, using [simulateTransaction](/docs/data/apis/rpc/api-reference/methods/simulateTransaction) rpc helper method can give you an insight of the gas cost of your contract functions. +Also, using [simulateTransaction](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx) rpc helper method can give you an insight of the gas cost of your contract functions. ### 4. Static analysis tools @@ -569,25 +567,30 @@ Tools like [Clippy](https://doc.rust-lang.org/clippy/) (part of the Rust compile #### State Variables -- Cost: State variables are stored directly on the blockchain's storage. The cost is primarily influenced by the amount of data stored (measured in bytes) and the frequency of read and write operations. -- Considerations: Writing data to state variables typically incurs higher gas costs compared to reading data. Complex data structures (e.g., arrays, mappings) or large amounts of data increase storage costs and gas consumption. Stellar charges gas fees for each byte of data stored and updated, making efficient data management crucial for cost optimization. +- **Cost**: State variables are stored directly on the blockchain's storage. The cost is primarily influenced by the amount of data stored (measured in bytes) and the frequency of read and write operations. + +- **Considerations**: Writing data to state variables typically incurs higher gas costs compared to reading data. Complex data structures (e.g., arrays, mappings) or large amounts of data increase storage costs and gas consumption. Stellar charges gas fees for each byte of data stored and updated, making efficient data management crucial for cost optimization. #### Event Logs -- Cost: Emitting events in Rust contracts does not incur direct storage costs since events are not permanently stored on the blockchain. Instead, they are included in transaction logs. -- Considerations: Emitting events consumes gas, primarily due to the computational resources required to execute event emission and log generation. Events are useful for off-chain applications and event-driven architectures but do not contribute directly to on-chain storage costs. +- **Cost**: Emitting events in Rust contracts does not incur direct storage costs since events are not permanently stored on the blockchain. Instead, they are included in transaction logs. + +- **Considerations**: Emitting events consumes gas, primarily due to the computational resources required to execute event emission and log generation. Events are useful for off-chain applications and event-driven architectures but do not contribute directly to on-chain storage costs. #### External Data Sources -- Cost: Interacting with external data sources like oracles involves transaction fees for data retrieval and processing. -- Considerations: Oracle calls incur gas costs for contract execution, which can vary depending on the complexity and frequency of data fetching. Contract developers should consider gas limits and optimize oracle interactions to minimize costs while ensuring reliable data integration. +- **Cost**: Interacting with external data sources like oracles involves transaction fees for data retrieval and processing. + +- **Considerations**: Oracle calls incur gas costs for contract execution, which can vary depending on the complexity and frequency of data fetching. Contract developers should consider gas limits and optimize oracle interactions to minimize costs while ensuring reliable data integration. #### Immutable Data and Constants -- Cost: Constants and immutable variables incur negligible storage costs since they are typically stored as part of the contract's bytecode or metadata. -- Considerations: Constants and immutable data are crucial for contract configuration and parameterization but do not impact transaction or storage costs significantly. They are pre-defined during contract deployment and do not change during contract execution, avoiding additional gas costs for storage updates. +- **Cost**: Constants and immutable variables incur negligible storage costs since they are typically stored as part of the contract's bytecode or metadata. + +- **Considerations**: Constants and immutable data are crucial for contract configuration and parameterization but do not impact transaction or storage costs significantly. They are pre-defined during contract deployment and do not change during contract execution, avoiding additional gas costs for storage updates. #### Off-Chain Storage and IPFS -- Cost: Storing data off-chain using solutions like IPFS avoids direct on-chain storage costs but incurs costs for data retrieval and IPFS network usage. -- Considerations: Contracts store only the hash or reference to off-chain data on-chain, minimizing on-chain storage costs. Gas costs may apply when retrieving and processing off-chain data, depending on the complexity and frequency of access. Off-chain storage solutions offer scalability and flexibility but require careful consideration of network fees and data availability. +- **Cost**: Storing data off-chain using solutions like IPFS avoids direct on-chain storage costs but incurs costs for data retrieval and IPFS network usage. + +- **Considerations**: Contracts store only the hash or reference to off-chain data on-chain, minimizing on-chain storage costs. Gas costs may apply when retrieving and processing off-chain data, depending on the complexity and frequency of access. Off-chain storage solutions offer scalability and flexibility but require careful consideration of network fees and data availability. diff --git a/docs/build/guides/testing/code-coverage.mdx b/docs/build/guides/testing/code-coverage.mdx index fd476b6e1a..6986014d11 100644 --- a/docs/build/guides/testing/code-coverage.mdx +++ b/docs/build/guides/testing/code-coverage.mdx @@ -47,7 +47,7 @@ Run the test subcommand that will run the tests and output a single `lcov.info` cargo llvm-cov test --lcov --output-path=lcov.info ``` -Load the `lcov.info` file into your IDE using it's coverage feature. In VSCode this can be done by installing the [Coverage Gutters] extension and executing the `Coverage Gutters: Watch` command. +Load the `lcov.info` file into your IDE using its coverage feature. In VSCode this can be done by installing the [Coverage Gutters] extension and executing the `Coverage Gutters: Watch` command. :::info diff --git a/docs/build/guides/testing/differential-tests.mdx b/docs/build/guides/testing/differential-tests.mdx index ad070370a0..5f5bd7ece3 100644 --- a/docs/build/guides/testing/differential-tests.mdx +++ b/docs/build/guides/testing/differential-tests.mdx @@ -9,7 +9,7 @@ Differential testing is the testing of two things to discover differences in the The goal is to prove that the two things behave consistently, and that they do not diverge in behavior except for some expected differences. The assertions should be as broad as possible, broadly testing that all observable outcomes do not change, except for any expected changes. -This strategy is effective when building something new that should behave like something that already exists. That could be a new version of a contract that has unchanged behavior from it's previous version. Or it could be the same contract with an updated SDK or other dependency. Or it could be a refactor that expects no functional changes. +This strategy is effective when building something new that should behave like something that already exists. That could be a new version of a contract that has unchanged behavior from its previous version. Or it could be the same contract with an updated SDK or other dependency. Or it could be a refactor that expects no functional changes. This strategy can be used in the context of unit and integration tests, or in the context of fuzz tests as well. diff --git a/docs/build/guides/testing/fork-testing.mdx b/docs/build/guides/testing/fork-testing.mdx index 33870520d8..a4ca1db92a 100644 --- a/docs/build/guides/testing/fork-testing.mdx +++ b/docs/build/guides/testing/fork-testing.mdx @@ -17,7 +17,7 @@ The [Soroban Rust SDK] and [Stellar CLI] come together to make possible testing The following is an example of a test that includes a dependency contract into the test, rather than mock it. The test is written to test the [increment-with-pause contract] and the [pause contract]. The contract has an `increment` function that increases a counter value by one on every invocation. The contract depends on the pause contract to control whether the increment functionality is paused. -The following tests set up the `increment-with-pause` contract, using a ledger snapshot that has the dependency `pause` contract already deployed along with it's contract data. +The following tests set up the `increment-with-pause` contract, using a ledger snapshot that has the dependency `pause` contract already deployed along with its contract data. 1. Use [stellar snapshot create] command to create a snapshot of the pause contract and its data. diff --git a/docs/build/guides/testing/integration-tests.mdx b/docs/build/guides/testing/integration-tests.mdx index 29e13797f9..8a412bd988 100644 --- a/docs/build/guides/testing/integration-tests.mdx +++ b/docs/build/guides/testing/integration-tests.mdx @@ -13,7 +13,7 @@ The [Soroban Rust SDK] makes it just as easy to integration test by providing ut The following is an example of a test that includes a dependency contract into the test, rather than mock it. The test is written to test the [increment-with-pause contract] and the [pause contract]. The contract has an `increment` function that increases a counter value by one on every invocation. The contract depends on the pause contract to control whether the increment functionality is paused. -The following tests set up the `increment-with-pause` contract, as well as import and register the real pause contract using it's wasm file. +The following tests set up the `increment-with-pause` contract, as well as import and register the real pause contract using its wasm file. 1. Use the [stellar contract fetch] command to fetch the dependency contract that's already deployed on testnet or mainnet. diff --git a/docs/build/guides/testing/ledger-snapshot-testing.mdx b/docs/build/guides/testing/ledger-snapshot-testing.mdx index 44695b220a..5bc53ca3de 100644 --- a/docs/build/guides/testing/ledger-snapshot-testing.mdx +++ b/docs/build/guides/testing/ledger-snapshot-testing.mdx @@ -46,7 +46,7 @@ Since we want to write a test that reads data stored on the ledger, or more prec #### Build contract -Use the [Stellar CLI](https://developers.stellar.org/docs/tools/cli/stellar-cli) to build the contract: +Use the [Stellar CLI](../../../tools/cli/stellar-cli.mdx) to build the contract: ```bash stellar contract build @@ -83,7 +83,7 @@ Now we have a working, deployed smart contract function that has stored a value ## 2. Create a ledger snapshot -A snapshot of the ledger can be created using the Stellar CLI. The CLI command allows you to customize and limit the scope of the snapshot, since it’s most likely not necessary for you to create a snapshot of all ledger entries. See the [documentation](https://developers.stellar.org/docs/tools/cli/stellar-cli#stellar-snapshot-create) for full details about how to limit the snapshot. +A snapshot of the ledger can be created using the Stellar CLI. The CLI command allows you to customize and limit the scope of the snapshot, since it’s most likely not necessary for you to create a snapshot of all ledger entries. See the [documentation](../../../tools/cli/stellar-cli.mdx#stellar-snapshot-create) for full details about how to limit the snapshot. For the examples used here, we want to limit the ledger snapshot to include entries related to: @@ -244,13 +244,13 @@ This example shows there are only minor differences between testing contract fun In this last example, we want to read the balance of an account. It can be the balance of a user account or of a smart contract - any account that can hold a balance. In this example, we check the balance of the user account `alice`. -In this example, we assume that `alice` already has a balance in XLM, and since the examples are based on Testnet, the `alice` account was funded by FriendBot if this [guide](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup#configure-an-identity) was followed while creating the account. The address of `alice` can be looked up by running this command: +In this example, we assume that `alice` already has a balance in XLM, and since the examples are based on Testnet, the `alice` account was funded by FriendBot if this [guide](../../../tools/cli/cookbook/stellar-keys.mdx) was followed while creating the account. The address of `alice` can be looked up by running this command: ```bash stellar keys address alice ``` -Tokens, such as XLM, are wrapped in a contract interface called the [Stellar Asset Contract (SAC)](https://developers.stellar.org/docs/tokens/stellar-asset-contract). This interface provides a convenient way to query an account’s balance. The first step of getting the account balance is to create a contract client for XLM tokens. +Tokens, such as XLM, are wrapped in a contract interface called the [Stellar Asset Contract (SAC)](../../../tokens/stellar-asset-contract.mdx). This interface provides a convenient way to query an account’s balance. The first step of getting the account balance is to create a contract client for XLM tokens. The SAC address for XLM is a reserved address and will be the same for all projects. USDC and other assets will have another SAC address, but they do not change. We use the SAC address to define a client using `TokenClient`. diff --git a/docs/build/guides/testing/unit-tests.mdx b/docs/build/guides/testing/unit-tests.mdx index 0deaab4b72..44d9efd6f4 100644 --- a/docs/build/guides/testing/unit-tests.mdx +++ b/docs/build/guides/testing/unit-tests.mdx @@ -9,7 +9,7 @@ Unit tests are small tests that test one piece of functionality within a contrac ## How to Write Unit Tests -The following is an example of a unit test, written to test the [increment contract]. The contract has an `increment` function, that increases a counter value by one on every invocation. The following test invokes that contract's function several times, and checks that the value increases by one. +The following is an example of a unit test, written to test the [increment contract](https://github.com/stellar/soroban-examples/blob/main/increment/src/lib.rs). The contract has an `increment` function, that increases a counter value by one on every invocation. The following test invokes that contract's function several times, and checks that the value increases by one. ```rust #![cfg(test)] @@ -71,4 +71,11 @@ The `Env` created at the beginning of the test is not a simulation of the Soroba ::: -[increment contract]: https://github.com/stellar/soroban-examples/blob/main/increment/src/lib.rs +It's a simple test, but it's a complete test. There's a full environment setup, used, and torn down in the test, and it happens fast. The Rust test harness runs all the tests for a contract in parallel and each will have its own isolated contract environment. + +Most tests, even integration tests and fuzz tests, will look very similar to this unit test. They'll do four things: + +1. Create an environment, the `Env`. +2. Register the contract(s) to be tested. +3. Invoke functions using a client. +4. Assert the outcome. diff --git a/docs/build/guides/transactions/channel-accounts.mdx b/docs/build/guides/transactions/channel-accounts.mdx index b383d924bb..cb981e0d53 100644 --- a/docs/build/guides/transactions/channel-accounts.mdx +++ b/docs/build/guides/transactions/channel-accounts.mdx @@ -4,8 +4,6 @@ description: Create channel accounts to submit transactions to the network at a sidebar_position: 10 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Channel accounts provide a method for submitting transactions to the network at a high rate. An account’s transactions always need to be submitted to the network in increments of one sequence number (unless minimum sequence number preconditions are set). This can cause problems if you are submitting transactions at a high rate, as they can potentially reach Stellar Core out of order and will then bounce with a bad sequence error. diff --git a/docs/build/guides/transactions/claimable-balances.mdx b/docs/build/guides/transactions/claimable-balances.mdx index 724f1e02ee..e01ec7aa28 100644 --- a/docs/build/guides/transactions/claimable-balances.mdx +++ b/docs/build/guides/transactions/claimable-balances.mdx @@ -4,7 +4,6 @@ description: Split a payment into two parts by creating a claimable balance. sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Details from "@theme/Details"; Claimable balances were introduced in [CAP-0023](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0023.md) and are used to split a payment into two parts. @@ -230,10 +229,10 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" + "github.com/stellar/go-stellar-sdk/xdr" ) func main() { @@ -446,7 +445,7 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/xdr" ) // Replace with your claimable balance ID @@ -599,9 +598,9 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" ) // Replace with your claimable balance ID and claimant secret diff --git a/docs/build/guides/transactions/clawbacks.mdx b/docs/build/guides/transactions/clawbacks.mdx index 9608c26f29..3656667290 100644 --- a/docs/build/guides/transactions/clawbacks.mdx +++ b/docs/build/guides/transactions/clawbacks.mdx @@ -4,8 +4,6 @@ description: Use clawbacks to burn a specific amount of a clawback-enabled asset sidebar_position: 30 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Clawbacks were introduced in [CAP-0035: Asset Clawback](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0035.md) and allow an asset issuer to burn a specific amount of a clawback-enabled asset from a trustline or claimable balance, effectively destroying it and removing it from a recipient's balance. They were designed to allow asset issuers to meet securities regulations, which in many jurisdictions require asset issuers (or designated transfer agents) to have the ability to revoke assets in the event of a mistaken or fraudulent transaction or other regulatory action regarding a specific person or asset. diff --git a/docs/build/guides/transactions/create-account.mdx b/docs/build/guides/transactions/create-account.mdx index aacf65ca8e..f7af4d5d8b 100644 --- a/docs/build/guides/transactions/create-account.mdx +++ b/docs/build/guides/transactions/create-account.mdx @@ -6,9 +6,6 @@ description: Learn about creating Stellar accounts, keypairs, funding, and accou # Create an Account -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - _Before we get started with working with Stellar in code, consider going through the following examples using the [Stellar Lab](https://lab.stellar.org). The lab allows you to create accounts, fund accounts on the Stellar test network, build transactions, run any operation, and inspect responses from Horizon via the Endpoint Explorer._ [Accounts](../../../learn/fundamentals/stellar-data-structures/accounts.mdx) are a fundamental building block of Stellar: they hold all your balances, allow you to send and receive payments, and let you place offers to buy and sell assets. Since pretty much everything on Stellar is in some way tied to an account, the first thing you generally need to do when you start developing is create one. This beginner-level tutorial walks through the three building blocks you'll need: [generating keys](#create-a-keypair), [funding an account](#create-an-account), and [fetching balances](#fetch-balances). @@ -279,11 +276,11 @@ import ( "strings" "time" - "github.com/stellar/go/amount" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/amount" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" + "github.com/stellar/go-stellar-sdk/xdr" "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" @@ -624,6 +621,96 @@ public final class main { } ``` +```rust +use std::{cell::RefCell, rc::Rc, time::Duration}; + +use soroban_client::{ + account::{Account, AccountBehavior}, + asset::{Asset, AssetBehavior}, + keypair::{Keypair, KeypairBehavior}, + network::{NetworkPassphrase, Networks}, + operation::{self, Operation}, + transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, + xdr, Options, Server, +}; + +const TESTNET_USDC_ISSUER: &str = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5"; + +#[tokio::main] +pub async fn main() -> Result<(), Box> { + let server_url = "https://soroban-testnet.stellar.org"; + let server = Server::new(server_url, Options::default()).expect("Cannot create server"); + + // + // Generate keypairs + // + let parent = Keypair::random()?; + println!("Secret: {}", parent.secret_key()?); + println!("Public: {}", parent.public_key()); + + // + // Fund a new account via friendbot + // + let account_data = server.request_airdrop(&parent.public_key()).await?; + println!("SUCCESS! You have a new account:\n{account_data:?}"); + + let child = Keypair::random()?; + let mut parent_account = + Account::new(&parent.public_key(), &account_data.sequence_number()).unwrap(); + + // + // Fund a new account via CreateAccount operation + // + let mut builder = TransactionBuilder::new(&mut parent_account, Networks::testnet(), None); + builder.fee(1000u32); + builder.add_operation( + Operation::new() + .create_account(&child.public_key(), operation::ONE * 5) + .unwrap(), + ); + + let mut tx = builder.build(); + tx.sign(&[parent]); + + let response = server.send_transaction(tx).await?; + let hash = response.hash; + println!("Tx hash: {}", hash); + + // + // Polling for transaction completion + // + server + .wait_transaction(&hash, Duration::from_secs(15)) + .map_err(|_| "Failed to create account") + .await?; + + // + // Fetch native and USDC balances for account + // + let account_id = child.xdr_account_id(); + let ledger_key = xdr::LedgerKey::Account(xdr::LedgerKeyAccount { account_id }); + let response = server.get_ledger_entries(vec![ledger_key]).await?; + if let xdr::LedgerEntryData::Account(account) = response.entries.unwrap()[0].to_data() { + // Convert the balance from stroops + let balance = account.balance / operation::ONE; + println!("XLM: {balance}"); + } + + let account_id = child.xdr_account_id(); + let asset = Asset::new("USDC", Some(TESTNET_USDC_ISSUER))?.into(); + let ledger_key = xdr::LedgerKey::Trustline(xdr::LedgerKeyTrustLine { account_id, asset }); + let response = server.get_ledger_entries(vec![ledger_key]).await?; + let entries = response.entries.unwrap_or_default(); + let usdc_balance = match entries.first().map(|e| e.to_data()) { + Some(xdr::LedgerEntryData::Trustline(t)) => t.balance, + _ => 0, + }; + println!("USDC trustline balance (raw): {}", usdc_balance); + + Ok(()) +} +``` + Now that you’ve got an account and check its asset balances, you can [start sending and receiving payments](send-and-receive-payments.mdx), or, if you're ready to hunker down, you can skip ahead and [build a wallet](../../apps/wallet/overview.mdx) or [issue a Stellar asset](../../../tokens/anatomy-of-an-asset.mdx). diff --git a/docs/build/guides/transactions/fee-bump-transactions.mdx b/docs/build/guides/transactions/fee-bump-transactions.mdx index be067cda0a..c891bfb81b 100644 --- a/docs/build/guides/transactions/fee-bump-transactions.mdx +++ b/docs/build/guides/transactions/fee-bump-transactions.mdx @@ -4,8 +4,6 @@ description: Use fee-bump transactions to pay for transaction fees on behalf of sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Fee-bump transactions were introduced in [CAP-0015](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0015.md) and enable an account to pay the transaction fees for an existing transaction without having to re-sign the transaction or manage sequence numbers. A fee-bump transaction is made of two parts: @@ -13,6 +11,8 @@ A fee-bump transaction is made of two parts: 1. An inner transaction envelope with its signature(s) 2. An outer transaction envelope with the fee-bump transaction and fee account signature +![Fee-bump transaction structure](/assets/guides/fee-bump-transaction.png) + ## Common use cases You may want to consider using fee bumps when: diff --git a/docs/build/guides/transactions/install-wasm-bytecode.mdx b/docs/build/guides/transactions/install-wasm-bytecode.mdx deleted file mode 100644 index d9e6c126a2..0000000000 --- a/docs/build/guides/transactions/install-wasm-bytecode.mdx +++ /dev/null @@ -1,301 +0,0 @@ ---- -title: Install WebAssembly (Wasm) bytecode using code -description: Install the Wasm of the contract using js-stellar-sdk. ---- - - - Install WebAssembly (Wasm) bytecode using code - - - - - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -# Install WebAssembly (Wasm) bytecode using code - -This process uploads the contract code to the Stellar Testnet in a transaction, the uploaded Wasm blob is a [contract source](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#contract-source), which can be thought of as a 'class' of a contract. Multiple [instances of a contract can be deployed](../conventions/deploy-contract.mdx) which share the same source, but have their own state. - -## Prerequisites - -Before you begin, ensure you have the following installed to compile a smart contract: - -1. [Rust](https://www.rust-lang.org/) and Cargo (for compiling smart contracts) -2. The [Stellar CLI](https://github.com/stellar/stellar-cli) - -## Initialize and build a sample Rust contract - -```bash -stellar contract init hello-world -cd hello-world - -# use rust compiler to compile Rust project into a WebAssembly (Wasm) dynamic library (cdylib). -stellar contract build -# cargo rustc --manifest-path=contracts/hello_world/Cargo.toml --crate-type=cdylib --target=wasm32v1-none --release -``` - -We are initializing the default `hello_world` contract in [soroban_examples](https://github.com/stellar/soroban-examples) to the directory `hello-world`. You may use the `-w` option to create with another example like `account`. - -After building the contract for release, the generated .wasm file is at the path `hello-word/target/wasm32v1-none/release/hello_world.wasm` - -## Upload Wasm to the Stellar blockchain - -We can use one of the [SDKs](https://developers.stellar.org/docs/tools/sdks/library), install necessary dependencies for your chosen programming language: - -- JavaScript SDK: [Node.js](https://nodejs.org/en) and npm -- Python SDK: [pip](https://pip.pypa.io/en/stable/installation/) - -Create a new directory for your project and navigate into it: - -```bash -mkdir install-wasm -cd install-wasm -``` - -### Running the install script - -Different programming languages can be used to upload the `.wasm` file, its SHA256 hash is used for deploying the contract. - - - - -This guide will walk you through installing the Wasm of the contract using the JavaScript SDK: [js-stellar-sdk](https://github.com/stellar/js-stellar-sdk). - -Create a new Node.js project with a JavaScript file, and install necessary dependencies: - -```bash -touch index.js -npm init es6 -y -npm install @stellar/stellar-sdk fs -``` - -Run the script with `node index.js`, it reads the Wasm file, gets account details, and uploads the contract in a transaction: - -```javascript -// Import necessary modules in your JavaScript file: -import * as StellarSDK from "@stellar/stellar-sdk"; -import fs from "fs"; - -async function uploadWasm(filePath) { - // reads the compiled Wasm file to buffer - const bytecode = fs.readFileSync(filePath); - - // retrieves account details from the network - const account = await server.getAccount(sourceKeypair.publicKey()); - - // installs the bytecode with a `uploadContractWasm` Stellar operation wrapped in a transaction sent to the network - const operation = StellarSDK.Operation.uploadContractWasm({ wasm: bytecode }); - return await buildAndSendTransaction(account, operation); -} - -// constructs a transaction, signs it, and submits it to the network, handling any necessary retries for transaction confirmation. -async function buildAndSendTransaction(account, operations) { - const transaction = new StellarSDK.TransactionBuilder(account, { - fee: StellarSDK.BASE_FEE, - networkPassphrase: StellarSDK.Networks.TESTNET, - }) - .addOperation(operations) - .setTimeout(30) - .build(); - - const tx = await server.prepareTransaction(transaction); - tx.sign(sourceKeypair); - - console.log("Submitting transaction..."); - let response = await server.sendTransaction(tx); - const hash = response.hash; - console.log(`Transaction hash: ${hash}`); - console.log("Awaiting confirmation..."); - - while (true) { - response = await server.getTransaction(hash); - if (response.status !== "NOT_FOUND") { - break; - } - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - - if (response.status === "SUCCESS") { - console.log("Transaction successful."); - return response; - } else { - console.log("Transaction failed."); - throw new Error("Transaction failed"); - } -} - -// Upload contract to the testnet -const server = new StellarSDK.rpc.Server( - "https://soroban-testnet.stellar.org:443", -); -// Replace `Your_Secret_Key` -const sourceKeypair = StellarSDK.Keypair.fromSecret("Your_Secret_Key"); -// Adjust this path as necessary -const wasmFilePath = "../target/wasm32v1-none/release/hello_world.wasm"; - -try { - let uploadResponse = await uploadWasm(wasmFilePath); - const byteArray = uploadResponse.returnValue.bytes(); - const wasmHash = byteArray.toString("hex"); - console.log(`Wasm hash: ${wasmHash}`); -} catch (error) { - console.error(error); -} -``` - - - -This guide will walk you through installing the Wasm of the contract using the Python SDK: [py-stellar-base](https://stellar-sdk.readthedocs.io/en/soroban/). - -Create a new Python script, and install the necessary dependencies: - -```bash -touch install.py -pip install stellar-sdk -``` - -Run the script with `python3 install.py`, it reads the Wasm file, gets account details, and uploads the contract in a transaction: - -```py -import asyncio -import time -from stellar_sdk import Keypair, Network, SorobanServer, TransactionBuilder, xdr as stellar_xdr -from stellar_sdk.exceptions import PrepareTransactionException -from stellar_sdk.soroban_rpc import GetTransactionStatus -import hashlib - - -def print_wasm_hash(wasm_bytes): - # Create a SHA256 hash object - sha256_hash = hashlib.sha256() - - # Update the hash object with the WASM bytes - sha256_hash.update(wasm_bytes) - - # Get the digest and convert it to a stellar_sdk.xdr.Hash object - hash_bytes = sha256_hash.digest() - xdr_hash = stellar_xdr.Hash(hash_bytes) - hash_hex_str = xdr_hash.hash.hex() - print(f"Wasm Hash: {hash_hex_str}") - - -async def upload_wasm(file_path): - # Read the compiled Wasm file - with open(file_path, 'rb') as file: - wasm_bytes = file.read() - - # Retrieve account details from the network - account = server.load_account(source_keypair.public_key) - - # print wasm hash for later deployment - print_wasm_hash(wasm_bytes) - - # Install the bytes with an 'uploadContractWasm' Stellar operation - return await build_and_send_transaction(account, wasm_bytes) - - -async def build_and_send_transaction(account, bytes): - transaction = ( - TransactionBuilder( - source_account=account, - network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE, - ) - .append_upload_contract_wasm_op(bytes) - .set_timeout(30) - .build() - ) - - print("Preparing transaction...") - try: - tx = server.prepare_transaction(transaction) - except PrepareTransactionException as e: - print(f"Got exception: {e}") - return None - - tx.sign(source_keypair) - - print("Submitting transaction...") - response = server.send_transaction(tx) - hash = response.hash - print(f"Transaction hash: {hash}") - print("Awaiting confirmation...") - - while True: - response = server.get_transaction(hash) - if response.status != GetTransactionStatus.NOT_FOUND: - break - time.sleep(1) - - if response.status == GetTransactionStatus.SUCCESS: - print("Transaction successful.") - return response - else: - print("Transaction failed.") - raise Exception("Transaction failed") - -# Upload contract to the testnet -server = SorobanServer("https://soroban-testnet.stellar.org:443") -# Replace 'Your_Secret_Key' with your actual secret key -source_keypair = Keypair.from_secret("Your_Secret_Key") -# Adjust this path as necessary -wasm_file_path = "../target/wasm32v1-none/release/hello_world.wasm" - - -async def main(): - try: - await upload_wasm(wasm_file_path) - except Exception as error: - print(f"Error: {error}") - -# Run the main function -asyncio.run(main()) -``` - - - - -Replace `"Your_Secret_Key"` with your actual secret key. - -```bash -stellar keys generate --global hello --network testnet -stellar keys show hello -``` - -The Stellar CLI can be used to generate identities, e.g. `hello`, and show its secret key. - -:::tip - -Ensure that you handle secret and private keys securely in production environments and never expose them in your code repositories. - -::: - -```bash -Submitting transaction... -Transaction hash: cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f -Awaiting confirmation... -Transaction successful. -Wasm hash: 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db -``` - -The returned upload transaction hash can be viewed with online tools: [stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f](https://stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f) - -[Uploaded contracts are stored in ContractCodeEntry ledger entries.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#uploading-wasm-sources-using-invokehostfunctionop) These entries are keyed by the hash of the Wasm used to upload them. - -You may use the Wasm hash for deployment with the Stellar CLI: - -```bash -stellar contract deploy \ - --source-account hello \ - --network testnet \ - --wasm-hash 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db -# CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW -``` - -View the deployed contract using the returned identifier with online tools: [stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW](https://stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW) diff --git a/docs/build/guides/transactions/invoke-contract-tx-sdk.mdx b/docs/build/guides/transactions/invoke-contract-tx-sdk.mdx index 990555b3c3..5662fa1b27 100644 --- a/docs/build/guides/transactions/invoke-contract-tx-sdk.mdx +++ b/docs/build/guides/transactions/invoke-contract-tx-sdk.mdx @@ -366,7 +366,7 @@ stellar contract deploy --wasm ./target/wasm32v1-none/release/soroban_auth_contr This will return a contract ID, in the following example we will use `CBU3OHKZ2BHOHK5VMG3HBWIW3PBQHZLNMHNJUGM23W5NBFA75JMMWAVT`. ```rust -use std::{cell::RefCell, rc::Rc, time::Duration}; +use std::time::Duration; use soroban_client::{ account::{Account, AccountBehavior}, @@ -374,9 +374,7 @@ use soroban_client::{ contract::{ContractBehavior, Contracts}, keypair::{Keypair, KeypairBehavior}, network::{NetworkPassphrase, Networks}, - soroban_rpc::{ - GetTransactionResponse, SendTransactionResponse, SendTransactionStatus, TransactionStatus, - }, + soroban_rpc::TransactionStatus, transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, Options, Server, }; @@ -384,7 +382,7 @@ use soroban_client::{ #[tokio::main] pub async fn main() -> Result<(), Box> { let server_url = "https://soroban-testnet.stellar.org"; - let server = soroban_client::Server::new(server_url, Options::default())?; + let server = Server::new(server_url, Options::default())?; let source_keypair = Keypair::random()?; let source_public_key = &source_keypair.public_key(); @@ -392,15 +390,12 @@ pub async fn main() -> Result<(), Box> { // Get account information from server let account_data = server.request_airdrop(source_public_key).await?; - let source_account = Rc::new(RefCell::new(Account::new( - source_public_key, - &account_data.sequence_number(), - )?)); + let mut source_account = Account::new(source_public_key, &account_data.sequence_number())?; // Calling the increment method of the contract let contract_addr = "CBU3OHKZ2BHOHK5VMG3HBWIW3PBQHZLNMHNJUGM23W5NBFA75JMMWAVT"; let contract = Contracts::new(contract_addr).unwrap(); - let tx = TransactionBuilder::new(source_account, Networks::testnet(), None) + let tx = TransactionBuilder::new(&mut source_account, Networks::testnet(), None) .fee(1000u32) .add_operation(contract.call( "increment", @@ -430,67 +425,24 @@ pub async fn main() -> Result<(), Box> { let hash = &response.hash; println!(">> Tx hash: {hash}"); - let counter: u32 = if let Some(tx_result) = wait_success(&server, response).await { - // On success we can extract the returned value - let (_meta, ret_val) = tx_result.to_result_meta().expect("No result meta"); - ret_val - .expect("None returned value") - .try_into() - .expect("Return value is not u32") - } else { - return Err("Failed to create contract".into()); + let counter: u32 = match server.wait_transaction(hash, Duration::from_secs(15)).await { + Ok(tx_result) if tx_result.status == TransactionStatus::Success => { + // On success we can extract the returned value + let (_meta, ret_val) = tx_result.to_result_meta().expect("No result meta"); + ret_val + .expect("None returned value") + .try_into() + .expect("Return value is not u32") + } + _ => { + return Err("Failed to create contract".into()); + } }; println!(">> Counter: {counter}",); println!(); Ok(()) } - -// Polling the `get_transaction` until the transaction is found in Success or Failed -async fn wait_success( - server: &Server, - response: SendTransactionResponse, -) -> Option { - if response.status != SendTransactionStatus::Error { - let mut count = 0; - loop { - let response = server.get_transaction(&response.hash).await; - if let Ok(tx_result) = response { - match tx_result.status { - TransactionStatus::Success => { - if let Some(ledger) = tx_result.ledger { - println!(">> Confirmed in ledger: {}", ledger); - } - return Some(tx_result); - } - TransactionStatus::NotFound => { - count += 1; - - if count > 6 { - println!( - ">> Waiting for transaction confirmation... Latest ledger: {}", - tx_result.latest_ledger - ); - } - - tokio::time::sleep(Duration::from_secs(1)).await; - } - TransactionStatus::Failed => { - if let Some(result) = tx_result.to_result() { - eprintln!("Transaction failed with result: {:?}", result); - } else { - eprintln!("Transaction failed without result XDR"); - } - return None; - } - } - } else { - eprintln!("! Error getting transaction status: {:?}", response); - } - } - } - None -} ``` diff --git a/docs/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx b/docs/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx index 0a9918c478..53aeebcdd9 100644 --- a/docs/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx +++ b/docs/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx @@ -4,8 +4,6 @@ description: Use muxed accounts to differentiate between individual accounts in sidebar_position: 60 --- -import { CodeExample } from "@site/src/components/CodeExample"; - When building an application or service on Stellar, one of the first things you have to decide is how to handle user accounts. You can create a Stellar account for each user, but most custodial services, including cryptocurrency exchanges, choose to use a single pooled Stellar account to handle transactions on behalf of their users. In these cases, the muxed account feature can map transactions to individual accounts via an internal customer database. diff --git a/docs/build/guides/transactions/send-and-receive-c-accounts.mdx b/docs/build/guides/transactions/send-and-receive-c-accounts.mdx new file mode 100644 index 0000000000..8ddd8a108a --- /dev/null +++ b/docs/build/guides/transactions/send-and-receive-c-accounts.mdx @@ -0,0 +1,218 @@ +--- +title: "Send to and receive payments from Contract Accounts" +description: "Learn to send payments to and receive payments from Contract Accounts on the Stellar network." +sidebar_position: 7 +--- + +import Details from "@theme/Details"; + +Payments between Contract Accounts (C addresses) and Classic Accounts (G addresses) are supported on a protocol level, but there are differences in the implementations that are required to support them. This guide will cover implementations for applications that use classic G accounts and want to support transacting with Contract Accounts. + +## Receiving payments from Contract Accounts (C to G) + +If a sender is using a Contract Account, and sending an [SAC token](../../../tokens/stellar-asset-contract.mdx) (such as XLM, USDC, etc.), the transaction will be received by the G account normally since it is supported on a protocol level. + +### Receiving payments from Contract Accounts requiring a memo + +Entities such as exchanges and asset issuers usually use omnibus accounts, using a shared receiving address and a unique identifier memo like: + +- **Account:** `GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7` +- **Memo ID:** `123456789` + +Transactions involving Contract Accounts make use of contract invocations to execute a 'transfer' function on the asset contract. This kind of transaction doesn't allow for the 'memo' field to be used, so instead, the sending app will encode it in the address, generating a unique muxed address that includes the receiving account (GBLVHX…) and provided id in the muxed id field (123456789). + +To enable support for deposits coming from Contract Accounts, nothing needs to change in the information displayed to customers or the deposit accounts used by the exchange. Wallets will still use the G account and memo provided to send a payment to the exchange's G account including the memo with the unique ID. + +That's the main difference between receiving from customers using G or Contract Accounts: instead of looking at the memo field to identify the individual account, you'll look at the muxed ID. Everything else stays the same. + +#### Example using Horizon + +**Receiving from a G address** + +Using Horizon's `accounts/{acc_id}/transactions` endpoint ([example](https://horizon-testnet.stellar.org/accounts/GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7/transactions)) + +The memo field will be present in the response. + +**Example response from a G address:** + +```json +{ + "memo": "123456789", + "memo_bytes": "MTIzNDU2Nzg5", + "source_account": "GCNG5JXJY3LNRMXCX23RIGKTURQACTSV5LL6NKL535BYRGOGWUX6J45Y", + "memo_type": "text" +} +``` + +**Receiving from a Contract Account** + +Using Horizon's `accounts/{acc_id}/payments` endpoint ([example](https://horizon-testnet.stellar.org/accounts/GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7/payments)) + +After the transaction is processed, this payment detail will be present in the '/payments' endpoint, under a section called 'asset_balance_changes', which will present the encoded ID and the underlying G-address separately. + +It is important to note the 'asset_balance_changes' section only supports Stellar assets and transactions that make use of the `transfer` function in the [Stellar Asset Contract (SAC)](../../../tokens/stellar-asset-contract.mdx). + +**Example response from a Contract Account:** + +```json +{ + "asset_balance_changes": [ + { + "asset_type": "native", + "type": "transfer", + "from": "CBP4GFAK4GDKCMVLNIHRZPEAPT7CFYTBKICOXCVMP2FEN3QFKCRZ27KS", + "to": "GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7", + "amount": "1.0000000", + "destination_muxed_id": "123456789" + } + ] +} +``` + +For a detailed code example, see the section 'Monitoring Payments -> Using the Horizon API' of [this repository's examples](https://github.com/fazzatti/c-address-payment-examples#monitoring-payments). + +#### Example using RPC + +Since the release of the Unified Asset Events ([CAP-67](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md)) on Protocol 23, a number of transactions involving Stellar assets now emit standardized events that can be ingested by both the Horizon API and the Stellar RPC. If funds are sent through a 'payment' operation or by invoking the 'transfer' function of the asset contract, the same kind of event is emitted for both cases. + +To monitor these payments, the method '[getEvents](../../../data/apis/rpc/api-reference/methods/getEvents.mdx)' of the Stellar RPC is used to stream events emitted by the Stellar Asset Contract. A filter can be used to specify the target asset (SAC contract ID) and accounts. + +**From a G address** + +When the receiver is a normal G address, the value portion of the event is just the amount received. + +```json +{ + "inSuccessfulContractCall": true, + "topicJson": [ + { + "symbol": "transfer" + }, + { + "address": "GD6MYLASTCZ3H4UFLH2YSIASHJNBFUCKC5YHGU44VCH2BGHN3WJQX6LG" + }, + { + "address": "GA4PDUF3BLBSK47UTNY44AIZAP5EPHW2UIJRKB5HN76HHC55IWKSIHFD" + }, + { + "string": "native" + } + ], + "valueJson": { + "i128": "10000000" + } +} +``` + +**From a Contract Account** + +When the transaction is sent using a muxed account, the value portion of the event is broken down into an object containing the amount and the unique ID encoded in the address. + +```json +{ + "inSuccessfulContractCall": true, + "topicJson": [ + { + "symbol": "transfer" + }, + { + "address": "GD6MYLASTCZ3H4UFLH2YSIASHJNBFUCKC5YHGU44VCH2BGHN3WJQX6LG" + }, + { + "address": "GA4PDUF3BLBSK47UTNY44AIZAP5EPHW2UIJRKB5HN76HHC55IWKSIHFD" + }, + { + "string": "native" + } + ], + "valueJson": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "10000000" + } + }, + { + "key": { + "symbol": "to_muxed_id" + }, + "val": { + "u64": "123456789" + } + } + ] + } +} +``` + +For a detailed code example, see the section ‘_Monitoring Payments \-\> Using the Stellar RPC_’ of [this repository's examples](https://github.com/fazzatti/c-address-payment-examples#using-the-stellar-rpc). + +### Sending payments from Contract Accounts to a recipient that requires a memo + +If a sender is using a Contract Account, and sending an [SAC token](../../../tokens/stellar-asset-contract.mdx) (such as XLM, USDC, etc.) to a recipient that requires a memo, (an exchange, for example) it should create a muxed address that includes the receiving account (GBLVHX…) and provided memo id in the muxed id field (123456789). In the user inteface, the resulting memo address doesn't need to be surfaced to the user, it should be used directly in the transaction. + +If the receiving party already provides an M address, it should be used directly, without requiring a memo field. Since this is the value provided by the user, it should be used in the transaction and displayed to the user. + +## Sending payments to Contract Accounts (G to C) + +### Sending a ‘transfer’ via Stellar RPC + +This approach is simpler but requires the use of an RPC and involves a slightly different transaction workflow than a traditional native operation. For a detailed code example, see the section ‘_Sending Payments through the SAC \-\> Using the Stellar RPC_’ of [this repository's examples](https://github.com/fazzatti/c-address-payment-examples#sending-payments-through-the-sac). + +**Assembling the operation and transaction** + +To perform a ‘transfer’ through an SAC, it is necessary to assemble a ‘_InvokeHostFunctionOp_’ operation with similar arguments as a ‘payment’ operation along with the contract identifier and target function name(‘transfer’). + +This can be seen in detail in the ‘[assembleTransferOperation](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/assemble-transfer-operation.ts)’ function of the demo. While the example demonstrates this process in greater detail, it is possible to use the [js-stellar-sdk](https://github.com/stellar/js-stellar-sdk) and its Contract client in a simpler manner. + +The transaction is then built by adding this operation and configuring the additional parameters as any other ‘payment’ transaction. + +**Simulating the transaction** + +After building the transaction, the RPC method for ‘simulateTransaction’ is used to simulate an execution of this transaction against the current state of the network, identify if it is expected to succeed and, also provide a number of additional parameters about this execution. + +This process is fully handled by the SDK in a very simple step by using the ‘_prepareTransaction_’ function of the RPC server client. It automatically simulates and provides an updated transaction object. See this process in detail [in the demo](https://github.com/fazzatti/c-address-payment-examples/blob/0e1c021e5afbefd5946878d53934b62cf5a8bb68/src/core/rpc-transaction.ts#L43). + +**Signing** + +When the same account is used as the ‘sender’ of the funds and also the ‘source’ of the transaction, the signing step will be exactly the same. Once the updated transaction object is returned from the previous step, you just sign it with the source/sender account and it will be ready. + +When the ‘source’ account of the transaction differs from the ‘sender’ account, an additional signed entry will be necessary to authorize the ‘transfer’ invocation explicitly. Refer to the [Soroban Authorization Framework documentation](../../../learn/fundamentals/contract-development/authorization.mdx#soroban-authorization-framework) for further details. + +**Sending the Transaction for processing** + +When a transaction is submitted for processing through the Stellar RPC, differently from the Horizon API, it will resolve immediately confirming its submission but not the processing. It is necessary to poll the transaction status for the next moment until you get a confirmation that it was successfully processed or a status update on a potential failure. + +### Sending a ‘transfer’ via Horizon API + +When sending a ‘transfer’ via the Horizon API, this approach introduces a few extra steps when compared to the use of an RPC. For a detailed code example, see the section ‘_Sending Payments through the SAC \-\> Using the Horizon API_’ of [this repository's examples](https://github.com/fazzatti/c-address-payment-examples#using-the-horizon-api-1). + +**Assembling the operation and transaction** + +This process is mostly the same as described in the previous section ‘[Sending a ‘transfer’ via Stellar RPC](#sending-a-transfer-via-stellar-rpc)’ with some slight modifications. Since the Horizon API **does not** provide an endpoint to simulate a transaction execution, this means that when the transaction is assembled we need to ensure it also contains: + +- The **Soroban authorization entries** that fulfill the smart contracts authorization requirements. +- The **Soroban data** object, detailing the footprint, resources, and resource fee expected for this contract invocation. + +These are normally populated automatically based on the output of the simulation and by simply signing and adding the authorization entries generated by the RPC. Here, we need to include these manually. + +The **auth entries** can be easily predicted and assembled based on the configuration. Assuming the ‘sender’ account is the same as the ‘source’ account of the transaction, a source-account credential needs to be added to the operation, indicating this invocation will be used the same envelope signature to authorize the ‘transfer’. See this process in detail in the [‘assembleSourceAuthEntry’ function](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/assemble-source-auth.ts) of the demo. + +Once the auth entries are assembled and signed(when not a ‘source-account’ entry), they need to be included in the operation, in the ‘auth’ parameter. + +For the **Soroban Data** on the other hand, the process can be a bit harder to execute manually. Considering all SAC contracts use the same native implementation, we can expect all ‘transfer’ invocations to be very similar. + +The amount of resources consumed shouldn't vary much with the exception of some edge cases such as the transaction involving archived entries or a custom authorization for a smart wallet as the sender. See this process of manually assembling the Soroban Data in [the function ’getSorobanData’](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/get-sorobandata.ts) of the demo. + +Once the **Soroban Data** is assembled, it is included in the **Transaction Builder.** + +**Signing** + +After building the transaction, assuming the ‘auth entries’ from the previous step were configured correctly, the transaction can be signed normally by the source account. + +**Sending the Transaction for processing** + +This step remains the same as any transaction submitted through the Horizon API. diff --git a/docs/build/guides/transactions/send-and-receive-payments.mdx b/docs/build/guides/transactions/send-and-receive-payments.mdx index 0dfa85a04d..ac1be919da 100644 --- a/docs/build/guides/transactions/send-and-receive-payments.mdx +++ b/docs/build/guides/transactions/send-and-receive-payments.mdx @@ -4,8 +4,6 @@ description: "Learn to send payments and watch for received payments on the Stel sidebar_position: 7 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; import Details from "@theme/Details"; ## Payments Overview @@ -25,11 +23,11 @@ The approach you should take depends on the use case: To learn more about the differences between Stellar assets and contract tokens, see the [Tokens](../../../tokens/README.mdx) overview. - +:::info In the following code samples, proper error checking is omitted for brevity. However, you should _always_ validate your results, as there are many ways that requests can fail. - +::: ## Using Payments Example @@ -312,9 +310,9 @@ import ( "strings" "time" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" sdk "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" ) @@ -739,8 +737,8 @@ import ( "strings" "time" - "github.com/stellar/go/strkey" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/strkey" + "github.com/stellar/go-stellar-sdk/xdr" sdk "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" ) @@ -1086,7 +1084,7 @@ java -cp ".:$JAR_FILE" SendPaymentExample mkdir -p payments_example/sender cd payments_example go mod init payments_example -go get github.com/stellar/go@latest +go get github.com/stellar/go-stellar-sdk@latest go get github.com/stellar/stellar-rpc@latest # save sender.go code to sender/sender.go file go build -o sender sender/sender.go diff --git a/docs/build/guides/transactions/signing-soroban-invocations.mdx b/docs/build/guides/transactions/signing-soroban-invocations.mdx new file mode 100644 index 0000000000..8097706287 --- /dev/null +++ b/docs/build/guides/transactions/signing-soroban-invocations.mdx @@ -0,0 +1,462 @@ +--- +title: "Signing Soroban contract invocations" +description: "Learn two methods to sign Soroban smart contract invocations: full transaction signing for G-accounts and auth-entry signing for G or C-accounts with sponsored fees." +sidebar_position: 15 +--- + +When invoking Soroban smart contracts that require authorization, there are two distinct signing approaches. Understanding when to use each method is essential for building powerful applications that interact with smart contracts. + +## Overview + +| Method | Who can Sign? | Best For | +| --- | --- | --- | +| Transaction signing | G-accounts | G-accounts who fully trust and know how to thoroughly verify the authenticity and security of the transactions.
📌 **Note:** This is the only method supported by Stellar Classic. | +| Auth-entry signing | G-accounts and C-accounts | Smart wallets, multi-party auth, stricter authorization control, relayed and/or sponsored transactions | + +In both methods, the sequence number is "spent" by the transaction source account. + +## Method 1: Transaction signing + +Full transaction signing is the simpler approach where the same account acts as both the transaction source (paying fees and consuming sequence) and the authorizer of the contract invocation. This method works **only with G-accounts** (Stellar accounts starting with `G`). + +### When to use + +- The calling account owns the keys and can sign the full transaction +- The caller is willing to pay transaction fees, which can only be paid in XLM and by a G-account +- You want the simplest integration path +- Single-party authorization is sufficient + +### How it works + +1. **Client** builds a transaction with an `invokeHostFunction` operation +2. **Client** simulates the transaction to get resource requirements and footprint +3. **Client** signs the entire transaction envelope with the source account's keypair +4. **Client** submits the signed transaction to the network + +When the transaction source account is the same as the address being authorized, the signature on the transaction itself implicitly authorizes the invocation—no separate auth entry signature is needed. This is called "source account authorization" and uses the `sorobanCredentialsSourceAccount` credential type. + +### Code example + +```typescript +import { + BASE_FEE, + Keypair, + nativeToScVal, + Networks, + Operation, + TransactionBuilder, +} from "@stellar/stellar-sdk"; +import { Server, Api } from "@stellar/stellar-sdk/rpc"; + +const rpcUrl = "https://soroban-testnet.stellar.org"; +const server = new Server(rpcUrl); + +const sourceKeypair = Keypair.fromSecret("S..."); + +async function invokeWithFullSigning( + contractId: string, + recipientAddress: string, + amount: bigint, +): Promise { + const sourceAccount = await server.getAccount(sourceKeypair.publicKey()); + + const transaction = new TransactionBuilder(sourceAccount, { + fee: BASE_FEE, + networkPassphrase: Networks.TESTNET, + }) + .addOperation( + Operation.invokeContractFunction({ + contract: contractId, + function: "transfer", + args: [ + nativeToScVal(sourceKeypair.publicKey(), { type: "address" }), + nativeToScVal(recipientAddress, { type: "address" }), + nativeToScVal(amount, { type: "i128" }), + ], + }), + ) + .setTimeout(30) + .build(); + + // prepareTransaction simulates and assembles in one step + const preparedTx = await server.prepareTransaction(transaction); + + // Sign the transaction envelope + preparedTx.sign(sourceKeypair); + + // Submit to network + const response = await server.sendTransaction(preparedTx); + return response; +} +``` + +:::note[Source account authorization] + +For transaction signing, `prepareTransaction` handles simulation internally. Since the source account's signature on the transaction envelope implicitly authorizes the invocation, no separate auth entry signing is needed—and therefore no second simulation is required. + +::: + +### Key characteristics + +- **Sequence number**: Consumed from the source account +- **Fees**: Paid by the source account +- **Authorization**: Implicit via transaction signature (for source account credentials) +- **Limitation**: Cannot be used with C-accounts (contract accounts) + +## Method 2: Auth-entry signing + +Auth-entry signing decouples authorization from transaction submission. The authorizer signs only the specific contract invocation (an "auth entry"), while a **separate account** acts as the transaction source, paying fees and consuming its own sequence number. This method works for either G-account or C-account clients. + +### When to use + +- The end-user has a C-account (commonly a smart wallet) — Method 2 is the **only** option for C-accounts, as they cannot sign transaction envelopes. G-accounts can also use this method. +- The end-user doesn't (need to) have XLM to pay for fees +- Applications want a fine-grained control over which parts of the contract invocation (and subinvocations) are authorized by each account. +- Building smart contract protocols where the end-user doesn't submit the transaction +- Building payment protocols where the transaction source account will be defined at a later point in time + +### How it works + +1. **Client** builds the transaction using `AssembledTransaction` +2. **Client** simulates (Recording Mode) to get the authorization tree +3. **Client** signs the auth entries using `signAuthEntries` +4. **Client** optionally re-simulates (Enforcing Mode) to validate their signatures +5. **Client** sends the transaction XDR to the fee-payer +6. **Fee-payer** parses the XDR and rebuilds with its own G-account as source +7. **Fee-payer** performs security verifications 🚨 to ensure the incoming transaction does not contain any malicious code. +8. **Fee-payer** simulates (Enforcing Mode) to catch errors before paying fees +9. **Fee-payer** signs the transaction envelope and submits + +### Simulation modes: Recording vs Enforcing + +Transaction simulation has two modes that are critical to understand: + +| Mode | When used | What it does | +| --- | --- | --- | +| **Recording Mode** | First simulation, before signing | Returns the auth entries that need signatures. Skips `require_auth` validation. | +| **Enforcing Mode** | Second simulation, after signing | Validates signatures and executes `__check_auth`. Returns accurate resource estimates. | + +:::warning Enforcing Mode simulation is required for submission + +The first simulation (Recording Mode) **does not execute** the `require_auth` checks — it only records which auth entries are needed. This means the resource estimates from the first simulation are **incomplete**. + +The **fee-payer** must simulate in Enforcing Mode, and the **client** is strongly recommended to simulate as well to ensure fees and auth checks are correct when the contract enforces signatures: + +| Who | Why | +| --- | --- | +| **Client** | Validates signatures before sending to fee-payer and ensures auth enforcement succeeds before it leaves the client. | +| **Fee-payer** | Verifies the transaction will succeed before submitting and ensures auth enforcement will pass before paying fees. | + +Running Enforcing Mode simulation provides two critical benefits: + +- **Validates signatures and execution** — Catches auth errors and contract failures before submission. Failed simulations cost nothing; failed submissions cost real fees. +- **Returns accurate resource estimates** — Recording Mode underestimates fees because it skips auth validation. + +See [Transaction Simulation - Authorization](../../../learn/fundamentals/contract-development/contract-interactions/transaction-simulation.mdx#authorization) for more details. + +::: + +### Auth entry structure + +An auth entry signature authorizes a specific invocation tree and includes: + +- **Address**: The account authorizing the invocation +- **Signature expiration ledger**: When the signature becomes invalid (ledger-based, not timestamp) +- **Nonce**: A unique value for replay protection +- **Signature**: Signs the SHA-256 hash of the `ENVELOPE_TYPE_SOROBAN_AUTHORIZATION` preimage + +:::note Signature expiration + +Auth entry signatures expire based on ledger numbers, not timestamps. A typical offset is between 12 and 60 ledgers (approximately 1-5 minutes). The signature is valid until and including the `signatureExpirationLedger`, but invalid at `signatureExpirationLedger + 1`. + +Keep expiration windows as small as viable – shorter windows are safer and result in lower transaction costs. + +::: + +### Code example: Using `AssembledTransaction` + +This example shows a token transfer where the sender (client) uses `AssembledTransaction` to build and sign auth entries, then sends the transaction XDR to a fee-payer for submission. + +#### Step 1: Client builds and signs auth entries + +```typescript +import { Keypair, Networks, nativeToScVal } from "@stellar/stellar-sdk"; +import { + AssembledTransaction, + basicNodeSigner, +} from "@stellar/stellar-sdk/contract"; +import { Api } from "@stellar/stellar-sdk/rpc"; + +const rpcUrl = "https://soroban-testnet.stellar.org"; +const networkPassphrase = Networks.TESTNET; + +// Client's keypair (authorizes the transfer) +const senderKeypair = Keypair.fromSecret("S..."); + +async function buildSignedAuthEntries( + tokenContractId: string, + recipientAddress: string, + amount: bigint, +): Promise { + // Build transaction using AssembledTransaction + const tx = await AssembledTransaction.build({ + contractId: tokenContractId, + method: "transfer", + args: [ + nativeToScVal(senderKeypair.publicKey(), { type: "address" }), + nativeToScVal(recipientAddress, { type: "address" }), + nativeToScVal(amount, { type: "i128" }), + ], + networkPassphrase, + rpcUrl, + parseResultXdr: (result) => result, + }); + + // Check simulation result (Recording Mode) + if (Api.isSimulationError(tx.simulation)) { + throw new Error(`Simulation failed: ${tx.simulation.error}`); + } + + // Check who needs to sign + const missingSigners = tx.needsNonInvokerSigningBy(); + if (!missingSigners.includes(senderKeypair.publicKey())) { + throw new Error("Sender not in required signers"); + } + + // Sign auth entries using basicNodeSigner + const signer = basicNodeSigner(senderKeypair, networkPassphrase); + await tx.signAuthEntries({ + address: senderKeypair.publicKey(), + signAuthEntry: signer.signAuthEntry, + expiration: tx.simulation.latestLedger + 60, // ~5 minutes + }); + + // Re-simulate to validate signatures (📌 Enforcing Mode) + await tx.simulate(); + if (Api.isSimulationError(tx.simulation)) { + throw new Error(`Signature validation failed: ${tx.simulation.error}`); + } + + // Verify all signatures collected + if (tx.needsNonInvokerSigningBy().length > 0) { + throw new Error("Missing signatures"); + } + + // Return transaction XDR for fee-payer + return tx.built!.toXDR(); +} +``` + +#### Step 2: Fee-payer rebuilds and submits + +```typescript +import { + Keypair, + Networks, + Operation, + Transaction, + TransactionBuilder, + xdr, +} from "@stellar/stellar-sdk"; +import { Api, assembleTransaction, Server } from "@stellar/stellar-sdk/rpc"; + +const rpcUrl = "https://soroban-testnet.stellar.org"; +const networkPassphrase = Networks.TESTNET; + +const server = new Server(rpcUrl); +const feePayerKeypair = Keypair.fromSecret("S..."); + +async function submitWithSignedAuth( + transactionXdr: string, +): Promise { + // Parse client's transaction to extract operation and Soroban data + const clientTx = new Transaction(transactionXdr, networkPassphrase); + const txEnvelope = xdr.TransactionEnvelope.fromXDR(transactionXdr, "base64"); + const sorobanData = txEnvelope.v1()?.tx()?.ext()?.sorobanData(); + + if (!sorobanData) { + throw new Error("Missing Soroban data"); + } + + const invokeOp = clientTx.operations[0] as Operation.InvokeHostFunction; + + // 🚨 SECURITY: Verify the transaction/operation source is not the fee-payer's account, and that the auth entries do not reference the fee-payer's account + + // Rebuild transaction with fee-payer as source + const feePayerAccount = await server.getAccount(feePayerKeypair.publicKey()); + + const rebuiltTx = new TransactionBuilder(feePayerAccount, { + fee: clientTx.fee, + networkPassphrase, + sorobanData, + }) + .setTimeout(30) + .addOperation( + Operation.invokeHostFunction({ + func: invokeOp.func, + auth: invokeOp.auth || [], + source: invokeOp.source, + }), + ) + .build(); + + // 📌 Simulate before submitting to catch errors without paying fees (Enforcing Mode) + const simResult = await server.simulateTransaction(rebuiltTx); + if (Api.isSimulationError(simResult)) { + throw new Error(`Fee-payer simulation failed: ${simResult.error}`); + } + + const assembledTx = assembleTransaction(rebuiltTx, simResult).build(); + + // Fee-payer signs and submits + assembledTx.sign(feePayerKeypair); + return await server.sendTransaction(assembledTx); +} +``` + +### Key characteristics + +- **Sequence number**: Consumed from the fee-payer account +- **Fees**: Paid by the fee-payer account (in XLM) +- **Client authorization**: Explicit via signed auth entries (separate from transaction signature) +- **Flexibility**: Works with both G-accounts and C-accounts (contract accounts) +- **Use case**: Sponsored transactions, relayed transactions, smart wallets, multi-party authorization, fine-grained authorization control + +### C-account (smart wallet) authorization + +C-accounts (contract accounts starting with `C`) cannot sign transaction envelopes—they can **only** authorize via auth entries. This is because C-accounts don't have traditional keypairs; their authorization logic is defined by the contract code itself (e.g., a smart wallet contract that verifies passkey signatures). + +For C-accounts: + +- The auth entry signature is produced by the contract's authentication mechanism (e.g., passkeys, multisig logic) +- A separate G-account must always act as the transaction source to pay fees +- Wallet interfaces and signing utilities provide `signAuthEntry` APIs for this purpose + +#### Signing auth entries with different methods + +**Using `basicNodeSigner` for G-accounts (Node.js/backend)** + +The `basicNodeSigner` utility creates signing functions from a keypair, providing both `signAuthEntry` and `signTransaction` methods. This is useful for backend services or testing. + +```typescript +import { Keypair } from "@stellar/stellar-sdk"; +import { basicNodeSigner } from "@stellar/stellar-sdk/contract"; + +const keypair = Keypair.fromSecret("S..."); +const networkPassphrase = "Test SDF Network ; September 2015"; + +// Create a signer that provides both auth entry and transaction signing +const signer = basicNodeSigner(keypair, networkPassphrase); + +// Sign an auth entry +const signedAuthEntry = await signer.signAuthEntry(authEntry); + +// Sign a transaction envelope +const signedTransaction = await signer.signTransaction(transactionXDR); +``` + +**Using Freighter for C-accounts (browser/wallet)** + +Wallet interfaces like [Freighter](../freighter/sign-auth-entries.mdx) provide `signAuthEntry` for C-accounts (smart wallets) where the signing logic is defined by the contract. + +```typescript +import freighterApi from "@stellar/freighter-api"; + +// Freighter's signAuthEntry returns the signed auth entry +const signedAuthEntry = await freighterApi.signAuthEntry(preimageXdr); +``` + +:::caution[C-account limitations] + +C-accounts: + +- Cannot be the transaction source account +- Cannot sign transaction envelopes +- Must rely on a G-account to pay fees and submit transactions +- Require their auth entries to be signed according to their contract logic + +::: + +## Comparison summary + +| Aspect | Transaction signing | Auth-entry signing | +| --- | --- | --- | +| **Transaction source** | Client (G-account) | Fee-payer (G-account) | +| **Sequence consumed from** | Client | Fee-payer | +| **Who signs auth entries?** | N/A (implicit via tx signature) | Client (G or C-account) | +| **Who signs tx envelope?** | Client | Fee-payer | +| **Account types supported** | G-accounts only | G and C-accounts | + +### Visual: Transaction signing + +``` +┌───────────────────────────────────────────────────┐ +│ Transaction Envelope │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ Source: Client G-account │ │ +│ │ Fees: Paid by client │ │ +│ │ ┌───────────────────────────────────────┐ │ │ +│ │ │ invokeHostFunction Operation │ │ │ +│ │ │ Auth: Source account credential │ │ │ +│ │ └───────────────────────────────────────┘ │ │ +│ └─────────────────────────────────────────────┘ │ +│ Envelope signature: Client 🔑 │ +└───────────────────────────────────────────────────┘ +``` + +### Visual: Auth-entry signing + +``` +┌───────────────────────────────────────────────────┐ +│ Transaction Envelope │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ Source: Fee-payer G-account │ │ +│ │ Fees: Paid by fee-payer │ │ +│ │ ┌───────────────────────────────────────┐ │ │ +│ │ │ invokeHostFunction Operation │ │ │ +│ │ │ Auth: Signed auth entries ◄─────────┼──┼─── Client signs 🔑 +│ │ │ (G or C-account) │ │ │ +│ │ └───────────────────────────────────────┘ │ │ +│ └─────────────────────────────────────────────┘ │ +│ Envelope signature: Fee-payer 🔑 │ +└───────────────────────────────────────────────────┘ +``` + +## Real-world use case: Sponsored transactions + +A common pattern in payment protocols is for a fee-payer to submit transactions on behalf of users: + +1. **Client** builds a transaction and simulates it (Recording Mode) +2. **Client** signs the auth entries (authorizing the payment) +3. **Client** optionally re-simulates (Enforcing Mode) to validate signatures +4. **Client** sends the signed auth entries to the fee-payer service +5. **Fee-payer** rebuilds the transaction with its own G-account as source +6. **Fee-payer** re-simulates (Enforcing Mode) to get accurate resource estimates and validate signatures +7. **Fee-payer** signs the transaction envelope and submits + +This allows the fee-payer to sponsor fees while the client retains exclusive control over authorizing their funds. + +## Note on Fee-bump transactions + +Regardless of the method, the user can still use fee bump transactions as an additional layer in order to separate the account spending their sequence number from the account paying the fees. + +More info on fee bump transactions can be found in the [Fee-bump transactions](./fee-bump-transactions.mdx) guide. + +## Common pitfalls and gotchas + +- **Using Horizon URLs**: Soroban signing requires Soroban RPC, not Horizon. Refer to [Soroban RPC Providers](../../../data/apis/rpc/providers.mdx) for the correct URL to use. +- **Forgetting to assemble**: Fee-payer flows must `assembleTransaction` after simulation to apply footprint + resource fees. +- **Missing auth on rebuilt ops**: When rebuilding, include `sorobanData` in the `invokeHostFunction` operation. +- **Wrong signer**: C-accounts cannot sign envelopes, only auth entries. +- **Stale auth expiration**: Keep `signatureExpirationLedger` short and aligned with expected submission time. + +## Further reading + +- [Transaction simulation](../../../learn/fundamentals/contract-development/contract-interactions/transaction-simulation.mdx) — Details on simulation and authorization modes +- [Multi-party auth example](../../../learn/fundamentals/contract-development/contract-interactions/transaction-simulation.mdx#example-2-multi-party-authentication) — Walkthrough of multi-party signing in simulation using full transaction signing +- [Contract authorization](../auth/contract-authorization.mdx) — How `require_auth` works in contracts +- [Sign authorization entries with Freighter](../freighter/sign-auth-entries.mdx) — Wallet integration for auth entry signing +- [Send to and receive from C-accounts](./send-and-receive-c-accounts.mdx) — Working with contract accounts +- [Fee-bump transactions](./fee-bump-transactions.mdx) — Using fee bump transactions to pay for transaction fees on behalf of another account without re-signing the transaction +- [Stellar auth example (community)](https://github.com/fazzatti/stellar-auth-example) — End-to-end auth-entry signing walkthrough +- [Stellar Asset Contract (SAC)](../tokens/stellar-asset-contract.mdx) — Background on the SAC `transfer`, used in the code examples above diff --git a/docs/build/guides/transactions/simulateTransaction-Deep-Dive.mdx b/docs/build/guides/transactions/simulateTransaction-Deep-Dive.mdx index 412f62280e..ffd3a043df 100644 --- a/docs/build/guides/transactions/simulateTransaction-Deep-Dive.mdx +++ b/docs/build/guides/transactions/simulateTransaction-Deep-Dive.mdx @@ -30,7 +30,7 @@ interface SimulateTransactionParams { } ``` -**SimulateTransactionResult** is the return result from the call. It includes [many useful things](https://developers.stellar.org/docs/data/rpc/api-reference/methods/simulateTransaction)! +**SimulateTransactionResult** is the return result from the call. It includes [many useful things](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx)! ## Things `simulateTransaction` is used for: @@ -373,11 +373,11 @@ Soroban smart contracts on Stellar use a multidimensional resource fee model, ch 5. **Events & Return Value Size**: Size of the events produced by the contract and the return value of the top-level contract function. 6. **Ledger Space Rent**: Payment for ledger entry TTL extensions and rent payments for increasing ledger entry size. -Fees are calculated based on the resource consumption declared in the transaction. Refundable fees are charged before execution and refunded based on actual usage, while non-refundable fees are calculated from CPU instructions, read bytes, write bytes, and transaction size. [Check out this document for a more in depth understanding of fees and metering.](https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering) +Fees are calculated based on the resource consumption declared in the transaction. Refundable fees are charged before execution and refunded based on actual usage, while non-refundable fees are calculated from CPU instructions, read bytes, write bytes, and transaction size. [Check out this document for a more in depth understanding of fees and metering.](../../../learn/fundamentals/fees-resource-limits-metering.mdx) ## Error Handling -The transaction simulation mechanism provides an estimation of CPU and memory consumption of a contract invocation during a transaction. It also highlights [potential errors and resource limitations](https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging/debugging-errors#1-simulate-transaction) of the invocation before actual submission. +The transaction simulation mechanism provides an estimation of CPU and memory consumption of a contract invocation during a transaction. It also highlights [potential errors and resource limitations](../../../learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx#1-transaction-simulation) of the invocation before actual submission. ## Backend Code and Workflow @@ -405,7 +405,7 @@ These functions are defined in the [`rs-soroban-env`](https://github.com/stellar For more information and examples, check out the code and other documentation: -- [openRpc Documentation](https://developers.stellar.org/network/soroban-rpc/api-reference/methods/simulateTransaction) +- [openRpc Documentation](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx) - [openRpc json Specification](https://github.com/stellar/stellar-docs/tree/main/openrpc) - [preflight.go](https://github.com/stellar/stellar-rpc/blob/release/v22.1.2/cmd/stellar-rpc/internal/preflight/preflight.go) - [Soroban Example Code](https://github.com/stellar/soroban-examples) diff --git a/docs/build/guides/transactions/sponsored-reserves.mdx b/docs/build/guides/transactions/sponsored-reserves.mdx index 64fe695cd4..bbacdfbafb 100644 --- a/docs/build/guides/transactions/sponsored-reserves.mdx +++ b/docs/build/guides/transactions/sponsored-reserves.mdx @@ -4,7 +4,6 @@ description: Use sponsored reserves to pay for base reserves on behalf of anothe sidebar_position: 50 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Details from "@theme/Details"; Sponsored reserves were introduced in [CAP-0033](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0033.md) and allow an account (sponsoring account) to pay the base reserves for another account (sponsored account). While this relationship exists, base reserve requirements that would normally accumulate on the sponsored account now accumulate on the sponsoring account. @@ -137,9 +136,9 @@ import ( "strings" "time" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" sdk "github.com/stellar/stellar-rpc/client" protocol "github.com/stellar/stellar-rpc/protocol" ) diff --git a/docs/build/guides/transactions/upload-wasm-bytecode.mdx b/docs/build/guides/transactions/upload-wasm-bytecode.mdx new file mode 100644 index 0000000000..8883523b9a --- /dev/null +++ b/docs/build/guides/transactions/upload-wasm-bytecode.mdx @@ -0,0 +1,392 @@ +--- +title: Upload WebAssembly (Wasm) bytecode using code +description: Upload the Wasm of the contract using js-stellar-sdk. +--- + + + Install WebAssembly (Wasm) bytecode using code + + + + + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Install WebAssembly (Wasm) bytecode using code + +This process uploads the contract code to the Stellar Testnet in a transaction, the uploaded Wasm blob is a [contract source](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#contract-source), which can be thought of as a 'class' of a contract. Multiple [instances of a contract can be deployed](../conventions/deploy-contract.mdx) which share the same source, but have their own state. + +## Prerequisites + +Before you begin, ensure you have the following installed to compile a smart contract: + +1. [Rust](https://www.rust-lang.org/) and Cargo (for compiling smart contracts) +2. The [Stellar CLI](https://github.com/stellar/stellar-cli) + +## Initialize and build a sample Rust contract + +```bash +stellar contract init hello-world +cd hello-world + +# use rust compiler to compile Rust project into a WebAssembly (Wasm) dynamic library (cdylib). +stellar contract build +# cargo rustc --manifest-path=contracts/hello_world/Cargo.toml --crate-type=cdylib --target=wasm32v1-none --release +``` + +We are initializing the default `hello_world` contract in [soroban_examples](https://github.com/stellar/soroban-examples) to the directory `hello-world`. You may use the `-w` option to create with another example like `account`. + +After building the contract for release, the generated .wasm file is at the path `hello-word/target/wasm32v1-none/release/hello_world.wasm` + +## Upload Wasm to the Stellar blockchain + +We can use one of the [client SDKs](../../../tools/sdks/client-sdks.mdx), install necessary dependencies for your chosen programming language: + +- JavaScript SDK: [Node.js](https://nodejs.org/en) and npm +- Python SDK: [pip](https://pip.pypa.io/en/stable/installation/) + +Create a new directory for your project and navigate into it: + +```bash +mkdir install-wasm +cd install-wasm +``` + +### Running the install script + +Different programming languages can be used to upload the `.wasm` file, its SHA256 hash is used for deploying the contract. + + + + +This guide will walk you through installing the Wasm of the contract using the JavaScript SDK: [js-stellar-sdk](https://github.com/stellar/js-stellar-sdk). + +Create a new Node.js project with a JavaScript file, and install necessary dependencies: + +```bash +touch index.js +npm init es6 -y +npm install @stellar/stellar-sdk fs +``` + +Run the script with `node index.js`, it reads the Wasm file, gets account details, and uploads the contract in a transaction: + +```javascript +// Import necessary modules in your JavaScript file: +import * as StellarSDK from "@stellar/stellar-sdk"; +import fs from "fs"; + +async function uploadWasm(filePath) { + // reads the compiled Wasm file to buffer + const bytecode = fs.readFileSync(filePath); + + // retrieves account details from the network + const account = await server.getAccount(sourceKeypair.publicKey()); + + // installs the bytecode with a `uploadContractWasm` Stellar operation wrapped in a transaction sent to the network + const operation = StellarSDK.Operation.uploadContractWasm({ wasm: bytecode }); + return await buildAndSendTransaction(account, operation); +} + +// constructs a transaction, signs it, and submits it to the network, handling any necessary retries for transaction confirmation. +async function buildAndSendTransaction(account, operations) { + const transaction = new StellarSDK.TransactionBuilder(account, { + fee: StellarSDK.BASE_FEE, + networkPassphrase: StellarSDK.Networks.TESTNET, + }) + .addOperation(operations) + .setTimeout(30) + .build(); + + const tx = await server.prepareTransaction(transaction); + tx.sign(sourceKeypair); + + console.log("Submitting transaction..."); + let response = await server.sendTransaction(tx); + const hash = response.hash; + console.log(`Transaction hash: ${hash}`); + console.log("Awaiting confirmation..."); + + while (true) { + response = await server.getTransaction(hash); + if (response.status !== "NOT_FOUND") { + break; + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + if (response.status === "SUCCESS") { + console.log("Transaction successful."); + return response; + } else { + console.log("Transaction failed."); + throw new Error("Transaction failed"); + } +} + +// Upload contract to the testnet +const server = new StellarSDK.rpc.Server( + "https://soroban-testnet.stellar.org:443", +); +// Replace `Your_Secret_Key` +const sourceKeypair = StellarSDK.Keypair.fromSecret("Your_Secret_Key"); +// Adjust this path as necessary +const wasmFilePath = "../target/wasm32v1-none/release/hello_world.wasm"; + +try { + let uploadResponse = await uploadWasm(wasmFilePath); + const byteArray = uploadResponse.returnValue.bytes(); + const wasmHash = byteArray.toString("hex"); + console.log(`Wasm hash: ${wasmHash}`); +} catch (error) { + console.error(error); +} +``` + + + +This guide will walk you through installing the Wasm of the contract using the Python SDK: [py-stellar-base](https://stellar-sdk.readthedocs.io/en/soroban/). + +Create a new Python script, and install the necessary dependencies: + +```bash +touch install.py +pip install stellar-sdk +``` + +Run the script with `python3 install.py`, it reads the Wasm file, gets account details, and uploads the contract in a transaction: + +```py +import asyncio +import time +from stellar_sdk import Keypair, Network, SorobanServer, TransactionBuilder, xdr as stellar_xdr +from stellar_sdk.exceptions import PrepareTransactionException +from stellar_sdk.soroban_rpc import GetTransactionStatus +import hashlib + + +def print_wasm_hash(wasm_bytes): + # Create a SHA256 hash object + sha256_hash = hashlib.sha256() + + # Update the hash object with the WASM bytes + sha256_hash.update(wasm_bytes) + + # Get the digest and convert it to a stellar_sdk.xdr.Hash object + hash_bytes = sha256_hash.digest() + xdr_hash = stellar_xdr.Hash(hash_bytes) + hash_hex_str = xdr_hash.hash.hex() + print(f"Wasm Hash: {hash_hex_str}") + + +async def upload_wasm(file_path): + # Read the compiled Wasm file + with open(file_path, 'rb') as file: + wasm_bytes = file.read() + + # Retrieve account details from the network + account = server.load_account(source_keypair.public_key) + + # print wasm hash for later deployment + print_wasm_hash(wasm_bytes) + + # Install the bytes with an 'uploadContractWasm' Stellar operation + return await build_and_send_transaction(account, wasm_bytes) + + +async def build_and_send_transaction(account, bytes): + transaction = ( + TransactionBuilder( + source_account=account, + network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE, + ) + .append_upload_contract_wasm_op(bytes) + .set_timeout(30) + .build() + ) + + print("Preparing transaction...") + try: + tx = server.prepare_transaction(transaction) + except PrepareTransactionException as e: + print(f"Got exception: {e}") + return None + + tx.sign(source_keypair) + + print("Submitting transaction...") + response = server.send_transaction(tx) + hash = response.hash + print(f"Transaction hash: {hash}") + print("Awaiting confirmation...") + + while True: + response = server.get_transaction(hash) + if response.status != GetTransactionStatus.NOT_FOUND: + break + time.sleep(1) + + if response.status == GetTransactionStatus.SUCCESS: + print("Transaction successful.") + return response + else: + print("Transaction failed.") + raise Exception("Transaction failed") + +# Upload contract to the testnet +server = SorobanServer("https://soroban-testnet.stellar.org:443") +# Replace 'Your_Secret_Key' with your actual secret key +source_keypair = Keypair.from_secret("Your_Secret_Key") +# Adjust this path as necessary +wasm_file_path = "../target/wasm32v1-none/release/hello_world.wasm" + + +async def main(): + try: + await upload_wasm(wasm_file_path) + except Exception as error: + print(f"Error: {error}") + +# Run the main function +asyncio.run(main()) +``` + + + + +This guide will walk you through uploading the Wasm of the contract using the Rust SDK: [rs-soroban-client](https://github.com/rahul-soshte/rs-soroban-client). + +Create a new Cargo project, and install the necessary dependencies: + +```bash +cargo init +cargo add soroban_client +cargo add tokio -F macros,full +``` + +Copy the code below into `src/main.rs` then run the program with `cargo run`, it reads the Wasm file, gets account details, and uploads the contract in a transaction: + +```rust +use std::time::Duration; + +use soroban_client::{ + account::{Account, AccountBehavior}, + keypair::{Keypair, KeypairBehavior}, + network::{NetworkPassphrase, Networks}, + operation::Operation, + soroban_rpc::TransactionStatus, + transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, + Options, Server, +}; + +#[tokio::main] +pub async fn main() -> Result<(), Box> { + let server_url = "https://soroban-testnet.stellar.org"; + let server = Server::new(server_url, Options::default())?; + + // Adjust this path as necessary + let wasm_file_path = "../target/wasm32v1-none/release/hello_world.wasm"; + + // Read the wasm file + let wasm_bytes = std::fs::read(wasm_file_path)?; + + // Build the xdr::HostFunction::UploadContractWasm operation + let upload_wasm_op = Operation::new() + .upload_wasm(&wasm_bytes, None) + .expect("Cannot create upload_wasm operation"); + + // Replace Your_Secret_Key with your actual secret key + let source_keypair = Keypair::from_secret("Your_Secret_Key")?; + let source_public_key = &source_keypair.public_key(); + + // Get account information from server + let account_data = server.get_account(source_public_key).await?; + + // Build the Account to use in the transaction + let mut source_account = Account::new(source_public_key, &account_data.sequence_number())?; + + // Build the operation + let tx = TransactionBuilder::new(&mut source_account, Networks::testnet(), None) + .fee(1000u32) + .add_operation(upload_wasm_op) + .build(); + + let mut ptx = server.prepare_transaction(&tx).await?; + ptx.sign(&[source_keypair]); + + println!("> Uploading WASM executable"); + let response = server.send_transaction(ptx).await?; + + let hash = &response.hash; + println!(">> Tx hash: {hash}"); + let wasm_hash = match server.wait_transaction(hash, Duration::from_secs(15)).await { + Ok(tx_result) if tx_result.status == TransactionStatus::Success => { + let (_meta, ret_val) = tx_result.to_result_meta().expect("No meta found"); + if let Some(scval) = ret_val { + let bytes: Vec = scval.try_into().expect("Cannot convert ScVal to Vec"); + *bytes.last_chunk::<32>().expect("Not 32 bytes") + } else { + return Err(">> None return value".into()); + } + } + _ => { + println!(">> Failed to upload the WASM executable"); + return Err(">> Failed to upload the wasm".into()); + } + }; + let hex_wasm_hash: String = wasm_hash.iter().map(|b| format!("{:02x}", b)).collect(); + println!(">> Wasm hash: {hex_wasm_hash}"); + println!(); + + Ok(()) +} +``` + + + + +Replace `"Your_Secret_Key"` with your actual secret key. + +```bash +stellar keys generate --global hello --network testnet +stellar keys show hello +``` + +The Stellar CLI can be used to generate identities, e.g. `hello`, and show its secret key. + +:::tip + +Ensure that you handle secret and private keys securely in production environments and never expose them in your code repositories. + +::: + +```bash +Submitting transaction... +Transaction hash: cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f +Awaiting confirmation... +Transaction successful. +Wasm hash: 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db +``` + +The returned upload transaction hash can be viewed with online tools: [stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f](https://stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f) + +[Uploaded contracts are stored in ContractCodeEntry ledger entries.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#uploading-wasm-sources-using-invokehostfunctionop) These entries are keyed by the hash of the Wasm used to upload them. + +You may use the Wasm hash for deployment with the Stellar CLI: + +```bash +stellar contract deploy \ + --source-account hello \ + --network testnet \ + --wasm-hash 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db +# CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW +``` + +View the deployed contract using the returned identifier with online tools: [stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW](https://stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW) diff --git a/docs/build/security-docs/threat-modeling/threat-modeling-how-to.mdx b/docs/build/security-docs/threat-modeling/threat-modeling-how-to.mdx index 297244c475..6fb1d601ac 100644 --- a/docs/build/security-docs/threat-modeling/threat-modeling-how-to.mdx +++ b/docs/build/security-docs/threat-modeling/threat-modeling-how-to.mdx @@ -52,22 +52,18 @@ For each issue identified in the STRIDE model, think through the ways that issue The point of this section is to understand if the analysis done during the other sections was sufficiently deep and broad as to provide value. Some questions to ask and answer here might include: -#### Has the data flow diagram been referenced since it was created? +- **Has the data flow diagram been referenced since it was created?** + - If so, congratulations, you have created a reusable tool that can continue adding value. + - If not, there may need to be more detail or better organization. The data flow diagram should be a useful tool that is regularly referenced. -- If so, congratulations, you have created a reusable tool that can continue adding value. -- If not, there may need to be more detail or better organization. The data flow diagram should be a useful tool that is regularly referenced. +- **Did the STRIDE model uncover any new design issues or concerns that had not been previously addressed or thought of?** + - If so, excellent! The STRIDE model should help to guide thinking towards security issues that may not have been thought of during the initial design phase. + - If not, ensure you have at least one issue for each threat. Pay special attention to trust boundaries and processes handling sensitive data or taking particularly powerful actions. -#### Did the STRIDE model uncover any new design issues or concerns that had not been previously addressed or thought of? +- **Did the treatments identified in the “What are we going to do about it” section adequately address the issues identified?** + - If so, excellent! The threat modeling exercise has helped to build a more secure application. + - If not, you may want to provide greater detail and thought around how to respond to identified issues. -- If so, excellent! The STRIDE model should help to guide thinking towards security issues that may not have been thought of during the initial design phase. -- If not, ensure you have at least one issue for each threat. Pay special attention to trust boundaries and processes handling sensitive data or taking particularly powerful actions. - -#### Did the treatments identified in the “What are we going to do about it” section adequately address the issues identified? - -- If so, excellent! The threat modeling exercise has helped to build a more secure application. -- If not, you may want to provide greater detail and thought around how to respond to identified issues. - -#### Have additional issues been found after the threat model? - -- If so, excellent! The threat model is a living tool that should be redone any time significant changes have taken place to the architecture. During the design phase for these changes or additions, make sure to analyze the system with the newly designed changes to identify new potential issues in the new changes and in the interface to the old system. -- If not, continue to refine your threat model and design as new information is learned about the system. The threat model is a living tool that can continue providing benefits as new information is learned about the system. +- **Have additional issues been found after the threat model?** + - If so, excellent! The threat model is a living tool that should be redone any time significant changes have taken place to the architecture. During the design phase for these changes or additions, make sure to analyze the system with the newly designed changes to identify new potential issues in the new changes and in the interface to the old system. + - If not, continue to refine your threat model and design as new information is learned about the system. The threat model is a living tool that can continue providing benefits as new information is learned about the system. diff --git a/docs/build/smart-contracts/example-contracts/auth.mdx b/docs/build/smart-contracts/example-contracts/auth.mdx index 22ad648cc6..1825a2f1e7 100644 --- a/docs/build/smart-contracts/example-contracts/auth.mdx +++ b/docs/build/smart-contracts/example-contracts/auth.mdx @@ -130,7 +130,7 @@ pub enum DataKey { } ``` -`Address` is a universal Soroban identifier that may represent a Stellar account, a contract or an 'account contract' (a contract that defines a custom authentication scheme and authorization policies). Contracts don't need to distinguish between these internal representations though. `Address` can be used any time some network identity needs to be represented, like to distinguish between counters for different users in this example. +`Address` is a universal Soroban identifier that may represent a Stellar account, a contract, or a contract account (a contract that defines a custom authentication scheme and authorization policies). Contracts don't need to distinguish between these internal representations though. `Address` can be used any time some network identity needs to be represented, like to distinguish between counters for different users in this example. :::tip Enum keys like `DataKey` are useful for organizing contract storage. @@ -491,4 +491,4 @@ Contract auth: [{"address_with_nonce":null,"root_invocation":{"contract_id":"000 [Atomic Swap](../example-contracts/atomic-swap.mdx) example demonstrates multi-party authorization where multiple users sign their parts of the contract invocation. -[Custom Account](../example-contracts/custom-account.mdx) example for demonstrates an account contract that defines a custom authentication scheme and user-defined authorization policies. +[Simple Account](../example-contracts/simple-account.mdx) example demonstrates a minimal contract account implementation and how `__check_auth` works end-to-end. diff --git a/docs/build/smart-contracts/example-contracts/bls-signature.mdx b/docs/build/smart-contracts/example-contracts/bls-signature.mdx index 5d25cf7bcc..e93119c14e 100644 --- a/docs/build/smart-contracts/example-contracts/bls-signature.mdx +++ b/docs/build/smart-contracts/example-contracts/bls-signature.mdx @@ -1,7 +1,7 @@ --- title: BLS Signature -description: A custom account contract with BLS signature verification. -sidebar_position: 50 +description: A contract account with BLS signature verification. +sidebar_position: 17 --- @@ -9,11 +9,11 @@ sidebar_position: 50 @@ -21,11 +21,11 @@ import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import { getPlatform } from "@site/src/helpers/getPlatform"; -The [BLS signature example] illustrates how to implement BLS signature verification inside a custom account contract. +The [BLS signature example] illustrates how to implement BLS signature verification inside a contract account. -This example is an based off of the [account example]. Although the main goal is to illustrate the practical use of the BLS12-381 functionalities in a relevant setting. +This example is based off of the [Complex Account example]. Although the main goal is to illustrate the practical use of the BLS12-381 functionalities in a relevant setting. -It is good to have a understanding of how a custom account contract works, but it is not required. +It is good to have an understanding of how a contract account works, so walk through the [Simple Account example] first, but it is not required. [![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] @@ -34,7 +34,8 @@ It is good to have a understanding of how a custom account contract works, but i [open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web [open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples [BLS signature example]: https://github.com/stellar/soroban-examples/tree/v23.0.0/bls_signature -[account example]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account +[Complex Account example]: ./complex-account.mdx +[Simple Account example]: ./simple-account.mdx ## Background on BLS Signature @@ -330,7 +331,7 @@ fn test() { } ``` -Most of what's here is needed in order to create the contract client and ensure the invocation of its custom account interface for signature authorization. After the setup, calling `env.try_invoke_contract_check_auth` on the client will invoke the `__check_auth` logic we've defined in our contract. +Most of what's here is needed in order to create the contract client and ensure the invocation of its `CustomAccountInterface` implementation for signature authorization. After the setup, calling `env.try_invoke_contract_check_auth` on the client will invoke the `__check_auth` logic we've defined in our contract. The invocation will return nothing on success, and will panic on failure. `env.cost_estimate().budget().print()` at the end prints out the budget. diff --git a/docs/build/smart-contracts/example-contracts/complex-account.mdx b/docs/build/smart-contracts/example-contracts/complex-account.mdx new file mode 100644 index 0000000000..ff33f67ece --- /dev/null +++ b/docs/build/smart-contracts/example-contracts/complex-account.mdx @@ -0,0 +1,455 @@ +--- +title: Complex Account +description: Implement a contract account with multisig and custom authorization policies. +sidebar_position: 16 +--- + + + + {`Implement a contract account with multisig and custom authorization policies.`} + + + + + + +Start with the [Simple Account example](./simple-account.mdx) to learn the single-signer basics. This Complex Account extends that baseline with multisig and customizable authorization policies. Any time an `Address` pointing at this contract instance is used, the logic defined here runs through the Soroban auth framework. + +Contract accounts are exclusive to Soroban and can't be used to perform other Stellar operations. + +:::danger + +Implementing a contract account requires a very good understanding of authentication and authorization and requires rigorous testing and review. The example here is _not_ a full-fledged account contract - use it as an API reference only. + +::: + +:::caution + +While contract accounts are supported by the Stellar protocol and Soroban SDK, the full client support (such as transaction simulation) is still under development. + +::: + +[![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] + +[![Open in Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)][open-in-code-anywhere] + +[open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web +[open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples +[contract account example]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account + +## Run the Example + +First go through the [Setup] process to get your development environment configured, then clone the `v23.0.0` tag of `soroban-examples` repository: + +[setup]: ../getting-started/setup.mdx + +```sh +git clone -b v23.0.0 https://github.com/stellar/soroban-examples +``` + +Or, skip the development environment setup and open this example in [GitHub Codespaces][open-in-github-codespaces] or [Code Anywhere][open-in-code-anywhere]. + +To run the tests for the example use `cargo test`. + +```sh +cargo test -p soroban-account-contract +``` + +You should see the output: + +``` +running 1 test +test test::test_token_auth ... ok +``` + +## How it Works + +Open the `account/src/lib.rs` file to follow along. + +Account contracts implement a special function `__check_auth` that takes the signature payload, signatures and authorization context. The function should error if auth is declined, otherwise auth will be approved. + +This example contract uses ed25519 keys for signature verification and supports multiple equally weighted signers. It also implements a policy that allows setting per-token limits on transfers. The token can be spent beyond the limit only if every signature is provided. + +For example, the user may initialize this contract with 2 keys and introduce 100 USDC spend limit. This way they can use a single key to sign their contract invocations and be sure that even if they sign a malicious transaction they won't spend more than 100 USDC. + +### Initialization + +```rust title="account/src/lib.rs" +#[contract] +struct AccountContract; + +#[contracttype] +#[derive(Clone)] +enum DataKey { + SignerCnt, + Signer(BytesN<32>), + SpendLimit(Address), +} + +... + +#[contractimpl] +impl AccountContract { + // Initialize the contract with a list of ed25519 public key ('signers'). + pub fn __constructor(env: Env, signers: Vec>) { + // In reality this would need some additional validation on signers + // (deduplication etc.). + for signer in signers.iter() { + env.storage().instance().set(&DataKey::Signer(signer), &()); + } + env.storage() + .instance() + .set(&DataKey::SignerCnt, &signers.len()); + } + + ... +} +``` + +This account contract needs to work with the public keys explicitly. Here we initialize the contract with ed25519 keys. + +We use constructor in order to ensure that the contract instance is created and initialized atomically (without constructor there is a risk that someone frontruns the initialization of the contract and sets their own public keys). + +### Policy modification + +```rust +#[contractimpl] +impl AccountContract { + ... + + // Adds a limit on any token transfers that aren't signed by every signer. + // For the sake of simplicity of the example the limit is only applied on + // a per-authorization basis; the 'real' limits should likely be time-based + // instead. + pub fn add_limit(env: Env, token: Address, limit: i128) { + // The current contract address is the account contract address and has + // the same semantics for `require_auth` call as any other account + // contract address. + // Note, that if a contract *invokes* another contract, then it would + // authorize the call on its own behalf and that wouldn't require any + // user-side verification. + env.current_contract_address().require_auth(); + env.storage() + .instance() + .set(&DataKey::SpendLimit(token), &limit); + } +} +``` + +This function allows users to set and modify the per-token spend limit described above. The neat trick here is that `require_auth` can be used for the `current_contract_address()`, i.e. the account contract may be used to verify authorization for its own administrative functions. This way there is no need to write duplicate authorization and authentication logic. + +### `__check_auth` + +```rust +#[contracttype] +#[derive(Clone)] +pub struct AccSignature { + pub public_key: BytesN<32>, + pub signature: BytesN<64>, +} + +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum AccError { + NotEnoughSigners = 1, + NegativeAmount = 2, + BadSignatureOrder = 3, + UnknownSigner = 4, +} + +... + +#[contractimpl] +impl CustomAccountInterface for AccountContract { + type Signature = Vec; + type Error = AccError; + + // This is the 'entry point' of the account contract and every account + // contract has to implement it. `require_auth` calls for the Address of + // this contract will result in calling this `__check_auth` function with + // the appropriate arguments. + // + // This should return `()` if authentication and authorization checks have + // been passed and return an error (or panic) otherwise. + // + // `__check_auth` takes the payload that needed to be signed, arbitrarily + // typed signatures (`Vec` contract type here) and authorization + // context that contains all the invocations that this call tries to verify. + // + // `__check_auth` has to authenticate the signatures. It also may use + // `auth_context` to implement additional authorization policies (like token + // spend limits here). + // + // Soroban host guarantees that `__check_auth` is only being called during + // `require_auth` verification and hence this may mutate its own state + // without the need for additional authorization (for example, this could + // store per-time-period token spend limits instead of just enforcing the + // limit per contract call). + // + // Note, that `__check_auth` function shouldn't call `require_auth` on the + // contract's own address in order to avoid infinite recursion. + #[allow(non_snake_case)] + fn __check_auth( + env: Env, + signature_payload: Hash<32>, + signatures: Self::Signature, + auth_context: Vec, + ) -> Result<(), AccError> { + // Perform authentication. + authenticate(&env, &signature_payload, &signatures)?; + + let tot_signers: u32 = env + .storage() + .instance() + .get::<_, u32>(&DataKey::SignerCnt) + .unwrap(); + let all_signed = tot_signers == signatures.len(); + + let curr_contract = env.current_contract_address(); + + // This is a map for tracking the token spend limits per token. This + // makes sure that if e.g. multiple `transfer` calls are being authorized + // for the same token we still respect the limit for the total + // transferred amount (and not the 'per-call' limits). + let mut spend_left_per_token = Map::::new(&env); + // Verify the authorization policy. + for context in auth_context.iter() { + verify_authorization_policy( + &env, + &context, + &curr_contract, + all_signed, + &mut spend_left_per_token, + )?; + } + Ok(()) + } +} +``` + +`__check_auth` is a special function that account contracts implement. It will be called by the Soroban environment every time `require_auth` or `require_auth_for_args` is called for the address of the account contract. + +Here it is implemented in two steps. First, authentication is performed using the signature payload and a vector of signatures. Second, authorization policy is enforced using the `auth_context` vector. This vector contains all the contract calls that are being authorized by the provided signatures. + +`__check_auth` is a reserved function and can only be called by the Soroban environment in response to a call to `require_auth`. Any direct call to `__check_auth` will fail. This makes it safe to write to the account contract storage from `__check_auth`, as it's guaranteed to not be called in unexpected context. In this example it's possible to persist the spend limits without worrying that they'll be exhausted via a bad actor calling `__check_auth` directly. + +### Authentication + +```rust +fn authenticate( + env: &Env, + signature_payload: &Hash<32>, + signatures: &Vec, +) -> Result<(), AccError> { + for i in 0..signatures.len() { + let signature = signatures.get_unchecked(i); + if i > 0 { + let prev_signature = signatures.get_unchecked(i - 1); + if prev_signature.public_key >= signature.public_key { + return Err(AccError::BadSignatureOrder); + } + } + if !env + .storage() + .instance() + .has(&DataKey::Signer(signature.public_key.clone())) + { + return Err(AccError::UnknownSigner); + } + env.crypto().ed25519_verify( + &signature.public_key, + &signature_payload.clone().into(), + &signature.signature, + ); + } + Ok(()) +} +``` + +Authentication here simply checks that the provided signatures are valid given the payload and also that they belong to the signers of this account contract. + +### Authorization policy + +```rust +fn verify_authorization_policy( + env: &Env, + context: &Context, + curr_contract: &Address, + all_signed: bool, + spend_left_per_token: &mut Map, +) -> Result<(), AccError> { + // There are no limitations when every signers signs the transaction. + if all_signed { + return Ok(()); + } + let contract_context = match context { + Context::Contract(c) => { + // Allow modifying this contract only if every signer has signed for it. + if &c.contract == curr_contract { + return Err(AccError::NotEnoughSigners); + } + c + } + // Allow creating new contracts only if every signer has signed for it. + Context::CreateContractHostFn(_) | Context::CreateContractWithCtorHostFn(_) => { + return Err(AccError::NotEnoughSigners); + } + }; + + ... +} +``` + +We verify the policy per `Context`. i.e. per one `require_auth` call for the address of this account. The policy for the account contract itself enforces every signer to have signed the method call. + +```rust +fn verify_authorization_policy( + env: &Env, + context: &Context, + curr_contract: &Address, + all_signed: bool, + spend_left_per_token: &mut Map, +) -> Result<(), AccError> { + ... + + // Besides the checks above we're only interested in functions that spend tokens. + if contract_context.fn_name != TRANSFER_FN + && contract_context.fn_name != APPROVE_FN + && contract_context.fn_name != BURN_FN + { + return Ok(()); + } + + let spend_left: Option = + if let Some(spend_left) = spend_left_per_token.get(contract_context.contract.clone()) { + Some(spend_left) + } else if let Some(limit_left) = env + .storage() + .instance() + .get::<_, i128>(&DataKey::SpendLimit(contract_context.contract.clone())) + { + Some(limit_left) + } else { + None + }; + + // 'None' means that the contract is outside of the policy. + if let Some(spend_left) = spend_left { + // 'amount' is the third argument in both `approve` and `transfer`. + // If the contract has a different signature, it's safer to panic + // here, as it's expected to have the standard interface. + let spent: i128 = contract_context + .args + .get(2) + .unwrap() + .try_into_val(env) + .unwrap(); + if spent < 0 { + return Err(AccError::NegativeAmount); + } + if !all_signed && spent > spend_left { + return Err(AccError::NotEnoughSigners); + } + spend_left_per_token.set(contract_context.contract.clone(), spend_left - spent); + } + Ok(()) +} +``` + +Then we check for the standard token function names and verify that for these function we don't exceed the spending limits. + +### Tests + +Open the [`account/src/test.rs`] file to follow along. + +[`account/src/test.rs`]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account/src/test.rs + +Refer to another examples for the general information on the test setup. + +Here we only look at some points specific to the account contracts. + +```rust +fn sign(e: &Env, signer: &Keypair, payload: &BytesN<32>) -> Val { + AccSignature { + public_key: signer_public_key(e, signer), + signature: signer + .sign(payload.to_array().as_slice()) + .to_bytes() + .into_val(e), + } + .into_val(e) +} +``` + +Unlike most of the contracts that may simply use `Address`, account contracts deal with the signature verification and hence need to actually sign the payloads. + +```rust +let payload = BytesN::random(&env); +let token = Address::generate(&env); +// `__check_auth` can't be called directly, hence we need to use +// `try_invoke_contract_check_auth` testing utility that emulates being +// called by the Soroban host during a `require_auth` call. +env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + vec![&env, sign(&env, &signers[0], &payload)].into(), + &vec![ + &env, + token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1000), + ], +) +.unwrap(); +``` + +`__check_auth` can't be called directly as regular contract functions, hence we need to use `try_invoke_contract_check_auth` testing utility that emulates being called by the Soroban host during a `require_auth` call. + +```rust +// Add a spend limit of 1000 per 1 signer. +account_contract.add_limit(&token, &1000); +// Verify that this call needs to be authorized. +assert_eq!( + env.auths(), + std::vec![( + account_contract.address.clone(), + AuthorizedInvocation { + function: AuthorizedFunction::Contract(( + account_contract.address.clone(), + symbol_short!("add_limit"), + (token.clone(), 1000_i128).into_val(&env), + )), + sub_invocations: std::vec![] + } + )] +); +``` + +Asserting the contract-specific error to `try_invoke_contract_check_auth` allows verifying the exact error code and makes sure that the verification has failed due to not having enough signers and not for any other reason. + +It's a good idea for the account contract to have detailed error codes and verify that they are returned when they are expected. + +```rust +// 1 signer no longer can perform the token operation that transfers more +// than 1000 units. +assert_eq!( + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + vec![&env, sign(&env, &signers[0], &payload)].into(), + &vec![ + &env, + token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1001) + ], + ) + .err() + .unwrap() + .unwrap(), + AccError::NotEnoughSigners +); +``` diff --git a/docs/build/smart-contracts/example-contracts/custom-account.mdx b/docs/build/smart-contracts/example-contracts/custom-account.mdx deleted file mode 100644 index 246e847e6f..0000000000 --- a/docs/build/smart-contracts/example-contracts/custom-account.mdx +++ /dev/null @@ -1,456 +0,0 @@ ---- -title: Custom Account -description: Implement an account contract supporting multisig and custom authorization policies. -sidebar_position: 150 ---- - - - - {`Implement an account contract supporting multisig and custom authorization - policies.`} - - - - - - -The [custom account example] demonstrates how to implement a simple account contract that supports multisig and customizable authorization policies. This account contract can be used with the Soroban auth framework, so that any time an `Address` pointing at this contract instance is used, the custom logic implemented here is applied. - -Custom accounts are exclusive to Soroban and can't be used to perform other Stellar operations. - -:::danger - -Implementing a custom account contract requires a very good understanding of authentication and authorization and requires rigorous testing and review. The example here is _not_ a full-fledged account contract - use it as an API reference only. - -::: - -:::caution - -While custom accounts are supported by the Stellar protocol and Soroban SDK, the full client support (such as transaction simulation) is still under development. - -::: - -[![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] - -[![Open in Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)][open-in-code-anywhere] - -[open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web -[open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples -[custom account example]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account - -## Run the Example - -First go through the [Setup] process to get your development environment configured, then clone the `v23.0.0` tag of `soroban-examples` repository: - -[setup]: ../getting-started/setup.mdx - -```sh -git clone -b v23.0.0 https://github.com/stellar/soroban-examples -``` - -Or, skip the development environment setup and open this example in [GitHub Codespaces][open-in-github-codespaces] or [Code Anywhere][open-in-code-anywhere]. - -To run the tests for the example use `cargo test`. - -```sh -cargo test -p soroban-account-contract -``` - -You should see the output: - -``` -running 1 test -test test::test_token_auth ... ok -``` - -## How it Works - -Open the `account/src/lib.rs` file to follow along. - -Account contracts implement a special function `__check_auth` that takes the signature payload, signatures and authorization context. The function should error if auth is declined, otherwise auth will be approved. - -This example contract uses ed25519 keys for signature verification and supports multiple equally weighted signers. It also implements a policy that allows setting per-token limits on transfers. The token can be spent beyond the limit only if every signature is provided. - -For example, the user may initialize this contract with 2 keys and introduce 100 USDC spend limit. This way they can use a single key to sign their contract invocations and be sure that even if they sign a malicious transaction they won't spend more than 100 USDC. - -### Initialization - -```rust title="account/src/lib.rs" -#[contract] -struct AccountContract; - -#[contracttype] -#[derive(Clone)] -enum DataKey { - SignerCnt, - Signer(BytesN<32>), - SpendLimit(Address), -} - -... - -#[contractimpl] -impl AccountContract { - // Initialize the contract with a list of ed25519 public key ('signers'). - pub fn __constructor(env: Env, signers: Vec>) { - // In reality this would need some additional validation on signers - // (deduplication etc.). - for signer in signers.iter() { - env.storage().instance().set(&DataKey::Signer(signer), &()); - } - env.storage() - .instance() - .set(&DataKey::SignerCnt, &signers.len()); - } - - ... -} -``` - -This account contract needs to work with the public keys explicitly. Here we initialize the contract with ed25519 keys. - -We use constructor in order to ensure that the contract instance is created and initialized atomically (without constructor there is a risk that someone frontruns the initialization of the contract and sets their own public keys). - -### Policy modification - -```rust -#[contractimpl] -impl AccountContract { - ... - - // Adds a limit on any token transfers that aren't signed by every signer. - // For the sake of simplicity of the example the limit is only applied on - // a per-authorization basis; the 'real' limits should likely be time-based - // instead. - pub fn add_limit(env: Env, token: Address, limit: i128) { - // The current contract address is the account contract address and has - // the same semantics for `require_auth` call as any other account - // contract address. - // Note, that if a contract *invokes* another contract, then it would - // authorize the call on its own behalf and that wouldn't require any - // user-side verification. - env.current_contract_address().require_auth(); - env.storage() - .instance() - .set(&DataKey::SpendLimit(token), &limit); - } -} -``` - -This function allows users to set and modify the per-token spend limit described above. The neat trick here is that `require_auth` can be used for the `current_contract_address()`, i.e. the account contract may be used to verify authorization for its own administrative functions. This way there is no need to write duplicate authorization and authentication logic. - -### `__check_auth` - -```rust -#[contracttype] -#[derive(Clone)] -pub struct AccSignature { - pub public_key: BytesN<32>, - pub signature: BytesN<64>, -} - -#[contracterror] -#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] -#[repr(u32)] -pub enum AccError { - NotEnoughSigners = 1, - NegativeAmount = 2, - BadSignatureOrder = 3, - UnknownSigner = 4, -} - -... - -#[contractimpl] -impl CustomAccountInterface for AccountContract { - type Signature = Vec; - type Error = AccError; - - // This is the 'entry point' of the account contract and every account - // contract has to implement it. `require_auth` calls for the Address of - // this contract will result in calling this `__check_auth` function with - // the appropriate arguments. - // - // This should return `()` if authentication and authorization checks have - // been passed and return an error (or panic) otherwise. - // - // `__check_auth` takes the payload that needed to be signed, arbitrarily - // typed signatures (`Vec` contract type here) and authorization - // context that contains all the invocations that this call tries to verify. - // - // `__check_auth` has to authenticate the signatures. It also may use - // `auth_context` to implement additional authorization policies (like token - // spend limits here). - // - // Soroban host guarantees that `__check_auth` is only being called during - // `require_auth` verification and hence this may mutate its own state - // without the need for additional authorization (for example, this could - // store per-time-period token spend limits instead of just enforcing the - // limit per contract call). - // - // Note, that `__check_auth` function shouldn't call `require_auth` on the - // contract's own address in order to avoid infinite recursion. - #[allow(non_snake_case)] - fn __check_auth( - env: Env, - signature_payload: Hash<32>, - signatures: Self::Signature, - auth_context: Vec, - ) -> Result<(), AccError> { - // Perform authentication. - authenticate(&env, &signature_payload, &signatures)?; - - let tot_signers: u32 = env - .storage() - .instance() - .get::<_, u32>(&DataKey::SignerCnt) - .unwrap(); - let all_signed = tot_signers == signatures.len(); - - let curr_contract = env.current_contract_address(); - - // This is a map for tracking the token spend limits per token. This - // makes sure that if e.g. multiple `transfer` calls are being authorized - // for the same token we still respect the limit for the total - // transferred amount (and not the 'per-call' limits). - let mut spend_left_per_token = Map::::new(&env); - // Verify the authorization policy. - for context in auth_context.iter() { - verify_authorization_policy( - &env, - &context, - &curr_contract, - all_signed, - &mut spend_left_per_token, - )?; - } - Ok(()) - } -} -``` - -`__check_auth` is a special function that account contracts implement. It will be called by the Soroban environment every time `require_auth` or `require_auth_for_args` is called for the address of the account contract. - -Here it is implemented in two steps. First, authentication is performed using the signature payload and a vector of signatures. Second, authorization policy is enforced using the `auth_context` vector. This vector contains all the contract calls that are being authorized by the provided signatures. - -`__check_auth` is a reserved function and can only be called by the Soroban environment in response to a call to `require_auth`. Any direct call to `__check_auth` will fail. This makes it safe to write to the account contract storage from `__check_auth`, as it's guaranteed to not be called in unexpected context. In this example it's possible to persist the spend limits without worrying that they'll be exhausted via a bad actor calling `__check_auth` directly. - -### Authentication - -```rust -fn authenticate( - env: &Env, - signature_payload: &Hash<32>, - signatures: &Vec, -) -> Result<(), AccError> { - for i in 0..signatures.len() { - let signature = signatures.get_unchecked(i); - if i > 0 { - let prev_signature = signatures.get_unchecked(i - 1); - if prev_signature.public_key >= signature.public_key { - return Err(AccError::BadSignatureOrder); - } - } - if !env - .storage() - .instance() - .has(&DataKey::Signer(signature.public_key.clone())) - { - return Err(AccError::UnknownSigner); - } - env.crypto().ed25519_verify( - &signature.public_key, - &signature_payload.clone().into(), - &signature.signature, - ); - } - Ok(()) -} -``` - -Authentication here simply checks that the provided signatures are valid given the payload and also that they belong to the signers of this account contract. - -### Authorization policy - -```rust -fn verify_authorization_policy( - env: &Env, - context: &Context, - curr_contract: &Address, - all_signed: bool, - spend_left_per_token: &mut Map, -) -> Result<(), AccError> { - // There are no limitations when every signers signs the transaction. - if all_signed { - return Ok(()); - } - let contract_context = match context { - Context::Contract(c) => { - // Allow modifying this contract only if every signer has signed for it. - if &c.contract == curr_contract { - return Err(AccError::NotEnoughSigners); - } - c - } - // Allow creating new contracts only if every signer has signed for it. - Context::CreateContractHostFn(_) | Context::CreateContractWithCtorHostFn(_) => { - return Err(AccError::NotEnoughSigners); - } - }; - - ... -} -``` - -We verify the policy per `Context`. i.e. per one `require_auth` call for the address of this account. The policy for the account contract itself enforces every signer to have signed the method call. - -```rust -fn verify_authorization_policy( - env: &Env, - context: &Context, - curr_contract: &Address, - all_signed: bool, - spend_left_per_token: &mut Map, -) -> Result<(), AccError> { - ... - - // Besides the checks above we're only interested in functions that spend tokens. - if contract_context.fn_name != TRANSFER_FN - && contract_context.fn_name != APPROVE_FN - && contract_context.fn_name != BURN_FN - { - return Ok(()); - } - - let spend_left: Option = - if let Some(spend_left) = spend_left_per_token.get(contract_context.contract.clone()) { - Some(spend_left) - } else if let Some(limit_left) = env - .storage() - .instance() - .get::<_, i128>(&DataKey::SpendLimit(contract_context.contract.clone())) - { - Some(limit_left) - } else { - None - }; - - // 'None' means that the contract is outside of the policy. - if let Some(spend_left) = spend_left { - // 'amount' is the third argument in both `approve` and `transfer`. - // If the contract has a different signature, it's safer to panic - // here, as it's expected to have the standard interface. - let spent: i128 = contract_context - .args - .get(2) - .unwrap() - .try_into_val(env) - .unwrap(); - if spent < 0 { - return Err(AccError::NegativeAmount); - } - if !all_signed && spent > spend_left { - return Err(AccError::NotEnoughSigners); - } - spend_left_per_token.set(contract_context.contract.clone(), spend_left - spent); - } - Ok(()) -} -``` - -Then we check for the standard token function names and verify that for these function we don't exceed the spending limits. - -### Tests - -Open the [`account/src/test.rs`] file to follow along. - -[`account/src/test.rs`]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account/src/test.rs - -Refer to another examples for the general information on the test setup. - -Here we only look at some points specific to the account contracts. - -```rust -fn sign(e: &Env, signer: &Keypair, payload: &BytesN<32>) -> Val { - AccSignature { - public_key: signer_public_key(e, signer), - signature: signer - .sign(payload.to_array().as_slice()) - .to_bytes() - .into_val(e), - } - .into_val(e) -} -``` - -Unlike most of the contracts that may simply use `Address`, account contracts deal with the signature verification and hence need to actually sign the payloads. - -```rust -let payload = BytesN::random(&env); -let token = Address::generate(&env); -// `__check_auth` can't be called directly, hence we need to use -// `try_invoke_contract_check_auth` testing utility that emulates being -// called by the Soroban host during a `require_auth` call. -env.try_invoke_contract_check_auth::( - &account_contract.address, - &payload, - vec![&env, sign(&env, &signers[0], &payload)].into(), - &vec![ - &env, - token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1000), - ], -) -.unwrap(); -``` - -`__check_auth` can't be called directly as regular contract functions, hence we need to use `try_invoke_contract_check_auth` testing utility that emulates being called by the Soroban host during a `require_auth` call. - -```rust -// Add a spend limit of 1000 per 1 signer. -account_contract.add_limit(&token, &1000); -// Verify that this call needs to be authorized. -assert_eq!( - env.auths(), - std::vec![( - account_contract.address.clone(), - AuthorizedInvocation { - function: AuthorizedFunction::Contract(( - account_contract.address.clone(), - symbol_short!("add_limit"), - (token.clone(), 1000_i128).into_val(&env), - )), - sub_invocations: std::vec![] - } - )] -); -``` - -Asserting the contract-specific error to `try_invoke_contract_check_auth` allows verifying the exact error code and makes sure that the verification has failed due to not having enough signers and not for any other reason. - -It's a good idea for the account contract to have detailed error codes and verify that they are returned when they are expected. - -```rust -// 1 signer no longer can perform the token operation that transfers more -// than 1000 units. -assert_eq!( - env.try_invoke_contract_check_auth::( - &account_contract.address, - &payload, - vec![&env, sign(&env, &signers[0], &payload)].into(), - &vec![ - &env, - token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1001) - ], - ) - .err() - .unwrap() - .unwrap(), - AccError::NotEnoughSigners -); -``` diff --git a/docs/build/smart-contracts/example-contracts/deployer.mdx b/docs/build/smart-contracts/example-contracts/deployer.mdx index f5d53def49..8945caa3eb 100644 --- a/docs/build/smart-contracts/example-contracts/deployer.mdx +++ b/docs/build/smart-contracts/example-contracts/deployer.mdx @@ -348,7 +348,7 @@ The command prints out the hash as hex. It will look something like `7792a624b56 We also need to deploy the `Deployer` contract: ```sh -stellar contract deploy --wasm deployer/target/wasm32v1-none/release/soroban_deployer_contract.wasm --id 1 +stellar contract deploy --wasm deployer/target/wasm32v1-none/release/soroban_deployer_contract.wasm --alias 1 ``` This will return the deployer address: `CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM`. diff --git a/docs/build/smart-contracts/example-contracts/non-fungible-token.mdx b/docs/build/smart-contracts/example-contracts/non-fungible-token.mdx index d00898ead0..245b5f5e1d 100644 --- a/docs/build/smart-contracts/example-contracts/non-fungible-token.mdx +++ b/docs/build/smart-contracts/example-contracts/non-fungible-token.mdx @@ -16,7 +16,7 @@ sidebar_position: 142 # Non-Fungible Token -[Source Code](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non-fungible) +[Source Code](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non_fungible) [![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] @@ -26,7 +26,7 @@ In the world of digital assets, not all tokens are alike. This becomes important ## Overview -The [non-fungible](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non-fungible) module provides three different NFT variants that differ in how certain features like ownership tracking, token creation and destruction are handled: +The [non-fungible](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non_fungible) module provides three different NFT variants that differ in how certain features like ownership tracking, token creation and destruction are handled: 1. **Base**: Contract variant that implements the base logic for the NonFungibleToken interface. Suitable for most use cases. 2. **Consecutive**: Contract variant for optimized minting of batches of tokens. Builds on top of the base variant, and overrides the necessary functions from the `Base` variant. diff --git a/docs/build/smart-contracts/example-contracts/simple-account.mdx b/docs/build/smart-contracts/example-contracts/simple-account.mdx new file mode 100644 index 0000000000..b63d582f6b --- /dev/null +++ b/docs/build/smart-contracts/example-contracts/simple-account.mdx @@ -0,0 +1,175 @@ +--- +title: Simple Account +sidebar_label: Simple Account +description: A minimal contract account secured by a single ed25519 public key. +sidebar_position: 15 +--- + + + Simple Account + + + + + +This example implements the smallest possible [contract account](../../../learn/glossary.mdx#contract-account): each `require_auth` call delegates to one ed25519 public key. It shows how to store that key, run `__check_auth`, and surface authorization failures. Use this as the baseline before moving to the [Complex Account example](./complex-account.mdx) for multisig or policy enforcement. + +:::danger + +Implementing a contract account requires a very good understanding of authentication and authorization and requires rigorous testing and review. The example here is _not_ a full-fledged account contract - use it as an API reference only. + +::: + +:::caution + +While contract accounts are supported by the Stellar protocol and Soroban SDK, the full client support (such as transaction simulation) is still under development. + +::: + +[![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] + +[![Open in Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)][open-in-code-anywhere] + +[open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web +[open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples + +## Run the Example + +1. Finish the [Setup] checklist to install the Stellar CLI, Rust target, and required environment variables. +2. Clone the `soroban-examples` repository at the `v23.0.0` tag: + +```sh +git clone -b v23.0.0 https://github.com/stellar/soroban-examples +``` + +3. If you prefer not to install anything locally, launch the repo in [GitHub Codespaces][open-in-github-codespaces] or [Codeanywhere][open-in-code-anywhere]. + +Run the tests from the `simple_account` directory: + +```sh +cd simple_account +cargo test +``` + +Expected output: + +``` +running 1 test +test test::test_account ... ok +``` + +[setup]: ../getting-started/setup.mdx + +## How it Works + +Open `simple_account/src/lib.rs`. The contract keeps one piece of state: the owner's ed25519 public key. + +### Initialize the owner + +```rust title="simple_account/src/lib.rs" +#[contracttype] +#[derive(Clone)] +pub enum DataKey { + Owner, +} + +#[contractimpl] +impl SimpleAccount { + pub fn init(env: Env, public_key: BytesN<32>) { + if env.storage().instance().has(&DataKey::Owner) { + panic!("owner is already set"); + } + env.storage().instance().set(&DataKey::Owner, &public_key); + } +``` + +Call `init` once to persist the owner's public key. Subsequent calls panic to prevent replacement of the key. + +### Implement `__check_auth` + +```rust title="simple_account/src/lib.rs" + #[allow(non_snake_case)] + pub fn __check_auth( + env: Env, + signature_payload: BytesN<32>, + signature: BytesN<64>, + _auth_context: Vec, + ) { + let public_key: BytesN<32> = env + .storage() + .instance() + .get(&DataKey::Owner) + .unwrap(); + env.crypto() + .ed25519_verify(&public_key, &signature_payload.into(), &signature); + } +} +``` + +`__check_auth` runs whenever another contract invokes `require_auth` on this contract address. The implementation loads the stored key, verifies the signature, and panics on failure so the upstream `require_auth` call rejects. Once you need multiple keys or policy logic, follow the same pattern shown in Complex Account. + +## Tests + +Open `simple_account/src/test.rs`. `__check_auth` is not exposed as a regular entry point, so tests call `env.try_invoke_contract_check_auth` to emulate the Soroban host and exercise the same path Soroban runs during `require_auth`. + +```rust title="simple_account/src/test.rs" +#[test] +fn test_account() { + let env = Env::default(); + let account_contract = SimpleAccountClient::new(&env, &env.register(SimpleAccount, ())); + + let signer = Keypair::generate(&mut thread_rng()); + account_contract.init(&signer.public.to_bytes().into_val(&env)); + + let payload = BytesN::random(&env); + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + sign(&env, &signer, &payload), + &vec![&env], + ) + .unwrap(); + + assert!(env + .try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + BytesN::<64>::random(&env).into(), + &vec![&env], + ) + .is_err()); +} +``` + +`try_invoke_contract_check_auth` mimics the host path for `require_auth`, so the test proves both the success case and a failure case with random bytes. + +Follow the same structure for any account: + +- create a keypair and store the expected signer (for example, with `init`) +- call `try_invoke_contract_check_auth` with a valid signature and assert it succeeds +- call it again with an invalid signature or payload and assert it fails + +## Build the Contract + +To produce the Wasm executable, run: + +```sh +stellar contract build +# add --package soroban-simple-account-contract when building inside the soroban-examples workspace +``` + +The compiled file appears at `target/wasm32v1-none/release/simple_account.wasm` (the exact filename depends on your crate name). + +## Further Reading + +- [Complex account example] – adds multisig support and spend limits. +- [BLS signature contract](./bls-signature.mdx) – demonstrates custom signature schemes inside `__check_auth`. + +[Complex account example]: ./complex-account.mdx +[simple account example]: https://github.com/stellar/soroban-examples/tree/v23.0.0/simple_account diff --git a/docs/build/smart-contracts/example-contracts/storage.mdx b/docs/build/smart-contracts/example-contracts/storage.mdx index 9a0e43d616..174992c853 100644 --- a/docs/build/smart-contracts/example-contracts/storage.mdx +++ b/docs/build/smart-contracts/example-contracts/storage.mdx @@ -118,7 +118,7 @@ If no value is currently stored, the value given to `unwrap_or(...)` is returned Values stored as contract data and retrieved are transmitted from [the environment] and expanded into the type specified. In this case a `u32`. If the value can be expanded, the type returned will be a `u32`. Otherwise, if a developer cast it to be some other type, a panic would occur at the unwrap. -[the environment]: https://developers.stellar.org/docs/learn/encyclopedia/contract-development/environment-concepts +[the environment]: ../../../learn/fundamentals/contract-development/environment-concepts.mdx ```rust env.storage() diff --git a/docs/build/smart-contracts/getting-started/README.mdx b/docs/build/smart-contracts/getting-started/README.mdx index e2004d6c36..b8967e41c0 100644 --- a/docs/build/smart-contracts/getting-started/README.mdx +++ b/docs/build/smart-contracts/getting-started/README.mdx @@ -7,6 +7,14 @@ sidebar_position: 20 # Getting Started +:::tip + +Start with [Scaffold Stellar](https://scaffoldstellar.org/docs/quick-start) for the fastest path to a working dApp on Stellar. Scaffold Stellar is a toolkit that bundles a CLI, contract templates, a smart contract registry, and a modern frontend for building full-stack dApps. + +_Use this getting started guide for a lower-level tour of Stellar smart contract development from the main Stellar CLI._ + +::: + import DocCardList from "@theme/DocCardList"; Dive into smart contract development with this Getting Started tutorial. diff --git a/docs/build/smart-contracts/getting-started/deploy-increment-contract.mdx b/docs/build/smart-contracts/getting-started/deploy-increment-contract.mdx index 4e7324d300..be983fae9d 100644 --- a/docs/build/smart-contracts/getting-started/deploy-increment-contract.mdx +++ b/docs/build/smart-contracts/getting-started/deploy-increment-contract.mdx @@ -35,7 +35,7 @@ If the contract has not been build yet, run the build command `stellar contract stellar contract upload \ --network testnet \ --source-account alice \ - --wasm target/wasm32v1-none/release/soroban_increment_contract.wasm + --wasm target/wasm32v1-none/release/increment.wasm ``` @@ -46,7 +46,7 @@ stellar contract upload \ stellar contract upload ` --network testnet ` --source-account alice ` - --wasm target/wasm32v1-none/release/soroban_increment_contract.wasm + --wasm target/wasm32v1-none/release/increment.wasm ``` diff --git a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx index 9d5607d134..73f605ad5a 100644 --- a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx +++ b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx @@ -15,10 +15,9 @@ To recap what we've done so far, in [Setup](setup.mdx): - we set up our local environment to write Rust smart contracts - installed the stellar-cli -- configured the stellar-cli to communicate with the Stellar Testnet via RPC -- and configured an identity to sign transactions +- created a `hello-world` project, then tested and built the `HelloWorld` contract -In [Hello World](./hello-world.mdx) we created a `hello-world` project, and learned how to test and build the `HelloWorld` contract. Now we are ready to deploy that contract to Testnet, and interact with it. +In this guide, we’ll generate a Testnet-funded identity, deploy the contract to Testnet, and interact with it using the Stellar CLI. ## Configure a Source Account @@ -78,7 +77,7 @@ This returns the contract's id, starting with a `C`. In this example, we're goin :::tip -We used the `--alias` flag in this deploy command which will create a `.stellar/contract-ids/hello_world.json` file that maps the alias `hello_world` to the contract id and network. This allows us to refer to this contract as its alias instead the contract id. +We used the `--alias` flag in this deploy command which will create a `~/.config/stellar/contract-ids/hello_world.json` file that maps the alias `hello_world` to the contract id and network. This allows us to refer to this contract as its alias instead the contract id. ::: diff --git a/docs/build/smart-contracts/getting-started/hello-world-frontend.mdx b/docs/build/smart-contracts/getting-started/hello-world-frontend.mdx index ce614203e6..91f2ec456e 100644 --- a/docs/build/smart-contracts/getting-started/hello-world-frontend.mdx +++ b/docs/build/smart-contracts/getting-started/hello-world-frontend.mdx @@ -55,12 +55,6 @@ extra-escape └── tsconfig.json ``` -Since we already deployed these contracts with aliases, we can reuse the generated contract ID files by copying them from the `soroban-hello-world/.stellar` directory into this project: - -```sh -cp -R ../.stellar/ .stellar -``` - ## Generate an NPM package for the Hello World contract Before we open the new frontend files, let's generate an NPM package for the Hello World contract. This is our suggested way to interact with contracts from frontends. These generated libraries work with any JavaScript project (not a specific UI like React), and make it easy to work with some of the trickiest bits of smart contracts on Stellar, like encoding [XDR](../../../learn/fundamentals/contract-development/types/fully-typed-contracts.mdx). diff --git a/docs/build/smart-contracts/getting-started/hello-world.mdx b/docs/build/smart-contracts/getting-started/hello-world.mdx index 4206fc831c..5fbdc451bd 100644 --- a/docs/build/smart-contracts/getting-started/hello-world.mdx +++ b/docs/build/smart-contracts/getting-started/hello-world.mdx @@ -307,7 +307,7 @@ stellar contract build :::tip -If you get an error like `can't find crate for 'core'`, it means you didn't install the wasm32 target during the [setup step](./setup.mdx#install-the-target). You can do so by running `rustup target add wasm32v1-none` (use `rustup target add wasm32v1-none` for Rust versions **older than** `v1.85.0`). +If you get an error like `can't find crate for 'core'`, it means you didn't install the wasm32 target during the [setup step](./setup.mdx#install-the-target). You can do so by running `rustup target add wasm32v1-none` (reminder, this requires Rust `v1.84.0` or higher). ::: diff --git a/docs/build/smart-contracts/getting-started/setup.mdx b/docs/build/smart-contracts/getting-started/setup.mdx index ff7adf11d8..8e764f14bd 100644 --- a/docs/build/smart-contracts/getting-started/setup.mdx +++ b/docs/build/smart-contracts/getting-started/setup.mdx @@ -58,14 +58,34 @@ For other methods of installing [Rust], see: https://www.rust-lang.org/tools/ins +Stellar smart contracts require **Rust toolchain `v1.84.0` or higher**, as the `wasm32v1-none` target is only available in recent versions. + +To check your version: + +```sh +rustc --version +``` + +If you need to update: + +```sh +rustup update stable +``` + ## Install the target -You'll need a "target" for which your smart contract will be compiled. For Rust `v1.84.0` or higher, install the `wasm32v1-none` target. +You'll need a "target" for which your smart contract will be compiled. Install the `wasm32v1-none` target (again, this requires Rust `v1.84.0` or higher). ```sh rustup target add wasm32v1-none ``` +:::note + +When you install Rust, the WebAssembly target is installed per-toolchain. If you update your Rust version, you'll need to reinstall the `wasm32v1-none` target for the new toolchain. + +::: + You can learn more about the finer points of what this target brings to the table, in our page all about the [Stellar Rust dialect](../../../learn/fundamentals/contract-development/rust-dialect.mdx#limited-webassembly-features). This page describes the subset of Rust functionality that is available to you within Stellar smart contract environment. ## Configure an editor @@ -95,6 +115,12 @@ There are a few ways to install the [latest release](https://github.com/stellar/ +Install using script (macOS, Linux): + +```sh +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Install with Homebrew (macOS, Linux): ```sh @@ -108,6 +134,12 @@ Install with cargo from source: +Install using script (macOS, Linux): + +```sh +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Install with Homebrew (macOS, Linux): ```sh diff --git a/docs/build/smart-contracts/overview.mdx b/docs/build/smart-contracts/overview.mdx index e3916f174c..daca69ff8e 100644 --- a/docs/build/smart-contracts/overview.mdx +++ b/docs/build/smart-contracts/overview.mdx @@ -17,7 +17,7 @@ For a comprehensive introduction to Stellar smart contracts, view the [Smart Con Write your first smart contract on Stellar using the [Getting Started Guide](./getting-started/setup.mdx). -## Rust on Stellar +## Developing Smart Contracts Stellar smart contracts have several characteristics (such as resource limits, security considerations, and more) that force contracts to use only a narrow subset of the full Rust language and must use specialized libraries for most tasks. @@ -45,7 +45,7 @@ The Soroban SDK CLI tool provides a developer-focused front-end for: - Versioning - Deploying -It also includes a complete implementation of the contract host environment that is identical to the one that runs on-chain, called [local testing mode](/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging#local-testing-mode). With this capability, contracts can be run locally on a developer's workstation and can be tested and debugged directly with a local debugger within a standard IDE, as well as a native test harness for fast-feedback unit testing and high-speed fuzzing or property testing. +It also includes a complete implementation of the contract host environment that is identical to the one that runs on-chain, called [local testing mode](../../learn/fundamentals/contract-development/errors-and-debugging/debugging.mdx#local-testing-mode). With this capability, contracts can be run locally on a developer's workstation and can be tested and debugged directly with a local debugger within a standard IDE, as well as a native test harness for fast-feedback unit testing and high-speed fuzzing or property testing. ## Host environment diff --git a/docs/data/CONTRIBUTING.md b/docs/data/CONTRIBUTING.md new file mode 100644 index 0000000000..c2229f9a47 --- /dev/null +++ b/docs/data/CONTRIBUTING.md @@ -0,0 +1,8 @@ +# STOP WHAT YOU'RE DOING + +If you're here to make some fixes to Stellar's API documentation (first, thank +you!), you probably don't want to be in this location. Most of the API +documentation located here has been generated by the `.yml` files contained in +the `/openapi` directory. Unless you're working on something that's _outside_ +the `/api/resources` directory, you'll probably want to check in `/openapi` +instead of here. diff --git a/docs/data/README.mdx b/docs/data/README.mdx index 36e682c70f..1421fd61b3 100644 --- a/docs/data/README.mdx +++ b/docs/data/README.mdx @@ -1,5 +1,6 @@ --- title: Data Overview +sidebar_position: 0 --- There are several products to choose from when interacting with the Stellar Network, and each one is optimized for different access patterns, so it's important to choose the right tool based on your specific use-case. These tools allow users to query network data, submit transactions, and interact with smart contracts without needing to understand the low-level details of Stellar Core. diff --git a/docs/data/READ_FIRST.md b/docs/data/READ_FIRST.md deleted file mode 100644 index a667667d69..0000000000 --- a/docs/data/READ_FIRST.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -draft: true ---- - -# STOP WHAT YOU'RE DOING - -If you're here to make some fixes to Stellar's API documentation (first, thank -you!), you probably don't want to be in this location. Most of the API -documentation located here has been generated by the `.yml` files contained in -the `/openapi` directory. Unless you're working on something that's _outside_ -the `/api/resources` directory, you'll probably want to check in `/openapi` -instead of here. diff --git a/docs/data/analytics/hubble/README.mdx b/docs/data/analytics/hubble/README.mdx index aa70d1edd6..5758569301 100644 --- a/docs/data/analytics/hubble/README.mdx +++ b/docs/data/analytics/hubble/README.mdx @@ -11,7 +11,7 @@ This guide describes when to use Hubble and how to connect. To view the underlyi ## Why Use Hubble? -Some questions are hard to answer with the RPC API as it's API is quite minimal. This is because its infrastructure is optimized for quick reads and writes so that it can process online transactions. +Some questions are hard to answer with the RPC API as its API is quite minimal. This is because its infrastructure is optimized for quick reads and writes so that it can process online transactions. This is where Hubble comes in. It is optimized to execute complex queries and scan large amounts of data. Hubble can store orders of magnitude more data than RPC and will not run into storage constraints. Queries that require pagination in RPC or timeout can be returned in a single query. Hubble empowers users to explore, analyze, and derive meaningful conclusions from the data without the burden of maintaining a database. diff --git a/docs/data/analytics/hubble/analyst-guide/creating-visualizations.mdx b/docs/data/analytics/hubble/analyst-guide/creating-visualizations.mdx index b25d94a9b4..c043e10740 100644 --- a/docs/data/analytics/hubble/analyst-guide/creating-visualizations.mdx +++ b/docs/data/analytics/hubble/analyst-guide/creating-visualizations.mdx @@ -29,13 +29,13 @@ By the end of the tutorial you will have created two graphs that will help visua -As you can see, persistent contract data entries account for roughly 25% of all contract data entries with the rest being temporary. There are also a lot more expired temporary contract data entries. This is expected because temporay entries cannot be bumped whereas persistent entries can be bumped/restored. For more information, you can read about [State Archival and the Contract Data Lifecycle](https://developers.stellar.org/docs/learn/encyclopedia/storage/state-archival#contract-data-type-descriptions). +As you can see, persistent contract data entries account for roughly 25% of all contract data entries with the rest being temporary. There are also a lot more expired temporary contract data entries. This is expected because temporay entries cannot be bumped whereas persistent entries can be bumped/restored. For more information, you can read about [State Archival and the Contract Data Lifecycle](../../../../learn/fundamentals/contract-development/storage/state-archival.mdx#contract-data-type-descriptions). ## Prerequisites 1. Make sure you have connected to Hubble by following the instructions in the [Connecting](../developer-guide/connecting-to-bigquery/README.mdx) page 2. You have access to [Google Looker Studio](https://cloud.google.com/looker-studio?hl=en) -3. You have read and understand the general [Best Practices](https://developers.stellar.org/docs/data/hubble/analyst-guide/optimizing-queries#best-practices) for querying BigQuery data +3. You have read and understand the general [Best Practices](./optimizing-queries.mdx#best-practices) for querying BigQuery data ## Create a Report in Looker Studio diff --git a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx index 5b72dd530e..f113d4b3e4 100644 --- a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx +++ b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx @@ -24,7 +24,7 @@ description: "" | buying_liabilities | The sum of all buy offers owned by this account for XLM only | float | | Yes | The `accounts` table only reports monetary balances for XLM. Any other asset class is reported in the `trust_lines` table. For buy offers, the account must hold the amount of asset to complete the transaction | | selling_liabilities | The sum of all sell offers owned by this account for XLM only | float | | Yes | The `accounts` table only reports monetary balances for XLM. Any other asset class is reported in the `trust_lines` table. | | sequence_number | The account's current sequence number. The sequence number controls operations applied to an account. Operations must submit a unique sequence number that is incremented by 1 in order to apply the operation to the account so that account changes will not collide within a ledger | integer | | Yes | | -| num_subentries | The total number of ledger entries connected to this account. Ledger entries include: trustlines, offers, signers, and data entries. (Claimable balances are counted under sponsoring entries, not subentries). Any newly created trustline, offer, signer or data entry will increase the number of subentries by 1. Accounts may have up to 1,000 subentries | integer | | Yes | Each entry on a ledger takes up space, which is expensive to store on the blockchain. For each entry, an account is required to hold a [minimum XLM balance](https://developers.stellar.org/docs/learn/glossary#minimum-balance). The reserve is calculated by (2 + num_subentries - num_sponsoring + num_sponsored) \* 0.5XLM | +| num_subentries | The total number of ledger entries connected to this account. Ledger entries include: trustlines, offers, signers, and data entries. (Claimable balances are counted under sponsoring entries, not subentries). Any newly created trustline, offer, signer or data entry will increase the number of subentries by 1. Accounts may have up to 1,000 subentries | integer | | Yes | Each entry on a ledger takes up space, which is expensive to store on the blockchain. For each entry, an account is required to hold a [minimum XLM balance](../../../../../../learn/glossary.mdx#minimum-balance). The reserve is calculated by (2 + num_subentries - num_sponsoring + num_sponsored) \* 0.5XLM | | inflation_destination | Deprecated: The account address to receive an inflation payment when they are disbursed on the network. | string | | Yes | Inflation was discontinued in 2019 by validator vote. | | flags | Denotes the enabling and disabling of certain asset issuer privileges | integer |
  • 0 - None, Default
  • 1 - Auth Required (all trustlines by default are untrusted and require manual trust established)
  • 2 - Auth Revocable (allows trustlines to be revoked if account no longer trusts asset)
  • 4 - Auth Immutable (all auth flags are read only when set)
  • 8 - Auth Clawback Enabled (asset can be clawed back from the user)
| Yes | Flags are set on the issuer accounts for an asset. When user accounts trust an asset, the flags applied to the asset originate from this account | | home_domain | The domain that hosts this account's stellar.toml file | string | | Yes | Only applies to asset issuer accounts. The stellar.toml file contains metadata about the asset issuer which helps identify who the issuer is and instills trust in the asset | @@ -41,8 +41,8 @@ description: "" | batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | | batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | Yes | | | sponsor | The account address of the sponsor who is paying the reserves for this account. | string | | No | | -| num_sponsored | The number of reserves sponsored for this account (meaning another account is paying for the minimum balance). Sponsored entries do not incur any reserve requirement on the account that owns the entry. | integer | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves). | -| num_sponsoring | The number of reserves sponsored by this account. Entries sponsored by this account incur a reserve requirement | integer | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves). | +| num_sponsored | The number of reserves sponsored for this account (meaning another account is paying for the minimum balance). Sponsored entries do not incur any reserve requirement on the account that owns the entry. | integer | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](../../../../../../build/guides/transactions/sponsored-reserves.mdx). | +| num_sponsoring | The number of reserves sponsored by this account. Entries sponsored by this account incur a reserve requirement | integer | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](../../../../../../build/guides/transactions/sponsored-reserves.mdx). | | sequence_ledger | The unsigned 32-bit ledger number of the sequence number's age | integer | | No | Reflects the last time an account touched its sequence number. Note that even if the Bump Sequence operation has no effect, eg it does not increase the sequence number, it still counts as a "touch" | | sequence_time | The UNIX timestamp of the sequence number's age | timestamp | | No | Reflects the last time an account touched its sequence number. Note that even if the Bump Sequence operation has no effect, eg it does not increase the sequence number, it still counts as a "touch" | diff --git a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx index 993ab77c79..254d52a5b3 100644 --- a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx +++ b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx @@ -148,7 +148,7 @@ description: "" | batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | Yes | | | closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | Yes | We are aiming to repartition this table on closed_at | | operation_result_code | The result code returned when an operation is applied. This code is helpful for understanding failed operations | string |
  • OperationResultCodeOpInner
  • OperationResultCodeOpBadAuth
  • OperationResultCodeOpNoAccount
  • OperationResultCodeOpNotSupported
  • OperationResultCodeOpTooManySubentries
  • OperationResultCodeOpExceededWorkLimit
  • OperationResultCodeOpTooManySponsoring
| Yes | Field will be backfilled at a future date | -| operation_trace_code | The trace code returned when an operation is applied to the Stellar Network. This code is helpful for understanding nuanced failures by operation type. This code provides the lowest level detail regarding why a transaction fails | string |
  • InvokeHostFunctionResultCodeInvokeHostFunctionSuccess
  • Malformed
  • Trapped
  • ResourceLimitExceeded
  • EntryArchived
  • InsufficientRefundableFee
  • ExtendFootprintTtlResultCodeExtendFootprintTtlSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
  • RestoreFootprintResultCodeRestoreFootprintSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
| Yes | See the XDR [documentation](https://pkg.go.dev/github.com/stellar/go/xdr#OperationResultTr) for more details | +| operation_trace_code | The trace code returned when an operation is applied to the Stellar Network. This code is helpful for understanding nuanced failures by operation type. This code provides the lowest level detail regarding why a transaction fails | string |
  • InvokeHostFunctionResultCodeInvokeHostFunctionSuccess
  • Malformed
  • Trapped
  • ResourceLimitExceeded
  • EntryArchived
  • InsufficientRefundableFee
  • ExtendFootprintTtlResultCodeExtendFootprintTtlSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
  • RestoreFootprintResultCodeRestoreFootprintSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
| Yes | See the XDR [documentation](https://pkg.go.dev/github.com/stellar/go-stellar-sdk/xdr#OperationResultTr) for more details | | details_json | Record that contains details based on the type of operation executed. Each operation will return its own relevant details, with the rest of the details as null | json | | | | diff --git a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx index e2d5d36912..ea1cc3448c 100644 --- a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx +++ b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx @@ -54,7 +54,7 @@ description: "" | soroban_resources_read_bytes | Number of bytes read by the Soroban transaction | integer | | No | | | soroban_resources_write_bytes | Number of bytes written by the Soroban transaction | integer | | No | | | closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | Yes | We aim to repartition the table by closed_at | -| transaction_result_code | The detailed result code that outlines why a transaction failed. This code is only useful for failed transactions. The full list of domain values can be found [here](https://pkg.go.dev/github.com/stellar/go/xdr#TransactionResultCode) | string |
  • TransactionResultCodeTxFeeBumpInnerSuccess
  • TransactionResultCodeTxSuccess
  • TransactionResultCodeTxFailed
  • TransactionResultCodeTxTooEarly
  • TransactionResultCodeTxTooLate
  • TransactionResultCodeTxMissingOperation
  • TransactionResultCodeTxBadSeq
  • TransactionResultCodeTxBadAuth
  • TransactionResultCodeTxInsufficientBalance
  • TransactionResultCodeTxNoAccount
  • TransactionResultCodeTxInsufficientFee
  • TransactionResultCodeTxBadAuthExtra
  • TransactionResultCodeTxInternalError
  • TransactionResultCodeTxNotSupported
  • TransactionResultCodeTxFeeBumpInnerFailed
  • TransactionResultCodeTxBadSponsorship
  • TransactionResultCodeTxBadMinSeqAgeOrGap
  • TransactionResultCodeTxMalformed
  • TransactionResultCodeTxSorobanInvalid
| Yes | | +| transaction_result_code | The detailed result code that outlines why a transaction failed. This code is only useful for failed transactions. The full list of domain values can be found [here](https://pkg.go.dev/github.com/stellar/go-stellar-sdk/xdr#TransactionResultCode) | string |
  • TransactionResultCodeTxFeeBumpInnerSuccess
  • TransactionResultCodeTxSuccess
  • TransactionResultCodeTxFailed
  • TransactionResultCodeTxTooEarly
  • TransactionResultCodeTxTooLate
  • TransactionResultCodeTxMissingOperation
  • TransactionResultCodeTxBadSeq
  • TransactionResultCodeTxBadAuth
  • TransactionResultCodeTxInsufficientBalance
  • TransactionResultCodeTxNoAccount
  • TransactionResultCodeTxInsufficientFee
  • TransactionResultCodeTxBadAuthExtra
  • TransactionResultCodeTxInternalError
  • TransactionResultCodeTxNotSupported
  • TransactionResultCodeTxFeeBumpInnerFailed
  • TransactionResultCodeTxBadSponsorship
  • TransactionResultCodeTxBadMinSeqAgeOrGap
  • TransactionResultCodeTxMalformed
  • TransactionResultCodeTxSorobanInvalid
| Yes | | | inclusion_fee_bid | The maximum bid the submitter is willing to pay for inclusion of the transaction. This fee is used to prioritize transactions that are included in the ledger. | integer | | No | | | inclusion_fee_charged | The fee charged for the transaction to be included in the ledger. This is a fixed fee for the entire ledger and starts at a minimum of 100 stroops. The fee increases based on demand | integer | | No | | | resource_fee_refund | The amount of the resource fee refunded to the transaction submitter. The refundable fees are calculated from rent, events and return value. Refundable fees are charged from the source account before the transaction is executed and then refunded based on the actual usage. | integer | | No | | diff --git a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx index a6a5fefd6e..e0513e283f 100644 --- a/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx +++ b/docs/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx @@ -19,7 +19,7 @@ description: "" | Name | Description | Data Type | Domain Values | Required? | Notes | | --- | --- | --- | --- | --- | --- | -| liquidity_pool_id | Unique identifier for a liquidity pool. There cannot be duplicate pools for the same asset pair. Once a pool has been created for the asset pair, another cannot be created. | string | | Yes | There is a good primer on AMMs [here](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools#liquidity-pools) | +| liquidity_pool_id | Unique identifier for a liquidity pool. There cannot be duplicate pools for the same asset pair. Once a pool has been created for the asset pair, another cannot be created. | string | | Yes | There is a good primer on AMMs [here](../../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx#liquidity-pools) | | type | The mechanism that calculates pricing and division of shares for the pool. With the initial AMM rollout, the only type of liquidity pool allowed to be created is a constant product pool | string | constant_product | Yes | For more information regarding pricing and deposit calculations, read [Cap-38.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0038.md) | | fee | The number of basis points charged as a percentage of the trade in order to complete the transaction. The fees earned on all trades are divided amongst pool shareholders and distributed as an incentive to keep money in the pools | integer | 30 | Yes | Fees are distributed immediately to accounts as the transaction completes. There is no schedule for fee distribution | | trustline_count | Total number of accounts with trustlines authorized to the pool. To create a trustline, an account must trust both base assets before trusting a pool with the asset pair | integer | | Yes | If the issuer of A or B revokes authorization on the trustline, the account will automatically withdraw from every liquidity pool containing that asset and those pool trustlines will be deleted. | diff --git a/docs/data/analytics/hubble/developer-guide/README.mdx b/docs/data/analytics/hubble/developer-guide/README.mdx index b1adb25b53..2454be0ccf 100644 --- a/docs/data/analytics/hubble/developer-guide/README.mdx +++ b/docs/data/analytics/hubble/developer-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Developer Guide sidebar_position: 15 +sidebar_key: hubble-developer-guide --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/horizon/README.mdx b/docs/data/apis/horizon/README.mdx index de14396114..4675889855 100644 --- a/docs/data/apis/horizon/README.mdx +++ b/docs/data/apis/horizon/README.mdx @@ -17,7 +17,7 @@ Horizon provides an HTTP API to data in the Stellar network. It ingests and re-s Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](../../../tools/sdks/README.mdx). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. -This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). +This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). Before we begin, it's worth reiterating the sentiment echoed in the [Core Node](../../../validators/README.mdx) documentation: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead manages its own, pared-down version of Stellar Core optimized for its own subset of needs (we'll refer to this as a "Captive Core" instance). diff --git a/docs/data/apis/horizon/admin-guide/README.mdx b/docs/data/apis/horizon/admin-guide/README.mdx index c48bbbe6f2..f991dd8726 100644 --- a/docs/data/apis/horizon/admin-guide/README.mdx +++ b/docs/data/apis/horizon/admin-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Admin Guide sidebar_position: 15 +sidebar_key: horizon-admin-guide --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/horizon/admin-guide/configuring.mdx b/docs/data/apis/horizon/admin-guide/configuring.mdx index dd53a7450c..2b7739f3fd 100644 --- a/docs/data/apis/horizon/admin-guide/configuring.mdx +++ b/docs/data/apis/horizon/admin-guide/configuring.mdx @@ -3,8 +3,6 @@ title: Configuring sidebar_position: 30 --- -import { Alert } from "@site/src/components/Alert"; - ## Prerequisites - You have identified the [installation](./installing.mdx) method for the host system: @@ -108,18 +106,21 @@ This config parameter is optional, it determines the maximum sliding window of h The `stellar-horizon` binary searches process environment variables for configuration. Depending on how Horizon was installed, the method you perform to configure the process environment will differ: -- Bare-metal - - Non-package manager: use O/S environment variables to pass configurations. There are many tools you can use to manage them, such as [direnv](http://direnv.net/) or [dotenv](https://github.com/bkeepers/dotenv). - - [Package manager](./installing.mdx#package-manager): the provided `stellar-horizon-cmd` wrapper will start a new process and create environment variables in the process from `/etc/default/stellar-horizon` and then launch the 'stellar-horizon'. To set configurations, edit the file at `/etc/default/stellar-horizon`. - - This script invokes Horizon with the `stellar` user, so make sure that - permissions for the user are set up accordingly. The current working - directory should be writable for this user and the user should be able to - execute the `stellar-horizon` and `stellar-core` binaries; etc. - -- Containerized - - Non-Helm: pass all configuration parameters to the horizon docker image as [docker environment variables](https://docs.docker.com/engine/reference/commandline/run/#env). - - Helm: pass all configuration parameters in the [Helm install command](https://helm.sh/docs/helm/helm_install/) as a values file. +### Bare-metal + +- Non-package manager: use O/S environment variables to pass configurations. There are many tools you can use to manage them, such as [direnv](http://direnv.net/) or [dotenv](https://github.com/bkeepers/dotenv). +- [Package manager](./installing.mdx#package-manager): the provided `stellar-horizon-cmd` wrapper will start a new process and create environment variables in the process from `/etc/default/stellar-horizon` and then launch the 'stellar-horizon'. To set configurations, edit the file at `/etc/default/stellar-horizon`. + + :::info + + This script invokes Horizon with the `stellar` user, so make sure that permissions for the user are set up accordingly. The current working directory should be writable for this user and the user should be able to execute the `stellar-horizon` and `stellar-core` binaries; etc. + + ::: + +### Containerized + +- Non-Helm: pass all configuration parameters to the horizon docker image as [docker environment variables](https://docs.docker.com/engine/reference/commandline/run/#env). +- Helm: pass all configuration parameters in the [Helm install command](https://helm.sh/docs/helm/helm_install/) as a values file. ## Initialize Horizon Database diff --git a/docs/data/apis/horizon/admin-guide/ingestion-filtering.mdx b/docs/data/apis/horizon/admin-guide/ingestion-filtering.mdx index 87808668c5..076f1fc638 100644 --- a/docs/data/apis/horizon/admin-guide/ingestion-filtering.mdx +++ b/docs/data/apis/horizon/admin-guide/ingestion-filtering.mdx @@ -41,10 +41,10 @@ Filtering is enabled by default with no filter rules defined. When no filter rul - enable Horizon admin port with environmental configuration parameter `ADMIN_PORT=XXXXX`, this will allow you to access the port. - define filter whitelists. submit Admin HTTP API requests to view and update the filter rules: - Refer to the [Horizon Admin API Docs](https://github.com/stellar/go/blob/master/services/horizon/internal/httpx/static/admin_oapi.yml) which are also published on Horizon running instances as Open API 3.0 doc on the Admin Port when enabled at `http://localhost:/`. You can paste the contents from that url into any OAPI tool such as [Swagger](https://editor.swagger.io/) which will render a visual explorer of the API endpoints. On the swagger editor you can also load the published Horizon admin.oapi.yml directly as a url, choose `File->Import URL`: + Refer to the [Horizon Admin API Docs](https://github.com/stellar/stellar-horizon/blob/main/internal/httpx/static/admin_oapi.yml) which are also published on Horizon running instances as Open API 3.0 doc on the Admin Port when enabled at `http://localhost:/`. You can paste the contents from that url into any OAPI tool such as [Swagger](https://editor.swagger.io/) which will render a visual explorer of the API endpoints. On the swagger editor you can also load the published Horizon admin.oapi.yml directly as a url, choose `File->Import URL`: ``` - https://raw.githubusercontent.com/stellar/go/master/services/horizon/internal/httpx/static/admin_oapi.yml + https://raw.githubusercontent.com/stellar/stellar-horizon/main/internal/httpx/static/admin_oapi.yml ``` Follow details and examples of request/response payloads to read and update the filter rules for these endpoints: diff --git a/docs/data/apis/horizon/admin-guide/ingestion.mdx b/docs/data/apis/horizon/admin-guide/ingestion.mdx index 05ddf11a2b..88c684176a 100644 --- a/docs/data/apis/horizon/admin-guide/ingestion.mdx +++ b/docs/data/apis/horizon/admin-guide/ingestion.mdx @@ -3,8 +3,6 @@ title: Ingestion sidebar_position: 45 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Horizon API provides most of its utility through ingested data, and your Horizon server can be configured to listen for and ingest transaction results from the Stellar network. Ingestion enables API access to both current state (e.g. someone's balance) and historical state (e.g. someone's transaction history). ## Ingestion Types diff --git a/docs/data/apis/horizon/admin-guide/installing.mdx b/docs/data/apis/horizon/admin-guide/installing.mdx index e244cd4824..8e4bde1bca 100644 --- a/docs/data/apis/horizon/admin-guide/installing.mdx +++ b/docs/data/apis/horizon/admin-guide/installing.mdx @@ -3,21 +3,19 @@ title: Installing sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - To install Horizon in production or non-development environments, we recommend the following based on target infrastructure: ### Bare-Metal - If host is Debian Linux, install prebuilt binaries [from repositories](#package-manager) using a package manager. -- For any other hosts, download [prebuilt release binaries](#prebuilt-releases) of Stellar Horizon and Core for host target architecture and operation system or [compile from the source](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md#building-horizon). +- For any other hosts, download [prebuilt release binaries](#prebuilt-releases) of Stellar Horizon and Core for host target architecture and operation system or [compile from the source](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). ### Containerized - Non-Orchestrated: if the target deployment environment does not include a container orchestrator such as Kubernetes, then this means you intend to run the Horizon release image from [dockerhub.com/stellar/stellar-horizon](https://hub.docker.com/r/stellar/stellar-horizon) as a container directly with Docker daemon on host. Choose the tag of the Horizon image for the specific release version and then pull the image using `docker pull stellar/stellar-horizon:` to get it locally onto host. - Orchestrated: when the target environment has container orchestration, such as Kubernetes cluster, we recommend using the [Horizon Helm Chart](https://github.com/stellar/helm-charts/tree/main/charts/horizon) to manage the installation and deployment lifecycle of the Horizon image as container(s) on the cluster. -To install Horizon in development environments, refer to the [Horizon README](https://github.com/stellar/go/blob/master/services/horizon/README.md#try-it-out) from the source code repo for options available. +To install Horizon in development environments, refer to the [Horizon README](https://github.com/stellar/stellar-horizon) from the source code repo for options available. ### Notes on Installation @@ -38,7 +36,7 @@ sudo apt install stellar-horizon stellar-core #### Prebuilt Releases -Refer to the list of [Horizon releases](https://github.com/stellar/go/releases) and [Core releases](https://github.com/stellar/stellar-core/releases). Copy the binaries to host PATH. +Refer to the list of [Horizon releases](https://github.com/stellar/stellar-horizon/releases) and [Core releases](https://github.com/stellar/stellar-core/releases). Copy the binaries to host PATH. #### Verify Bare-Metal Installations diff --git a/docs/data/apis/horizon/admin-guide/monitoring.mdx b/docs/data/apis/horizon/admin-guide/monitoring.mdx index 2b0389e439..47377bef08 100644 --- a/docs/data/apis/horizon/admin-guide/monitoring.mdx +++ b/docs/data/apis/horizon/admin-guide/monitoring.mdx @@ -3,8 +3,6 @@ title: Monitoring sidebar_position: 60 --- -import { CodeExample } from "@site/src/components/CodeExample"; - ## Metrics Metrics are emitted from Horizon over HTTP in [the de facto text-based exposition format](https://github.com/prometheus/docs/blob/main/content/docs/instrumenting/exposition_formats.md#text-based-format). The Metrics are published on the _private_ `/metrics` path of Horizon Admin port, which is an optional service to be started and will be bound by the Horizon process onto the host machine loopback network(localhost or 127.0.0.1). To enable the Admin port, add environment configuration parameter `ADMIN_PORT=XXXXX`, the metrics endpoint will be reachable on the host machine as `localhost:/metrics`. You can verify this by pointing any browser that can reach this address, it will print out all metrics keys. diff --git a/docs/data/apis/horizon/admin-guide/overview.mdx b/docs/data/apis/horizon/admin-guide/overview.mdx index af7dba1a66..afe932c9a0 100644 --- a/docs/data/apis/horizon/admin-guide/overview.mdx +++ b/docs/data/apis/horizon/admin-guide/overview.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 Horizon is a central component of the Stellar platform: it provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. -This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). +This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/stellar-horizon/blob/main/internal/docs/DEVELOPING.md). Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](../../../../validators/README.mdx) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead manages its own, pared-down version of Stellar Core optimized for its own subset of needs (we'll refer to this as a "Captive Core" instance). diff --git a/docs/data/apis/horizon/admin-guide/running.mdx b/docs/data/apis/horizon/admin-guide/running.mdx index 2877ec23c6..9ce38a74ec 100644 --- a/docs/data/apis/horizon/admin-guide/running.mdx +++ b/docs/data/apis/horizon/admin-guide/running.mdx @@ -3,8 +3,6 @@ title: Running sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Once you have [established the Horizon database](./configuring.mdx#initialize-horizon-database) and have [identified the Horizon runtime config per host](./configuring.mdx#prerequisites), you're ready to run Horizon. ## Bare-metal installation diff --git a/docs/data/apis/horizon/admin-guide/scaling.mdx b/docs/data/apis/horizon/admin-guide/scaling.mdx index a80602aca4..35dd650501 100644 --- a/docs/data/apis/horizon/admin-guide/scaling.mdx +++ b/docs/data/apis/horizon/admin-guide/scaling.mdx @@ -42,7 +42,7 @@ Horizon allows you to independently configure the different [roles](./configurin - Each "role" Horizon plays can be independently scaled - API instances are significantly ligher weight from a hardware requirements perspective, since they do not need to run captive core - API instances can be horizontally scaled or dynamically scaled, based on your specific end-user needs -- Ingestion and it's performance is isolated from API activity, so bursts in user activity cannot degrade it and cause ingestion lag. Ingestion health is critical, as degredations in performance can result in falling behind the last closed ledger, leaving your end-users unaware of the current state of the network, and unable to successfully submit new transactions +- Ingestion and its performance is isolated from API activity, so bursts in user activity cannot degrade it and cause ingestion lag. Ingestion health is critical, as degredations in performance can result in falling behind the last closed ledger, leaving your end-users unaware of the current state of the network, and unable to successfully submit new transactions The Horizon API role requires only read-only permissions to a database for all actions it performs. However, the API instances will need to delegate all transaction submission requests to an instance which runs captive core. Further database replicas could be added if necessary to support more requests. diff --git a/docs/data/apis/horizon/admin-guide/upgrading.mdx b/docs/data/apis/horizon/admin-guide/upgrading.mdx index 420ce0a447..a2178d5f01 100644 --- a/docs/data/apis/horizon/admin-guide/upgrading.mdx +++ b/docs/data/apis/horizon/admin-guide/upgrading.mdx @@ -3,9 +3,6 @@ title: Upgrading sidebar_position: 80 --- -import { Alert } from "@site/src/components/Alert"; -import { CodeExample } from "@site/src/components/CodeExample"; - Here we'll describe the recommended steps for upgrading a Horizon 2.x installation. ### Pre-requisites @@ -42,7 +39,7 @@ Here we'll describe the recommended steps for upgrading a Horizon 2.x installati ### Determine the target version for upgrade -Now that you know your current Horizon version, visit [Horizon Releases](https://github.com/stellar/go/releases) and choose the next greater version above your current version to upgrade. Follow steps [recommended by GitHub to compare releases](https://docs.github.com/en/repositories/releasing-projects-on-github/comparing-releases), click on the `Compare` dropdown of the chosen release, and then select your current release and GH will display the differences between versions, select the `Files changed` tab, and go to the `services/horizon/CHANGELOG.md`, it will highlight the new release notes for changes that have occurred between your current version and the new version you selected. Review this and look for any `Breaking Changes`, `State Rebuild` and `DB Schema Migration` sections for consideration, as the latter two will also mention expected time for the state rebuild or db migration to apply respectively. +Now that you know your current Horizon version, visit [Horizon Releases](https://github.com/stellar/stellar-horizon/releases) and choose the next greater version above your current version to upgrade. Follow steps [recommended by GitHub to compare releases](https://docs.github.com/en/repositories/releasing-projects-on-github/comparing-releases), click on the `Compare` dropdown of the chosen release, and then select your current release and GH will display the differences between versions, select the `Files changed` tab, and go to the `services/horizon/CHANGELOG.md`, it will highlight the new release notes for changes that have occurred between your current version and the new version you selected. Review this and look for any `Breaking Changes`, `State Rebuild` and `DB Schema Migration` sections for consideration, as the latter two will also mention expected time for the state rebuild or db migration to apply respectively. ### Install the new version diff --git a/docs/data/apis/horizon/api-reference/README.mdx b/docs/data/apis/horizon/api-reference/README.mdx index 9607fb47fc..6c64025420 100644 --- a/docs/data/apis/horizon/api-reference/README.mdx +++ b/docs/data/apis/horizon/api-reference/README.mdx @@ -1,6 +1,7 @@ --- title: API Reference sidebar_position: 20 +sidebar_key: horizon-api-reference --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx b/docs/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx index f3b4c4a5b1..9a1aef5d87 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx @@ -3,8 +3,6 @@ title: Fee Stats sidebar_position: 50 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Fee stats are used to predict what fee to set for a transaction before submitting it to the network. diff --git a/docs/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx b/docs/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx index 058cd1b50c..5b1667703d 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx @@ -3,9 +3,6 @@ title: The Fee Stats Object sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns fee stats, it uses the format below. Note: The `fee_charged` represents the actual fee paid for the transaction, while `max_fee` represents the maximum bid the transaction creator was willing to pay for the transaction. diff --git a/docs/data/apis/horizon/api-reference/aggregations/order-books/README.mdx b/docs/data/apis/horizon/api-reference/aggregations/order-books/README.mdx index 50c63cb410..96653d4e99 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/order-books/README.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/order-books/README.mdx @@ -3,8 +3,6 @@ title: Order Books sidebar_position: 10 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - An order book is a collection of offers for a specific pair of assets. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/aggregations/order-books/object.mdx b/docs/data/apis/horizon/api-reference/aggregations/order-books/object.mdx index b033b8e54e..188c9a93bd 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/order-books/object.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/order-books/object.mdx @@ -3,9 +3,6 @@ title: The Order Book Object sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about an order book, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/aggregations/paths/README.mdx b/docs/data/apis/horizon/api-reference/aggregations/paths/README.mdx index 657f60087b..b7fe0ce321 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/paths/README.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/paths/README.mdx @@ -3,8 +3,6 @@ title: Paths sidebar_position: 20 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Paths provide information about potential path payments. A path can be used to populate the necessary fields for a path payment operation. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/aggregations/paths/object.mdx b/docs/data/apis/horizon/api-reference/aggregations/paths/object.mdx index f214201854..8e1f467a8f 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/paths/object.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/paths/object.mdx @@ -3,9 +3,6 @@ title: The Path Object sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a path, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx b/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx index d68116818b..15152e546b 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx @@ -3,8 +3,6 @@ title: Trade Aggregations sidebar_position: 40 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - A trade aggregation represents aggregated statistics on an asset pair (base and counter) for a specific time period. Trade aggregations are useful to developers of trading clients and provide historical trade data. diff --git a/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx b/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx index a79cd698c2..a643e9a74d 100644 --- a/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx +++ b/docs/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx @@ -3,9 +3,6 @@ title: The Trade Aggregation Object sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a trade aggregation, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/cb-retrieve-related-operations.api.mdx b/docs/data/apis/horizon/api-reference/cb-retrieve-related-operations.api.mdx index 7ed4192712..1bd2573485 100644 --- a/docs/data/apis/horizon/api-reference/cb-retrieve-related-operations.api.mdx +++ b/docs/data/apis/horizon/api-reference/cb-retrieve-related-operations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful operations referencing a given sidebar_label: "Retrieve Related Operations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/cb-retrieve-related-transactions.api.mdx b/docs/data/apis/horizon/api-reference/cb-retrieve-related-transactions.api.mdx index be36bca423..bc42881c57 100644 --- a/docs/data/apis/horizon/api-reference/cb-retrieve-related-transactions.api.mdx +++ b/docs/data/apis/horizon/api-reference/cb-retrieve-related-transactions.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful transactions referencing a giv sidebar_label: "Retrieve Related Transactions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/errors/error-handling.mdx b/docs/data/apis/horizon/api-reference/errors/error-handling.mdx index fbb5b7b0e4..90a226f7d7 100644 --- a/docs/data/apis/horizon/api-reference/errors/error-handling.mdx +++ b/docs/data/apis/horizon/api-reference/errors/error-handling.mdx @@ -2,8 +2,6 @@ title: Error Handling --- -import { CodeExample } from "@site/src/components/CodeExample"; - It’s important to anticipate errors your users may encounter as you develop on Stellar. In many tutorials throughout our developer documentation, we leave out error handling code to focus on the example. In this section, we will do the opposite and talk specifically about the errors. By the end of this section, you should be able to categorize errors and understand the best way to handle them in your application. Many actions interact with the Stellar network through the Horizon API, and these possible actions fall into two main categories: diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx index 504ef9cb01..949e1a91ea 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx @@ -3,9 +3,6 @@ title: Before History sidebar_position: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - A Horizon server may be configured to only keep a portion of the stellar network’s history stored within its database. The `before_history` error returns a [`410` error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410) and occurs a client requests a piece of information (such as a page of transactions or a single operation) that the server can positively identify as falling outside the range of recorded history. diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx index 75b215f893..f97205e963 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx @@ -3,9 +3,6 @@ title: Stale History sidebar_position: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - A Horizon server may be configured to reject historical requests when the history is known to be further out of date than the configured threshold. In such cases, the `stale_history` error occurs and returns a [`503` error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503). To resolve this error (provided you are the Horizon instance’s operator), please ensure that the ingestion system is running correctly and importing new ledgers. diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx index 2f0749a904..da2f5873e4 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx @@ -3,9 +3,6 @@ title: Timeout sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - The `timeout` error returns a [`504` error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/504) and occurs when either: - Horizon has not received a confirmation from the Stellar Core server that the transaction you are trying to submit to the network was included in a ledger in a timely manner, or diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx index 4f995077fc..0b77401d1f 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx @@ -3,9 +3,6 @@ title: Transaction Failed sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - The `transaction_failed` error returns a [`400` error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) and occurs when a client submits a transaction that was well-formed but was not included in the ledger due to some other failure. For example, a transaction may fail if: diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx index 1162150bf7..002b6f4282 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx @@ -3,9 +3,6 @@ title: Transaction Malformed sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - The `transaction_malformed` error returns a [`400` error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) and occurs when a client submits a malformed transaction. There are many ways in which a transaction could be malformed, including: diff --git a/docs/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx b/docs/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx index 055c7adf9c..2818e17b2d 100644 --- a/docs/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx +++ b/docs/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx @@ -3,9 +3,6 @@ title: Standard Status Codes sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These responses are Internet protocol codes that describe basic issues with a submitted transaction. diff --git a/docs/data/apis/horizon/api-reference/errors/response.mdx b/docs/data/apis/horizon/api-reference/errors/response.mdx index e710087a94..a37ce06ef7 100644 --- a/docs/data/apis/horizon/api-reference/errors/response.mdx +++ b/docs/data/apis/horizon/api-reference/errors/response.mdx @@ -3,9 +3,6 @@ title: Error Response sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When any error occurs, Horizon responds with a JSON document with the below attributes. diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx index 0bccfa3861..d60fb88dfd 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx @@ -3,9 +3,6 @@ title: Account Merge Result Codes sidebar_position: 110 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Account Merge` operation. Learn more about the [`Account Merge` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#account-merge). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx index b2ae9da52e..7463c20989 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx @@ -3,9 +3,6 @@ title: Allow Trust Result Codes sidebar_position: 100 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Allow Trust` operation. Learn more about the [`Allow Trust` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#allow-trust). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx index 8a217292ee..077858c678 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx @@ -3,9 +3,6 @@ title: Bump Sequence Result Codes sidebar_position: 130 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Bump Sequence` operation. Learn more about the [`Bump Sequence` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#bump-sequence). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx index faf454fc75..e95f5f05e8 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx @@ -3,9 +3,6 @@ title: Change Trust Result Codes sidebar_position: 90 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Change Trust` operation. Learn more about the [`Change Trust` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#change-trust) diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx index 4033cdd7c5..bf56d07af2 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx @@ -3,9 +3,6 @@ title: Create Account Result Codes sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Create Account` operation, which often fails because the new account does not meet the minimum reserve. Learn more about the [`Create Account` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#create-account). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx index 798446f7df..c1c7b24dd3 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx @@ -3,9 +3,6 @@ title: Create Passive Sell Offer Result Codes sidebar_position: 70 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Create Passive Sell Offer` operation. Learn more about the [`Create Passive Sell Offer` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#create-passive-sell-offer). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx index 1b2ff54660..c4635616ab 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx @@ -3,9 +3,6 @@ title: Manage Buy Offer Result Codes sidebar_position: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Manage Buy Offer` operation. Learn more about the [`Manage Buy Offer` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-buy-offer). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx index 2a8bd8f15d..236c7a2feb 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx @@ -3,9 +3,6 @@ title: Manage Data Result Codes sidebar_position: 120 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Manage Data` operation. Learn more about the [`Manage Data` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-data). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx index 7dccd0962b..9128331d5b 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx @@ -3,9 +3,6 @@ title: Manage Sell Offer Result Codes sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Manage Sell Offer` operation. Learn more about the [`Manage Sell Offer` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-sell-offer). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx index de920bc2e3..70ef3b519d 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx @@ -3,9 +3,6 @@ title: Path Payment Strict Receive Result Codes sidebar_position: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Path Payment Strict Receive` operation. Learn more about the [`Path Payment Strict Receive` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#path-payment-strict-receive). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx index 11b55f5aa9..a3fef6bf76 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx @@ -3,9 +3,6 @@ title: Path Payment Strict Send Result Codes sidebar_position: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Path Payment Strict Send` operation. Learn more about the [`Path Payment Strict Send` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#path-payment-strict-send). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx index 04f898c9a3..0096dd8de3 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx @@ -3,9 +3,6 @@ title: Payment Result Codes sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Payment` operation, which often fails because the receiving account does not trust the issuer of the asset being sent. Learn more about the [`Payment` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#payment). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx index 1e958e2da5..d2a5e3c740 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx @@ -3,9 +3,6 @@ title: Set Options Result Codes sidebar_position: 80 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are result codes that communicate success (200) or failure (400) specific to the `Set Options` operation. Learn more about the [`Set Options` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#set-options). diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/operations.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/operations.mdx index 3ed911ff2e..9315203a5d 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/operations.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/operations.mdx @@ -3,9 +3,6 @@ title: Operation Result Codes sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are Result Codes that communicate success (200) or failure (400) at the operation level: no source account, too many subentries, etc. diff --git a/docs/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx b/docs/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx index c740fac3f0..242f6c0376 100644 --- a/docs/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx +++ b/docs/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx @@ -3,9 +3,6 @@ title: Transaction Result Codes sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - These are Result Codes that communicate success (200) or failure (400) at the transaction level: bad sequence numbers, insufficient balances, insufficient fees, etc. diff --git a/docs/data/apis/horizon/api-reference/get-all-offers.api.mdx b/docs/data/apis/horizon/api-reference/get-all-offers.api.mdx index 81e7b7848c..289dc03ef6 100644 --- a/docs/data/apis/horizon/api-reference/get-all-offers.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-all-offers.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all currently open offers and can be used in s sidebar_label: "List All Offers" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-all-trades.api.mdx b/docs/data/apis/horizon/api-reference/get-all-trades.api.mdx index 4a07d98e07..e2773eafa5 100644 --- a/docs/data/apis/horizon/api-reference/get-all-trades.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-all-trades.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all trades and can be used in streaming mode. sidebar_label: "List All Trades" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-data-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-data-by-account-id.api.mdx index e3ce54b49e..ffc7aeed23 100644 --- a/docs/data/apis/horizon/api-reference/get-data-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-data-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents a single data for a given account." sidebar_label: "Retrieve an Account's Data" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-effects-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-effects-by-account-id.api.mdx index 075a58d0a6..78130947fa 100644 --- a/docs/data/apis/horizon/api-reference/get-effects-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-effects-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the effects of a specific account and can be sidebar_label: "Retrieve an Account's Effects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-offer-by-offer-id.api.mdx b/docs/data/apis/horizon/api-reference/get-offer-by-offer-id.api.mdx index b83e053600..9341779cc8 100644 --- a/docs/data/apis/horizon/api-reference/get-offer-by-offer-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-offer-by-offer-id.api.mdx @@ -5,7 +5,7 @@ description: "The single offer endpoint provides information on a specific offer sidebar_label: "Retrieve an Offer" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-offers-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-offers-by-account-id.api.mdx index 287c6e2cb4..dfbf9c9ab6 100644 --- a/docs/data/apis/horizon/api-reference/get-offers-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-offers-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents all offers a given account has currently sidebar_label: "Retrieve an Account's Offers" hide_title: true hide_table_of_contents: true -api: eJztWulyGzcSfpWu+REfxVs8RFaldiXrtizJknzJVsngoMlBhAEmAEY0o2JVXiOvlyfZaswMObRo2c5mEydZ/pHIARrdja/vuQ0cG9tg8DbYCEOdKmeDy0rA0YZGJE5oFQyC80hYQMUTLZQDg4lBi8pZYFKCHo3QWGAwFjeogGVUIGIWwtQYVE5OQSf0SHEImYIhQmqRg1BgnUEWCzWGWHOswdnSd6KvJxamOgWnQQrrUMFIG1A4KQ6mr44YLE5mFlyEU2AGgXGOnPa6COHMoZTMgEQ+RlOD/RGETMpVnFRgTxvxk1YwEVKCdcw4YM6TQWakQOvgWumJytiAVEm0pIUwNVYbEBYsugpRnkQijCBkFkG4Mr2R0TG4iLl8Uw02p7TLERd0Uk7rhskUSQilJxWvDNJixnChhdAgc8jBChUirTFg8MeU2HQixlpQCXSChtGN7vNgEOyiO/ZbN6f5xe/zoBIkzLAYHRqCxG2gWIzBIMhVeyVoiSBIJMxFQSWgM4RBHgycSXElbvK9v/78i4UkHUoRwjVOAVWoeaZ6BkNmca1FIpHoc4B5bol1G0YYs2BwG7hpQgxlK4NKgB9YnEj6aXfr2fPnRwfP2i8Oe8/3N7rdk95p6+Ri79nz/aNXF5vPer3N7c1ne4c7r7c6B9svNvZ2D3qn7YOLYDarzAXNNF4I+WOKZrok5YhJe0fMDVBpPEST3aU3EkvXxcAmGIqRCEHq0AuTiRtqKTH03/UIDNpEK4vWG4ggLXlQ5vBASNhYqPGV09eocjDoETAwGGrDV+pHKIdjNGUFdbuNbrfZa/fW+51+s9Epi60Nx6+XmqMVY8UKOYhVT2gB+oxDCzbSqeTAkgSZqcGxp2FBqFCmHOE9s+F7eMhsiIoLNX4E2sB7Ou49PKQ/+c/eZDNbN+M0RuVAWPXrz7+43NgccByxVGb692Q/Ax+VxuT7mA2DTMDgsqwYKWLhvlIx5xFCzD6IOI0LYPhbzlRh0KVGIa8BrfP0vTkbpsaY3XmTmG81GlAFpiBNEjT5Qg8wYSFihs/Np/BU5AgTNCNtYkZOwCCzWtl7lFZcIPI7ums2vhRXzcZsdlkJPlRtmiTaOFudu9LCK8wRTpRajQb9WdbZWRqGaG1QCUKtHCpHS1iSSJHZTf0HS+tuSxwxKY9H3knlvOnhDxjSZSWGXJ0T2XlXUqhrW5LhE+ssytHnV0UGR6uA5LXuPGLUdTCrBA7jRJJqS6uHWktkijxOCURvM6KXlcAJJ7FEQ+EH942xlBi8+aZYmtGy4qdDf9Vkv5/BBMZDpNTg86LkdltayIxh5AaEw/gLcPUXxp/PLa5ido3mm+Lso0Vec8vcXs4qgeCr2CkoCe7hXAqtd1fPKkRbLkk/J5Qw59CQ89p9u1G9aFT7l7edzqx0BOPckFPLyXiH+DktMmvRXWVrVrCTPSbXf89jYW26iueP9VY6q6TiTWZxg54QwWE6/SuyzWJKOVeelRgR4tUX4LmMh0XYm6NZKLfWIoL8i9aVnNQJcTBnZSWTkll3FWsuRgL5VVav3H9Mmp1TspRVJO6QptpgNe59wP6C2xBZ1VAyo7nRLGA/B9L8ahYXUejhE1Kv5Phytuz3fSUTzMjq87zEX+EpOiPwBjdUUdtmJQ8983n0sn8uPHDmyYLIucQO6vV3LsoyrKpD6xS6ms0KyZo243pe3tj67tbak4M3L84vNt50D57vtJ9s73cvei9fdY67L492n16cb755sf3k/PjgZHvrfLO339q7ODvZbz2tZxXcv7LS4/vvfKb3fbPxnc+lv6fMtJQK/Km8Nbvtfnut1ex+gskiOfizmex0Ov1W72MmfXZPqFmK/vP4/va/hkLGR33OwIoQ+sdqxktLYXDO0scRL1gwu4h1wW8+bynQlWNCQGXiDS6HlKUFoUEu3BWTScRUGreD5agRbG42g48jRbC71Tno7h3udLrd7uv2xsXh+c7568M37e5B5+xVb/v16dPNw+03Jwcna2tna2vPXl/svuw+ebVzVI4RQavZrvXps9YPluKDouIm+3g3v971/zcXrjto1JrNbqvXb37KfQ1a62vra812b7XnDVqNVqPaaFVb7fNWa9BZH6ytX/gE9nfDYmax3xQWM5ZWYTFn9n+LxT8cap+A/MImFljModhv3IHiWqvVavf7TQ/FVsdDsYTEZqu2vt7v97vt+6DYbzfb/c9BsXPe7Aza/UGnd0ExNf9QaHWoLHVuvLe8xmkwWF33V4rwSvU/dQdidJGmtuMYXZY7R8EgWKDqdtFhnOXY9RdobopOZGpkCaz3QDVY1Y85z9bBEbqJNtfewlZTHKUuNfglNHeKlaAKqpfUKRppnzXlqUnenSGVoLHZ7katUSOI2TSOmZkuVkFi9I3gvhUIe+fnJ7Bxsk/tGM4co15PuY2dn1qDfQdCjdG6rINosOoV59vg2c7EaJ6GyGE4XUUi60pSLjnvMCGzgjqaGkKtbBpjsZXdoGFjhFJzBgxKD+Wi0V7qQlW1EaioM+0ZWW7t2mwOMJzOGXqiDVJnTFgveUmOoRF8jDBEN0GaJSRJJu3yzhOjKZm3IMU1woS6+85WgGOIyhkmxU/IAT+EEXXbbMVT8DYJmaF7juYdNafBpkPfeDNMWeZbtrYCvhFIV1SMHIZMkrAV6lvmfXm88RMSz0d5t28Mz3fW7iDrn46Et+ULvXxYmCfHG5RUntmlsJSzXQ+1warSHB/9o9DzTr1TxXH5ZI35RipyuBEMwhenhxWarxg9sWj8CVph0a2f6/ps66n9rK65Dm3daS1t3fJrS5rWYJDglE2rNBVeH4SbEn0/gkoyhVZggr4BHseouJ9gkaKYooNBKOuQcdoUs2saAHFhMHT+DmlAZ72c/lrHqeAImcUM0UKkJ14lPBaKpoMGCoh7OBa6oSN8T/yhwVEGZi//1lzSB7Ap9Xihg8lksiz8fGV1KPW4zqoKJ1WbqipFoQirefx45NvwVpOZsPB6bHSqOGj1sTVk2DFhJByGLjVMgojJ5jH2N6/znn3MfqAJYBY6YJjGyaMa7NCAUWW1P/3Mhjql9r1nkRSYnzeHhuZII7YKhBGG10Cry/L7ocAuqXahgLFwUTqshTqu53qoj3V9KPWwHjPSdJ3MS4Roi9BZp7aEUUxmSNl9sb+1fbVzfHq1tf1y+/D4ZPv0rBbzR/4yN3GkDRIshjgWisYPDyxMtHE0NBLOTyrzKSg5CeFZxDDS2czDc09GC0ea/xY3AVyHfhjiNTiAx48nCJxGrI4m3dpYBJMqRUwUaqQLzZwUowmu4kySMZV9yBxpjx9n7gH9CJBJOfWk/d6rGyYF9wJe3Yl8SIZhENxEg0UaxzoyLRWiUbnL4RjqNJG5fmJy0iKmFIwp5+E31F6NUrChkGSPtKsEvtqSYZDtxUyxMVoQBL2JqkDCDPIqpwF3AT49WhZVJ07E3iXSmflOcnnkEPUIFCK38HCCD6SEkt3RJIom5e+CJyzxwYLIvQvmuiOIUCcLTWyPR2cZzEqpWvlm/aKqHlVzNOYTJBb6bkk+xSvYLsN9hwzTX35Q+SgVXE78MGbCP0Up9b/Lz6ibJkJUFktnbSQsjBBaNcrgBSfsjoSvILIn1ezJ4sTc2TD/1MuUE7X1w/0n20dn27SlFrlY+hoq0dbFTJWOLNpc5FDzRtcDC8dFFr2UX9wuBmz/f63jb/FaR15MOvzg6olkQhEuPbxu8zrrbfH+BqFhsPQuR15qXVaCSFtHS29vKVK8MHI2o5+zmTcVYFxYNpSfmnqXcfXnvw+xUidZvTp/wyOvUANfC36NcH+Z1x7u0ULxwsdvVMLf6BWHe5RUvPyxUNIlfTGCtPSVNvHwNJ+ZPILf7a2olawXQ2o1LXNeiFQyfj8tiZAREBbtnI0wxKQs9J2XMJbaObvb58Fs9h/Zz/MB +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-operations-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-operations-by-account-id.api.mdx index e2bc6bf98a..05d847a7fa 100644 --- a/docs/data/apis/horizon/api-reference/get-operations-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-operations-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful operations for a given account sidebar_label: "Retrieve an Account's Operations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx index ebdda3d4c5..ae46b46114 100644 --- a/docs/data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful payments for a given account a sidebar_label: "Retrieve an Account's Payments" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-trades-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-trades-by-account-id.api.mdx index aca4b1515b..9053c8c115 100644 --- a/docs/data/apis/horizon/api-reference/get-trades-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-trades-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents all trades for a given account and can be sidebar_label: "Retrieve an Account's Trades" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-trades-by-offer-id.api.mdx b/docs/data/apis/horizon/api-reference/get-trades-by-offer-id.api.mdx index c436d3b10b..42f55beed6 100644 --- a/docs/data/apis/horizon/api-reference/get-trades-by-offer-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-trades-by-offer-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents all trades for a given offer and can be u sidebar_label: "Retrieve an Offer's Trades" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/get-transactions-by-account-id.api.mdx b/docs/data/apis/horizon/api-reference/get-transactions-by-account-id.api.mdx index 29f2908405..331b9812f6 100644 --- a/docs/data/apis/horizon/api-reference/get-transactions-by-account-id.api.mdx +++ b/docs/data/apis/horizon/api-reference/get-transactions-by-account-id.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful transactions for a given accou sidebar_label: "Retrieve an Account's Transactions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-accounts.api.mdx b/docs/data/apis/horizon/api-reference/list-all-accounts.api.mdx index eaeaaa5578..844a661490 100644 --- a/docs/data/apis/horizon/api-reference/list-all-accounts.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-accounts.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists accounts by one of four filters : signer, asse sidebar_label: "List all Accounts" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-assets.api.mdx b/docs/data/apis/horizon/api-reference/list-all-assets.api.mdx index 7ff8a8838d..7cbcac8009 100644 --- a/docs/data/apis/horizon/api-reference/list-all-assets.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-assets.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all assets." sidebar_label: "List all Assets" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-claimable-balances.api.mdx b/docs/data/apis/horizon/api-reference/list-all-claimable-balances.api.mdx index 29391ac766..ccefe7193c 100644 --- a/docs/data/apis/horizon/api-reference/list-all-claimable-balances.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-claimable-balances.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all available claimable balances." sidebar_label: "List All Claimable Balances" hide_title: true hide_table_of_contents: true -api: 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 +api: eJzlXOtu48aSfpUGfyQzgWSTzZsoIDiru2Tdras1MSbN7qLEDEXqkJQ9cwwDeY0Fdl8uT7LoJiXLtsZ2LGuPk+M/hsXq6rp+XU2r6kaKyTyS8p+kkkfcJbE9QEXiEZ9CJF1mJAYRDd1V7Aa+lJeGCzdC4LNV4Pox8twojhDxPESuiOuJtXTLxU65nEgZKVhBSDiPBpPyUsuN4oLnbTfc7peRViQkS4gh5CLdSD5ZgpSXolXgRxBKGcnlUvxzDeE3KSOF8M+1GwKT8g7xIngobIHSYO3HqFFGgYPiBSDBJwhPUOUKwm+IpASuL56GkOyDrl3PQ+DGCwiRvV0FDNnfBOHcvQJ/u5qzD9GCXAEiKFrb4MfhN/QhDtdR7Lk+ZFDgOBBmOBUjMUGC4CO6Xrh0gdzoef7cghFdwJJI+Rsp/rYSNolD159LGQm+kuXK4x/Vyu1+v3PW1kYts98oGEbPPMe9Wb3db3Qms2LbNIuVYrveqk7L+lllVKjXzsxz7Wwm3d5mtrYmUQTxn7W0j9woWgNDYjUKYRVCBH4sPkF//P4/pYBBvsFpwtQtjfIfv//vizyRmnZrUOQE4a6d+JYn0o4KSQz6f1qLR/HCIIpdXwQuIoyFEEUnqOt735DrU2/N9oV76ldKfB474vlTnt0Vex1GwZ8OcuSvlzZwg5AYibyMUBzwUFwBdR2XIi+giQqujwiigecBFX8HztbSESI+48G4WnseMOSEwVJIvCJz159/joMv4KMr4q2BLyMoBBqEbG9kun4Mc5Gt29A0DNkwFFMzc5ZuKbK+G3BByP58anPXuPPUNam3BCOuZOKBRMIIRYtg7TFEVisg4QnqCh7R1oO/koj+ij6QiILPXH/+kefpr3y7X9EH/iv9+AQ1+DZuhEg4Xy+BR2vk//H7f8cogjiD3BgxcMjaS+wv2D6TuP56yYGXRFRKFJQudw3juUv3z8bwcAFoSb66y/VyExjCy4kpQojXoQ/sBHE6wV8Eakj8OSQ+V7jwWJZRFhEfrVcrCFNCEWBuhBYkZDRgwLip60Ho/ivwRUquIHSCcMmzAIVAosCPnjDaxoHAHtlOkV8aV4p8e3vJjZJGMafGssx/3bfLYE0pRPyEoYEfgx9zErJaeW6SG6e/RZzuZmdX4nldR5xC6f6B/RtQ7pBVyM+z2E32++y5/pdoR87v0EXgOc9TLUJw9gWLsGwsosL/It1mpBiWK4+bb4faDgIPiM/xfCdQPiVMLzNS7MYe7PDw4Wv8zkRahXD1rkS65WSbj1rC1TxHn4kJWNrA2L1tv0Oa5uYOIQlDwlPdjWH5grj6C8fftix8gfj/r4LFIfEjQt+faA+IhE/v2fGB7Je3Gcll+4Tb8HWZSLudY/4x9W0mLQv3PlnyYmbvo7Sy3fvMI1H8eRkw13GBffaAcWh/njB2+dm4h2xT9B2QSTvl3j6LrUgcQ8hPk9qnQnYmZ63LG12/3bFlWiOmOMb42QLPb0t89nqZ71n3T64NwSuCE4T7DUrs6CVPK6uALvaQCNz0gxecL2ufBj5zudmJty8zMkeXNP3JSI4nbsOPao6Hiecy6UHSZLY3pzQhvhPiewP68vb+OfP4anzLMzmte4SA371E528kUaffPxs26J9glbSI41WUPz1dJPVbNoYo9iE+iWLwPBKeBOH8dHu3+by52/xDqPgzT5Er+CG5r/z8gygPf1bkH0QB/jMvZ3dqi7ffUNUtNafKclZOfxTTtoilA9YJMWQsy7aOKZU1x9SpZhmMEtNgVLEcoFihloaZY6s6pYBVqoJNvqPBphQ5ggaqijVFNrYaGJZi5kwrp9pUBaJg1VBkCzugWQRyKrVtUM2crAEouiU7gG3LVkHNGbJDc9hQnIcaiMsED6h7hci21Pj05pFx+laa7Dt934dkp7ti3fwjcWVGGD4jrC5OgrsTPg7X8KjGeSeq3An1UkXSOkJ6Mz9vSwopyY074MxL8omS7CLt1BBSrdydtaeTxqBX1M1qYzjqN2rDah03O52J2R9WK4NpVS/PKoX2rGn06xW1Oe7qw/Ph95A4v0nD/TWGhGUsZxWcVeUhVvMyzuvGTLpXaHx6UDNItVJZHRqjRr91MevVzksX40HFbDX7Rb1+cdEZD81K58I4Lw2q59X+xbl+NiyWS5VSV5UeFAyiJPh0w8+uz3Z6tD2UR03luaP5DMkJJymGbKmGpalG8n4pOYWfYqY/y0zXDen29lLct7enJPXItU3ol8/g80jdvJV4VFBKb454QrFjgZhKLCLnVA1TounMMohNZUXBZs7QNJZTmWIqOWIrBmgali2HKJaOc9iyDUNWTIpzxwOxQyV7RyB2sCqHg9jBfn4KxJQTeR+IFfRC6WJQrNb1QnXSnulDVau2hvpEnRozrTrUeu2O2hmVh2oNn5UuzqYXtbKJK9UnQEyXdUvXvw9iSlZWsgoeYoWDmCw/D2LTwqjVUDuFamXUbExH/WFZrU9rpeGw1Taa41pzOCrOGvXxqNwzJtNK1TyfnI0N8yGIPajrEw+8Ej0SHbNvmKBHLIFUWTUYdYim5qitK0pOtoEoBqhGTpdBNSwLHGqpmm6atmyqGNOcklN0EzSma4pyxBLoQMneEXocrMoblECH+vnpEkiWlcfoUWw0+m1snJ0NTFMbmqVBT50Uq+PRtD4qDWelsT7r1drNlm72upN2tdduXXSb3Vn/++ihYV0zFPVJ9FCzsjpU5Lxq5HHuWfR4vYjHQo9Ux+wbJujx0IPJpuEAZo4KBqU66BTnwLQdrJtUUcDGssVMWSVGTqF6zrZzhmmbOdswsapTw9KOhx6HSvaO0ONgVQ5Hj4P9/Ar0KHTG0xku93G12hqXioNxu1jsjCeD6cC4GFfKPayZlY5WUktttaHi6bk2Ursj3HgSPXSsWy9ADyWv6nlVeRY9Xi/iEdGD65h9wwQ9InqQHLAckxmlRLzgMqmuWjrYsmnbOU1n2LYtQ8M6U3JMMXJMV3XZUFXFYJYF5hFfvxwq2XtCj0NVeQP0ONTPr7i5FM3uRb/ab5i1uoFxqVmqTnp1bTKYjWrd6bRzgaeTsd7E5kAdTPBZvTsplSaVM+376KHLWDWNJ16/KFlZy2J5qFh5Wc7L2vPoMcajQVmrtGqt80lxaJhjs6Oa/cJZs9tr1UdnLbUwrk70Tn1Sro+nLa3S7w0mM/2I6JHqmH3DBD0eelBdV4ilWUx2bF2xLFvWqZ3DWLY1m5iMMI0y0zJyNKdZxBZEjqlpjBA7Z2gOHA89DpXsHaHHwaocjh4H+/np2gPLlqJj6+F7j8mkNboonWvTs+ZAm100J4Vhs2RW1MK4rVZnrcl0Mmh2i7NJoVY+71b19qg/LTzx8lbXVVlV5SfRQ89iPFTMvKy9pPYoDWblwqhZmaqN2XQ6qlTalfPGxXDcrJeH4+Gkabbq03qlNavoRc3E/XatNu236uUXoUfmMVa92iBHw6rEotk3hIMjVjqKgwmzqOI4loI1BgZ2LBMrwPScojiKIzPTlHXDkKnOhSVEMTXCdEWWqWFr7IiVzoGSvSOsOliVN6h0DvXz3xOril2t2jK17mzYLQ0LxUl1gHt1rVVr4FK9WiiWZ7hV7J3XjVGlNC0WGiO9NWp0q/hvi1VvAAfHwyrF1lVDNQi2KME6wzmmUN22FUN3dB3nZMUwma5SBxxbpoAtk1k5WcW2ih3TxEw+HlYdKtk7wqqDVTkcqw7281NYpZ1gwzJkQzk2Vhk5Q8e5J7HKyMrKUFHz2Mrr1rNYVda1yqzX7JeKs2avYVS1ZvPiolVrlSfF7rjZmxZbarFVrV10Sq1hsVqrzma1cfv8Zejxl8CqxKLZN4SD42GV4yi2rRFZsRWmgYFtglWbOkwDTDHOWdRQHdAJyKqRc3K6bVrM1AjGWHNyxDbo8bDqUMneEVYdrMrhWHWwn5/CKmyd5HIm1rD+lwOrIu73J92CimvnjVahO9PNuj7T210dNzujrjqpn03Gs1l9MugYRqtV7k377UGj9Te6BD4AqzfAgyMWVgd+8/OIhdWBkr0jsDpYlTcorA7183P/LJNl7dHrbqPcqUwmg0GvX5iag3O9XZqMhufjfu+sWKicnw1H/cKsO55Oz8ojXDF6jXaz1u7iJ7Aq+dryM1ilmOJf7WZeVp9/YYVL7Xa3j4ujakNVe71uq3PWbPcvzmqF6aiHm+3ZtDKtGMNaRTXPBtN+r97QRoXKS79tqGRlM6sY4otDcvrFob1fEMSGZli8747n+h4uuZdxsRTNNDiXV3/L8K2/GS5E2fQGLCFeBDwq5+Jr/isSc7n3ZA6PIwivNk3s69B7WRJK+7o5hwkd6kB8HYRfhIn3c3TW8TqEl/CsbiiRv+F6yftMnUC0PqRNCGlvp5SRuCrJavlEPhEXkPVyScJvd1RoFQZXLhONxKg+HPZQodfgzZyi5T3t6x4kcm12PUEN3vI9BzFGwGcohKwwXJR0X/OVqzBga3rXQf2ARdLTzButtv2pQCKX90MHiAZ+tF7CZim5gpDMAe20faIQPIEHnFy0O9/1sGaD0E1a2IUg2572BMnQOkqE2ghUCkLgfbVuJDTf0cMOXTYHZEN8Dbz7e7VKtL2/shcGvDsmQp77BdA18TyIowxiQPm8AOK5/wKG4Ctd8F7dKCM4JN32ovU+FBJt+3HjgI8iEG27O+dIBok2Yu6iTQ96GrNiOkEUh0CWCK7A38ixu1q0lW9XnjyKrP/0SPi069DLD5v0ZHAFHj8Co3sHbir2KQ1CyPoBg4//UdHzi/+Lv9kunZVARIs2MHTlEkRH560MIsgOg+sonZ4R+LDp9d/aelBuRs/amgU0Oo2DwItOI/Yl4pYOUAg8nAQ3GvC2qq9u/I3z/xasQx5t3KAZdA2ifX65BJ/xR8JQxOcbI9ePYiCML1qSL64/R8wNgcbCh5R4XiT0FG6dr10mJkrQ0LUhQovgWpiELV3fjWII0SbERThubMO3EB31H0JwkmAW+pe3mv6Iil4wv7PB9fX1feW3lFnbC+anJOvDdTZa+1l+Ci0gm54fH0UTfxTwNCH0yzwM1j5Dgf8wG5LYCenCjYHG65B4yF3ynIel8HyQdvwvyW9BiNKjA9nr5erjCaoGfEJD0hgrpmrYwZo3/wsRuQHT/bahETCwSQQZRBdAvyBOvau/GClQ46a9M8DcjRdr+4QGy9PUDpvfG1VPbS+wT5fE9U/LlXGl1e01OrWTJfso3JV0C3LH2zB3fT6e4McIXQdhzIdKuLEoZv15MlEGfF6/+TECugiSmQhCPp6WqBOw1wABYgEVwxKEjfLop5+uAbEA+UHMh+8EYQQoXPs+F2JjKO6yBIYI4hHDiMfTZRcltrH0008JAIAYEUI875tgLdZ+viKey4SCnx+dbcBDPwQUXwcoAj6rJ+bJ41MI/RRUGNBgvfJS+yw5DLvLVRDGxI9FgNmBMKPnEtv1eMbxVTvhdXIv9Hl2LYlP5hAhlwfXtZ9BKxICy7Lg2t+GV+DcVzVYxe5SgB7fM13JQY1DXuAgH4BF6MM1/Oh5aCez+KSKCBH0i1QiK3EccHa/SFvb8RARF5ZwGXWdAYRXLoWdYmzXs4IoGzjiKONkyfQJQkU7TjrlYyP2bkBXeeolVX7mQbF3v7SDJXHFU/C84L92n/HGaZeCH8HOXoUVoQtA+IRfdVzGY9dx+d0kfZJNntztmMIJEU+FTinT6LTVKFU6gwpfcrKIl55oN1wFUbwk/s6WvE0VFTwP7Rkv9aCAuLmbzfHqQVNp224MX+PTlUdc0T0s9LlJC/ZP0p6C/TIjLYIo5k9vbjjejELv9pZ/nMxdEXcvN9q9fTwh/N9q8NRei36Bb/fGcqUNx5KUvuL6jl3ewZioJxXadHC/UJ1/x7yoJ+XfGXx1X4WXh+6/fZzUU+ptBmS9Wrm/zNSoJ6ywmZf1SiP8jSZEPWGkzeysOyNd8j9Cl1tJyn/i0xQWQLglObYniwqUwmp31aMBUZzL9jVQrTKUbm//D5BN4bQ= sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-effects.api.mdx b/docs/data/apis/horizon/api-reference/list-all-effects.api.mdx index 9e5fa422c3..40106355f3 100644 --- a/docs/data/apis/horizon/api-reference/list-all-effects.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-effects.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all effects and can be used in streaming mode. sidebar_label: "List All Effects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-ledgers.api.mdx b/docs/data/apis/horizon/api-reference/list-all-ledgers.api.mdx index 83d4a4259c..5c3924514a 100644 --- a/docs/data/apis/horizon/api-reference/list-all-ledgers.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-ledgers.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all ledgers and can be used in streaming mode. sidebar_label: "List All Ledgers" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-operations.api.mdx b/docs/data/apis/horizon/api-reference/list-all-operations.api.mdx index 04931aa310..40cd8186a6 100644 --- a/docs/data/apis/horizon/api-reference/list-all-operations.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-operations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all Successful operations and can be used in s sidebar_label: "List All Operations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-payments.api.mdx b/docs/data/apis/horizon/api-reference/list-all-payments.api.mdx index 03a9010f62..04df3d7f05 100644 --- a/docs/data/apis/horizon/api-reference/list-all-payments.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-payments.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all Successful payment-related operations and sidebar_label: "List All Payments" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-all-transactions.api.mdx b/docs/data/apis/horizon/api-reference/list-all-transactions.api.mdx index 828e72c046..877661cd82 100644 --- a/docs/data/apis/horizon/api-reference/list-all-transactions.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-all-transactions.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all Successful transactions and can be used in sidebar_label: "List All Transactions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-liquidity-pools.api.mdx b/docs/data/apis/horizon/api-reference/list-liquidity-pools.api.mdx index ec7f62240d..25b6c64ab7 100644 --- a/docs/data/apis/horizon/api-reference/list-liquidity-pools.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-liquidity-pools.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint lists all available liquidity pools." sidebar_label: "List Liquidity Pools" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-strict-receive-payment-paths.api.mdx b/docs/data/apis/horizon/api-reference/list-strict-receive-payment-paths.api.mdx index 40d5fb920b..cb401c4fbb 100644 --- a/docs/data/apis/horizon/api-reference/list-strict-receive-payment-paths.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-strict-receive-payment-paths.api.mdx @@ -5,7 +5,7 @@ description: "The strict receive payment path endpoint lists the paths a payment sidebar_label: "List Strict Receive Payment Paths" hide_title: true hide_table_of_contents: true -api: eJztWm1T4zgS/isqf7iFrbwwQAKTLeo277wEEhIyJCEUKHYn1mJLXkkmw1L571ct2yEhYWCY3bvbmZ0vGWyp1Xr66Zbc3Y+WphNlFa6sFtWusq5TlgPKlizQTHCrYF24QJSWzNZEgg3sHkhAH3zgmgRUuwS4EwjGNfGY0opoF8xzReh8nE050fQOyIgqcIjgZhT1Rcg1EWNCOaFKgSYPIiRTyrV5L8FmAcP5WiRLZwiq44DSjFNUMJ4Yy1KaPihiC6405TpFKHeMKP0QgPljzZoKV7inkoF60k+MxyAVYZGmQjogyUiIO5UZ8iGvCUm0yxRRQKXtpsihkOwPwYknqIMbRyjMIriCIvSeMo+OPMCdoEAFHCVuzNe7VSKUNtxQ20YFb4mQT8+MkNtNswGHqcDDTRqchVIMxUaAj6XwzXOHofq4r0hEoke8+gp8GdLk3kMsRbtUE0U1U+MHM/x2YfxNBOAtoRINpEPJwckMuZWyRADSjDlyrILVYEp3DGvakeVaERcikqWsgErqgwaJ1Hu0OPXBKljLKFgpiyEDfw9BPlgpS8LvIZPgWIUx9RSsI2pHg+dRSajjSFAKbfCEd4YU+cNc64i9fqgMbaQmU6bdJ1oYGBZs5QrPURnSVYxPCDDtgnyL1QhVRqachMYVmCLJNshYyFXP0m7iNipjpSxlu+BTq/BoIYcRIi0Zn1gpCz5TP/DwUb1yen5+dny6223snR8V8/nWXnu7NTg8PT86uxyUTvf2StXS6WGj1qvkjqvd4mH9eK+9ezywZrPUCvRG7a9Evkhs4fs0rQDNqsF5owN8lUGMLzJlRGdIldpu8kIhkj7VuDBV5LbcrFQLR51Ot9q+KZbLze7ZxW2GoNPGmBXIbbdTKdQr3ZPTerdeGZyf5PuH/WJukC/2t+u7vUpn0OoMdjqXue7ZTrH96bSZP++0K5etXL9R7d3+f9KgfNYv1IvtarXRLe3uHLUPL6vFTrlWapwcdtvl+ulhNXdUy/c61b1qr9IolvuH9fbh6e5Ou9bsLVFhyd9R/xuz6Iuc0DJc64wm6o5NrFwbdKoxfPj0Hm5T5NaW4DB9Q73ApTz0d29TBstnjz9s376CCQ99PNEiwVbKei539dGHbev6yxgwpUKQf15MiuQlf62Bp50QhI3XxOG5XW6RTFzoOY5vDxvvo/8rXLGF8wWuvIgSTvsSWf5qNLqdyssb8798HL3kAE+3jbWbio9aV4SeQ0aQeL/zVpVz1mx2nbI+p1UYBEJqlVZaAvVxXKyTBBUIrkChpO2tLfxZ1rMT2jYojPi24Bq4xiE0CDxmG1Wzvykc97iqkRj9BjaiEkg8+zWLVrkBfwSOg7i8NlSCLaSjFgZSKSliyzT46nUBi0E2ClIrgM1Sy6MMPV8dFTv7GvgDPGckIle/KqYHW+mP14+53MxKWZppY5bYzxdlRvxZt+oLsfZtQ1/cy4vR61s3tMYr1q2P59f7rfoKDq/s/U/c72zRya8W9bp+Gh35hUoX8a01mz2ftcrR57x4kQVr8Y7RvY5WSrTAezXuPo4OBselOziDZ3fwwqN1T70QVnx27pVXax1s3WG6xsPwOvL8TWIU693XlBWXsrb3Mx/39z582PnwMo5rdX7JnaxSab2oJ+0rueP8YaOWy+fzvd3ioHFRu+g1+rv541zncq/aa5+UGtV+67i1s9PZ2TntDeqf8uXL2tl6exasXGYr+pfYFpF/Tf0llXvlM+s58616+ayfa/b6nf5u7eSw2brY7rSa54Nis3pU75VyjVL/cufwU3enedm5OD+66ORzp7k2Wg1PwaXl43vU7Brf/A0o8TGztbe9vbe/3sw/BiW6jYt1lNjLt09rZ2e9Uq3SOW6XeuVi6bJx2Kuc7B5dfDrvnB7l8pXy9uD4U3mn32w0WuWTE5T0HVBi1+C5/R1T4m9mk50Pmf2Pudz+/v53bJNX3bRTWeOmpW6/Wzzay/V6l5VB9aTRz+fLtf7Jeat6kTtu71arZ71BqTvY6fcGe5VOLj/YbZ40a92/vZvu7Gb2tvbzWz925F5LiXd/rL9MCXOFjK6Rn9O4eCe5O149Wh7Fr0ir44LnzS2F2ofSI67WgSpks26U905rUJqDzqgo1ZERcpI12eRslNhKx5+2/x4Oh3wpM3bwLVmrf6G49TQ5eI7yC2Nx2wel0ocXXkf4H7yXJKtSDU0OckNuDBODfEzvacd8k1spy6Mj8KyC9WsMZjb+TSvnbtEQ91QmqaWOc0cOkoTixtBamDG0Nn8ZchyrQN6DJAeEw3RhYiauXWQ65v3GkBMytN5g4KGVGnIUPuSRaJyZUcs5f+0qI5GQq+iHPF/efDZtJC9x7fJZ38h+evJefiyI2Yz/dx3/flGLIYaNhcnDd0eJuZBk/aGVi59tGrxs6nkb0X+1C3xjHHLbZIg2MHWzSR6jaVjSEh5kPDGJXvyCz2eJDG27CzNBypWJIKWQ5k0885dlCrYetCv4Av1iS988Y52pMS28I8zH1BOJ2JMiBsiEEeSAJKx6G6M2kU1JzoocxJyNSXUTB5GbYIFWkWIHV090iU0Z0+ib2LO5zJmV8HCwSt5l4nwbdZaZsyaMGDIN+eacRUMeSMb1RgLhJhr5GrMCGrhigkex/Q4erML6vGEqSQpg/hCn+qBdgRW9CcxzDwVrbXRHnhiDRauEEnn0Brtb63KnF9E4cgZ6KuSd4ep6ieNQhxLeIrOWjCQ8kXqNSd2xMImiOJUSB0SEAqSKZm9ltjJ4kVCh71P58DSKBFLcMwdMeefw4qJFiq0jrHI5VNOkfpxUAOJVM+QIy1kTwHo5FnUlpA1wUVXXzAykcEIbHDJ6WCcCJVNT9oqSyEwRoIqBxKXR50Mfkqn0HiSdAFlI6hIJnrkGJPW4AKSpoXEb0kJi0R2cSBEJgQSskZuJioQqUipRqCykqcozZXa+sI+RZM4EyAj0FIDj8tFul2e2pMAkINb17oBMqeeBVinigA1cS+qxP8Ah8Nl2KQIWlfSTuh+ezUajeQFeC6LCkc800ZJyRU1EVClicvamAhfV6MiIerhZU1+K2E/gHqttkR6Ls1Ho08zMCrN+dCZcLRr0eiNxTwfuwcO0rlq6FsZqZ20hIc2FA5s/FHswRifLYVvMCPAVKMTynlFid9uNFKFkJMVU4YEqJBEckhrSHOtO5US9irUjbJXVQngqq5w7hUhjJw3SyUizBd73PzP9gPIfRCiRbQhoikxNPUr4PnDH9OUgUJTjwoRxpYE6OMmnd1gJd5gEWxsb4lkUtckYs05C5pjaly3ZCBRxxdRA4viMM6VBkoTiho4JNsy08NiA96BxRGaz/8p8pz+RkicmTxhMp9Plzc9HpkeemGRpmsM0rUKexlPIhXR8fmxGBXiBbkLtu4kUIZ/3KC14Q8QdabtMg61DST28+0hxD6ZKH1mIKeLT34Qk8dFBRqEfbEbNB3jOYJuCqf+NRKhJrCICGK83p4ZwAJuDUsR2wb4jOHpx/6aJoI7QPgEwYdoNRxlb+MknQ3YisiNPjLI+RaSz6F7MBpUcnVnGsRRCvYgp9e5RpXpTa7ZvKtVP1UazVW13Mr6zaYxZgrGQgLQYwYTxFGH6J0WmQmqXSGDaNP/wSdLdoZlREWxXYM022t0VOi05E857wgRxhG2aJwyCBfLzz1MgjjDFXuCOkAqIDDlHJRIY0aBRkKLYU8Id6qEzLcaQOdN+/jkKD6ACsBn1vAcj2sy9uacec8wGb1ZOPkDHkED0VJCkAwYjrw2SxyHHAVuEgRfj42OQju7N2OuG9BsJA6PH6Ih56I84a4F8mSXHQN/zKacTUIQh9aY8RQIqwUk7Ysrn5BPj5a2KQDPfhERcM56JIQ8DohgTDuAosjGFnzyPLPgdU6Z/Bb/NaGAOCxQ3tObYbUYtYBqkr5rjTkSzhavaomXNoLQYp2M2xpVnaptSYlx9T9RepHsNHdMY30o9uwouX/zAp8y8Bc8Tvy6+m6Usj9nAFSysVQyo7QLZzmDKhjnI3TEzSZfoTTp687RiHGyoeWv2FAtV2cZRuXrWqeKUjKt9z9QQA6G0T/nCkliZI1FpjsTfyiQuzpGkQ27pkvH4VJ3/pyHzn4bMNzVkxvk+DZ91NvAow+/9iMWPSWbS/CLZnn3IXacsVyiNIx4fEZOu9GYzfBw1v+DnncMUIvhCT89zwn53jZlr0Y0+rFe6WONPast8xL4dt3/aKv8PjJj0w77ThhtJ39om+S+0RH5hPy+2mLxzY/+rzsav2uK8Z/MbNvlXNiZ+1Wbixso/h4jf0Jr4VqX9leh3jX9IhhpbhavrWcpygTp41ZonJYu2DcHirJVWxKWkZL16Yc1m/wGy75s6 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-strict-send-payment-paths.api.mdx b/docs/data/apis/horizon/api-reference/list-strict-send-payment-paths.api.mdx index d84502a664..68718e2be3 100644 --- a/docs/data/apis/horizon/api-reference/list-strict-send-payment-paths.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-strict-send-payment-paths.api.mdx @@ -5,7 +5,7 @@ description: "The strict send payment path endpoint lists the paths a payment ca sidebar_label: "List Strict Send Payment Paths" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/list-trade-aggregations.api.mdx b/docs/data/apis/horizon/api-reference/list-trade-aggregations.api.mdx index a827117c70..fe8b53fdef 100644 --- a/docs/data/apis/horizon/api-reference/list-trade-aggregations.api.mdx +++ b/docs/data/apis/horizon/api-reference/list-trade-aggregations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint displays trade data based on filters set in the argu sidebar_label: "List Trade Aggregations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/lp-retrieve-related-operations.api.mdx b/docs/data/apis/horizon/api-reference/lp-retrieve-related-operations.api.mdx index bb0cdd60aa..9ca69486c5 100644 --- a/docs/data/apis/horizon/api-reference/lp-retrieve-related-operations.api.mdx +++ b/docs/data/apis/horizon/api-reference/lp-retrieve-related-operations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful operations referencing a given sidebar_label: "Retrieve Related Operations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/lp-retrieve-related-transactions.api.mdx b/docs/data/apis/horizon/api-reference/lp-retrieve-related-transactions.api.mdx index 364353efec..0c3b7ad0c2 100644 --- a/docs/data/apis/horizon/api-reference/lp-retrieve-related-transactions.api.mdx +++ b/docs/data/apis/horizon/api-reference/lp-retrieve-related-transactions.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful transactions referencing a giv sidebar_label: "Retrieve Related Transactions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/resources/accounts/README.mdx b/docs/data/apis/horizon/api-reference/resources/accounts/README.mdx index f6390694ab..58b9dec08f 100644 --- a/docs/data/apis/horizon/api-reference/resources/accounts/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/accounts/README.mdx @@ -3,8 +3,6 @@ title: Accounts order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Users interact with the Stellar network through accounts. Everything else in the ledger—assets, offers, trustlines, etc.—are owned by accounts, and accounts must authorize all changes to the ledger through signed transactions. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/resources/accounts/object.mdx b/docs/data/apis/horizon/api-reference/resources/accounts/object.mdx index 12c0ba2b46..0436efbb98 100644 --- a/docs/data/apis/horizon/api-reference/resources/accounts/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/accounts/object.mdx @@ -3,9 +3,6 @@ title: The Account Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about an account, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/assets/README.mdx b/docs/data/apis/horizon/api-reference/resources/assets/README.mdx index 8abd6a7de2..86392fe783 100644 --- a/docs/data/apis/horizon/api-reference/resources/assets/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/assets/README.mdx @@ -3,8 +3,6 @@ title: Assets order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Assets are representations of value issued on the Stellar network. An asset consists of a type, code, and issuer. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/resources/assets/object.mdx b/docs/data/apis/horizon/api-reference/resources/assets/object.mdx index bea2910cbb..08bbb0fcbb 100644 --- a/docs/data/apis/horizon/api-reference/resources/assets/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/assets/object.mdx @@ -3,9 +3,6 @@ title: The Asset Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about an asset, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx b/docs/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx index 958e5fce5f..786b83a6b6 100644 --- a/docs/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx @@ -3,8 +3,6 @@ title: Claimable Balances order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - A Claimable Balance represents the transfer of ownership of some amount of an asset. Claimable balances provide a mechanism for setting up a payment which can be claimed in the future. This allows you to make payments to accounts which are currently not able to accept them. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx b/docs/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx index 597881df6f..d1cb8685cb 100644 --- a/docs/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx @@ -3,9 +3,6 @@ title: The Claimable Balance Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a claimable balance, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/effects/README.mdx b/docs/data/apis/horizon/api-reference/resources/effects/README.mdx index 4f138669d9..6393bc07e7 100644 --- a/docs/data/apis/horizon/api-reference/resources/effects/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/effects/README.mdx @@ -3,8 +3,6 @@ title: Effects order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Effects represent specific changes that occur in the ledger as a result of successful operations, but are not necessarily directly reflected in the ledger or history, as transactions and operations are. diff --git a/docs/data/apis/horizon/api-reference/resources/effects/types.mdx b/docs/data/apis/horizon/api-reference/resources/effects/types.mdx index 8abd3bd16f..f45da7ff2f 100644 --- a/docs/data/apis/horizon/api-reference/resources/effects/types.mdx +++ b/docs/data/apis/horizon/api-reference/resources/effects/types.mdx @@ -3,9 +3,6 @@ title: Effect Types order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - There are eight groups of effect types. Each effect type has its own set of attributes. ### Account Effects diff --git a/docs/data/apis/horizon/api-reference/resources/ledgers/README.mdx b/docs/data/apis/horizon/api-reference/resources/ledgers/README.mdx index 66b5136a46..9132280d73 100644 --- a/docs/data/apis/horizon/api-reference/resources/ledgers/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/ledgers/README.mdx @@ -3,8 +3,6 @@ title: Ledgers order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Each ledger stores the state of the network at a point in time and contains all the changes - transactions, operations, effects, etc. - to that state. Learn more about [ledgers](../../../../../../learn/glossary.mdx#ledger). diff --git a/docs/data/apis/horizon/api-reference/resources/ledgers/object.mdx b/docs/data/apis/horizon/api-reference/resources/ledgers/object.mdx index 08566eb70a..f12c00717c 100644 --- a/docs/data/apis/horizon/api-reference/resources/ledgers/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/ledgers/object.mdx @@ -3,9 +3,6 @@ title: The Ledger Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a ledger, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx b/docs/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx index f0d5678e48..adb801abac 100644 --- a/docs/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx @@ -3,8 +3,6 @@ title: Liquidity Pools order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Liquidity Pools provide a simple, non-interactive way to trade large amounts of capital and enable high volumes of trading. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/resources/offers/README.mdx b/docs/data/apis/horizon/api-reference/resources/offers/README.mdx index 052d6c3b19..d88cea336d 100644 --- a/docs/data/apis/horizon/api-reference/resources/offers/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/offers/README.mdx @@ -3,8 +3,6 @@ title: Offers order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Offers are statements about how much of an asset an account wants to buy or sell. The [latest ledger](../../structure/consistency.mdx) known to Horizon is included as an HTTP header in the response. diff --git a/docs/data/apis/horizon/api-reference/resources/offers/object.mdx b/docs/data/apis/horizon/api-reference/resources/offers/object.mdx index 627444c21c..78dd39d83e 100644 --- a/docs/data/apis/horizon/api-reference/resources/offers/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/offers/object.mdx @@ -3,9 +3,6 @@ title: The Offer Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about an offer, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/operations/README.mdx b/docs/data/apis/horizon/api-reference/resources/operations/README.mdx index 600aaae4cb..8b293fa6d4 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/README.mdx @@ -3,8 +3,6 @@ title: Operations order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Operations are objects that represent a desired change to the ledger: payments, offers to exchange currency, changes made to account options, etc. Operations are submitted to the Stellar network grouped in a Transaction. Each of Stellar’s operations have a unique operation object. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/README.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/README.mdx index 3e18cbf873..ecb440f360 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/README.mdx @@ -3,9 +3,6 @@ title: The Operation Object order: 0 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Each of Stellar’s operations have unique response shapes. Below are the attributes that are common across individual operation objects. See the [generic Operation errors](../../../errors/result-codes/operations.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx index 678c66ffad..cae8a28800 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx @@ -3,9 +3,6 @@ title: Account Merge Object order: 110 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Removes the source account from the Stellar and transfers the source account's lumens to another account. See the [`Account Merge` errors](../../../errors/result-codes/operation-specific/account-merge.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx index f3b88e8dbd..3f0cdf2a94 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx @@ -3,9 +3,6 @@ title: Allow Trust Object order: 100 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Updates the “authorized” flag of an existing trust line. This must be called by the issuer of the asset. See the [`Allow Trust` errors](../../../errors/result-codes/operation-specific/allow-trust.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx index 58e153b1c1..f9026568bb 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx @@ -3,9 +3,6 @@ title: Begin Sponsoring Future Reserves order: 160 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Initiate a sponsorship. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx index ec92677095..496e2f269c 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx @@ -3,9 +3,6 @@ title: Bump Sequence Object order: 130 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Bumps forward the sequence number of the source account, allowing it to invalidate any transactions with a smaller sequence number. See the [`Bump Sequence` errors](../../../errors/result-codes/operation-specific/bump-sequence.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx index 1072949cec..f38a78cd29 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx @@ -3,9 +3,6 @@ title: Manage Buy Offer Object order: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates, updates, or deletes a buy offer to trade assets. A buy offer specifies a certain amount of the buying asset that should be sold in exchange for the minimum quantity of the selling asset. See the [`Manage Buy Offer` errors](../../../errors/result-codes/operation-specific/manage-buy-offer.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx index b1378409c4..1832a97cf9 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx @@ -3,9 +3,6 @@ title: Change Trust Object order: 90 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates, updates, or deletes a trust line from the source account to another account's issued asset. See the [`Change Trust` errors](../../../errors/result-codes/operation-specific/change-trust.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx index 3d927e13ab..be77906df8 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx @@ -3,9 +3,6 @@ title: Claim Claimable Balance order: 150 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Claims a claimable balance. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx index 5f8acbb8d6..4ca9eb52cf 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx @@ -3,9 +3,6 @@ title: Create Account Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates and funds a new account with the specified starting balance. See the [`Create Account` errors](../../../errors/result-codes/operation-specific/create-account.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx index 1767810e6b..1284e01f62 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx @@ -3,9 +3,6 @@ title: Create Claimable Balance order: 140 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates a new claimable balance. @@ -42,10 +39,10 @@ Creates a new claimable balance. - The value is also a predicate. This clause of the condition is satisfied if the value is _not_ satisfied. - absBefore - string (optional) - - A customized ISO 8601 formatted string representing a deadline for when the claimable balance can be claimed. If the balance is claimed before the date then this clause of the condition is satisfied. The format of this date string is a custom extension on top of ISO 8601 format. It allows for years to be outside the 0000-9999 range. The dates are derived from a unix epoch value in range of signed 64 bit integer. This means the date expresses a much larger calendar range of 292277026596 years into future and -292471206707 years back in past. This custom extension format will add a `'+'` prefix on values that go beyond year 9999 into the future and for years that are prior to year 0(B.C per Gregorian calendar) it will add prefix of `'-'`. - Here are examples of date string values that are possible: - `'2022-02-10T15:30:22Z'` - `'+39121901036-03-29T15:30:22Z'` + - A customized ISO 8601 formatted string representing a deadline for when the claimable balance can be claimed. If the balance is claimed before the date then this clause of the condition is satisfied. The format of this date string is a custom extension on top of ISO 8601 format. It allows for years to be outside the 0000-9999 range. The dates are derived from a unix epoch value in range of signed 64 bit integer. This means the date expresses a much larger calendar range of 292277026596 years into future and -292471206707 years back in past. This custom extension format will add a `'+'` prefix on values that go beyond year 9999 into the future and for years that are prior to year 0(B.C per Gregorian calendar) it will add prefix of `'-'`. \ + Here are examples of date string values that are possible: \ + `'2022-02-10T15:30:22Z'` \ + `'+39121901036-03-29T15:30:22Z'` \ `'-7025-12-23T00:00:00Z'` - absBeforeEpoch - string (optional) diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx index b487e54efc..cd3fce27e2 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx @@ -3,9 +3,6 @@ title: End Sponsoring Future Reserves order: 170 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - End a sponsorship. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx index 29ecd6ce6b..d5c2d3adaa 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx @@ -3,9 +3,6 @@ title: Extend Footprint TTL Object order: 230 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Extends](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#extend-footprint-ttl) the TTL for a given set of ledger entries. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx index 6462470e83..1c06866323 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx @@ -3,9 +3,6 @@ title: Invoke Host Function Object order: 220 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Invokes](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#invoke-host-function) a Soroban smart contract function. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx index e4066872dc..586f11455a 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx @@ -3,9 +3,6 @@ title: Liquidity Pool Deposit Object order: 200 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Deposit asset reserves into a liquidity pool. See the [`Liquidity Pool Deposit` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#liquidity-pool-deposit) for parameters, errors, etc. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx index f31dcb9cf9..e6a637988a 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx @@ -3,9 +3,6 @@ title: Liquidity Pool Withdraw Object order: 210 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Withdraws asset reserves from a liquidity pool by redeeming pool shares. See the [`Liquidity Pool Withdraw` operation](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#liquidity-pool-withdraw) for parameters, errors, etc. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx index 829e52f17a..2425fea1a0 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx @@ -3,9 +3,6 @@ title: Manage Data Object order: 120 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Set, modify, or delete a data entry (name/value pair) for an account. See the [`Manage Data` errors](../../../errors/result-codes/operation-specific/manage-data.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx index 38da455e11..28c46509a9 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx @@ -3,9 +3,6 @@ title: Create Passive Sell Offer Object order: 70 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates an offer that will not consume a counter offer that exactly matches this offer. This is useful for offers meant to be 1:1 exchanges for path payments. Use Manage Sell Offer to manage this offer after using this operation to create it. See the [`Create Passive Sell Offer` errors](../../../errors/result-codes/operation-specific/create-passive-sell-offer.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx index 7328140ba5..fc37474eee 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx @@ -3,9 +3,6 @@ title: Path Payment Strict Receive Object order: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Sends a payment from one account to another in a path through the order books, starting as one asset and ending as another. Path payments that are `Strict Receive` designate the payment amount in the asset received. See the [`Path Payment Strict Receive` errors](../../../errors/result-codes/operation-specific/path-payment-strict-receive.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx index b2c2f40bfd..a6d94dbac8 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx @@ -3,9 +3,6 @@ title: Path Payment Strict Send Object order: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Sends a payment from one account to another in a path through the order books, starting as one asset and ending as another. Path payments that are `Strict Send` designate the payment amount in the asset sent. See the [`Path Payment Strict Send` errors](../../../errors/result-codes/operation-specific/path-payment-strict-send.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx index a8c5efa575..f1bb488bd6 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx @@ -3,9 +3,6 @@ title: Restore Footprint Object order: 240 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Restores](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#restore-footprint) archived entries and makes them accessible. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx index 51f05ffeb6..59698d33b1 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx @@ -3,9 +3,6 @@ title: Revoke Sponsorship order: 190 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Revoke sponsorship of a ledger entry. diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx index f009b122de..dae575f37c 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx @@ -3,9 +3,6 @@ title: Manage Sell Offer Object order: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Creates, updates, or deletes a sell offer to trade assets. A sell offer specifies a certain amount of the selling asset that should be sold in exchange for the maximum quantity of the buying asset. See the [`Manage Sell Offer` errors](../../../errors/result-codes/operation-specific/manage-sell-offer.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx b/docs/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx index dede218eea..27bc4c1350 100644 --- a/docs/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx +++ b/docs/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx @@ -3,9 +3,6 @@ title: Set Options Object order: 80 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Sets an account's flags, inflation destination, signers, and home domain. See the [`Set Options` errors](../../../errors/result-codes/operation-specific/set-options.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/payments/README.mdx b/docs/data/apis/horizon/api-reference/resources/payments/README.mdx index bdd1c16faf..bd22cb2e5a 100644 --- a/docs/data/apis/horizon/api-reference/resources/payments/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/payments/README.mdx @@ -3,8 +3,6 @@ title: Payments order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Payments are objects that represent balance transfer from one address to another. Payments are submitted to the Stellar network grouped in a Transaction. diff --git a/docs/data/apis/horizon/api-reference/resources/payments/object.mdx b/docs/data/apis/horizon/api-reference/resources/payments/object.mdx index e7e34ae59e..8d4ae6cb4a 100644 --- a/docs/data/apis/horizon/api-reference/resources/payments/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/payments/object.mdx @@ -3,9 +3,6 @@ title: The Payment Object order: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Sends an amount in a specific asset to a destination account. See the [`Payment` errors](../../errors/result-codes/operation-specific/payment.mdx). diff --git a/docs/data/apis/horizon/api-reference/resources/trades/README.mdx b/docs/data/apis/horizon/api-reference/resources/trades/README.mdx index e66f03f4b3..e98a5b59a2 100644 --- a/docs/data/apis/horizon/api-reference/resources/trades/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/trades/README.mdx @@ -3,13 +3,11 @@ title: Trades order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - When an offer is fully or partially fulfilled, a trade happens. Trades can also be caused by successful path payments, because path payments involve fulfilling offers. A trade occurs between two parties—`base` and `counter`. Which is which is either arbitrary or determined by the calling query. -Learn more about [trades](/docs/learn/glossary/#decentralized-exchange). +Learn more about [trades](../../../../../../learn/glossary.mdx#decentralized-exchange). diff --git a/docs/data/apis/horizon/api-reference/resources/trades/object.mdx b/docs/data/apis/horizon/api-reference/resources/trades/object.mdx index 37a3caf1dc..cd494272af 100644 --- a/docs/data/apis/horizon/api-reference/resources/trades/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/trades/object.mdx @@ -3,9 +3,6 @@ title: The Trade Object order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a trade, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/resources/transactions/README.mdx b/docs/data/apis/horizon/api-reference/resources/transactions/README.mdx index a7701edebf..776de75a65 100644 --- a/docs/data/apis/horizon/api-reference/resources/transactions/README.mdx +++ b/docs/data/apis/horizon/api-reference/resources/transactions/README.mdx @@ -9,8 +9,6 @@ Transaction meta `result_meta_xdr` will be removed from the SDF hosted Horizon A ::: -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Transactions are commands that modify the ledger state and consist of one or more operations. Learn more about [transactions](../../../../../../learn/glossary.mdx#transaction). diff --git a/docs/data/apis/horizon/api-reference/resources/transactions/object.mdx b/docs/data/apis/horizon/api-reference/resources/transactions/object.mdx index 7a473963aa..98dd3a0aa1 100644 --- a/docs/data/apis/horizon/api-reference/resources/transactions/object.mdx +++ b/docs/data/apis/horizon/api-reference/resources/transactions/object.mdx @@ -9,9 +9,6 @@ Transaction meta `result_meta_xdr` will be removed from the SDF hosted Horizon A ::: -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - When Horizon returns information about a transaction, it uses the following format: diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-claimable-balance.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-claimable-balance.api.mdx index 8df656332e..7df20c3519 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-claimable-balance.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-claimable-balance.api.mdx @@ -5,7 +5,7 @@ description: "The single claimable balance endpoint provides information on a cl sidebar_label: "Retrieve a Claimable Balance" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-ledger.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-ledger.api.mdx index c2e4387a81..dbbfd220ca 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-ledger.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-ledger.api.mdx @@ -5,7 +5,7 @@ description: "The single ledger endpoint provides information on a specific ledg sidebar_label: "Retrieve a Ledger" hide_title: true hide_table_of_contents: true -api: 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 +api: eJzlGdlSG7n2V1R6mSQ0ttu7/XKvIUBICEuAIZhQLrV02i1QS42k9gLlf78leaENJGGSqVtTNX6xyzr7rqMHbMnQ4O4VPgA2BG3wdYAZGKp5ZrmSuIvPEkCGy6EAJDwMAskyxaVFmVYjzsAgLmOlU+IwkJKIIJMB5TGnC5QSDrDKQHuIfYa7+AtYzWEEvTlfHOCMaJKCdTJ0rx6wJCngLjZwl4OkgAPMnTQZsQkOsIa7nGtguGt1Di+KvEBEMk8j0EjFL4tlaAIpwd0HbKeZ48ilhblEMCFpJgB3K7PZteNpMiUNGAdcrVTc1zrf05xSMAYHmCppQVoHQrJMcOo1L98YB/fwnKmKboBaZwXt7GT5nMsA0ggYc3r+DFQDVZqZAiDRmkyd3Syk5hW8BJe3r4AzIOKfQyUailDGai6HOMDzOMFd7LjhWYAtpJkgdk3FSCkBROLZrOjpqznR6wBbbp1bHmloIg2hzsSvUOD/Ktoq6v9pgmVkmoK0/zSxII6B/sOkegLkE+BJ0K05+lGL61mAOXtJzCUHzubOGHI5HFh1C/JH0GtwswAnxCQ/gvfnjr6GwWthVxX3pZK4si6Xtlb14POaF+diULDIgKp8Xv5eQSImXAD7ZfSV5f8Slp0MDNjBryFToQywAbHPDepIK0vEgCq+lvSP5zHAIFNKvHgYEQMDB8HlwFitVGZeKZTH1GBAj34BOyWTwcImht+/1vuZVlZRJQYj0IYr+Uq0BAgDPZgw/YIN3Gc94zjDT3JkEfpBcT74YST+IMqeR9B3o6Po+XU/F7z6sg+/75/ntn/Brms2u3YGWubtYoCareYV7/Gn81X3AY+IyGG90y97+byY4sTazHTL5URpfq/kpgVjJdiSsSAE0SWlh+X55GTK1VZYb3ZqtZf672+QKxdpPfyH5tooHQiechsozUDP8FpJd+Pfszb7O/wfKb2ee7GX/g7vJZ3Xcy60y99hvCDzWr6LroYhrIZtUqu1KFBGKo1GtRlHpFOp0mbIaqwV1ioRIY02a7OoHsaNej2KG81a3Gp1omat2nma1V0chs1GpxG2O/Vq2KrUwmZ7mep/DzcNo0UjxB0gNGzGQFm73QjrrUqzFTXaUavZrsfNCquGzbhTC6N2WIubjbDabEQR7bQY1CmQWlhjxeLTXVryZ/2w2vxRu+u80MyarbV2g6uVsLMZVjcrzbNqtVvrdGvV/pNa1MVhpVGv1zqVaqXdKtXqrWq72SiWqC4O25VWtVkvtRqVTrMZfqdodcNK5QeNpVHxnxeaR+j/ft4dwup68ce9Xq/3/mPT7I5ah3x398OWtJe2mhxfHu5fbJzt1XfK/S8fRd4Wncbn5s1OJzKj+322sWdzUU0PP1/Uz/snG5/uTqOyjA7bu+H22aQXn5jp+bTtSPe+gr7Meo+fryeH2WmbkU97/XO4bNzll+d0n3/sb33eah3wA9P/aHYmnbtxqxNPOp2tvCxuN8w+HB+eH9L8aLsKuU3u4+Qgv/gYyv5Wrk52398M9+BInx+ppHnf+iCiy5Neb2evzEbbhPV6va3doWe9fzTu3bkf/d7W59OK+3Ws1Omh/fD14+HHT58uxJYd3vY+hwdbk3txf3mzL04rk3F2c7yRb/NWMz65aXTGw7NpZWNiJ62j8O4s2rho3tP96v1FX+rz83J71P7S/7C7FStVrZxcfko6jY3xha7V29N+Dyb9jOmbZLo9ibaTifjzrH/0tSn78f6QXm59lv0vt0dn2wfs+KjVnMJd9j65yzuf9DHULo/Pjmpjr8S8PbsKkIJNlKsCQ/DTubuYd/Gqtjwsk2PmE0WPlhf7XIvXlSn80rX+bA6HDsGOlXYD/vcoxrnNNbyG5u4SEskl1Wu3boiVn04WffbDnC4O8CqacaVUKYV+9EhToqePUI+rESLRh7OzY9Q73kdWIUYsQVwimwA6ncu15FpC+xZxOQRjHRpDGja94YyH9piZViynwFA0fYmEo0yQm7eQTYhF3CAghoN2rKmSJk9hiUpGoMkQUGE/gTQIYvkIHLiDyUD74U1S2FSag7TA5oJoyFxFkHbeK1Fu5kItBdpWGkroLOHGa17QI9KcDQFFYMcA0rGfa7uOeayVu/YZJPgtoDERAqwJEAMK0moi+D0wBBOaEGewwFMgxoDT2eSgvURo6Q2rkMmjlFtUHC8CdJeDnjoXEerLLYqIcMoGSGlkrAaSIhi5ljyXo4jtiD5ilp5F1r89Eq6KDr1+s0xPBiMQrsuZtZFkIXaZKg2bUjF4+6+Knm/ym1yyo0SiCNwRGGfLESeInn85CBBBkVZjA9pzUBLcVtNZZWXr0/efzE9tzRQ1ZauUMGXDbo2ztEIaXDh5alS5a8SE26mjP1W5dtHmDBqgMSC3aUxTkMwdeUMR6RgjLo0FwhxSSm65HCLGNVDrfUiJEMbr6d06zDkDNM+YCAxK1NibhKVccmNBo2WI+3Bc2saxcCZGbzTE82D2+r9fafoH2hJq+GiD8Xi8rvwKcjMSalgmmxLGmyaXm64LJbC56B9vXfIgo1yaEHo71CqXzC23n2TDPHY0TbgFanNNBOKpy3nwo/zcQ9yglNwojRatA0V5mr0toV2l13bnJFK5RQsRnQEX/FahoRi4aSxANAF6ixx0UX/HEu050z4aYMhtkkclqtLywg7L76Wq5UioqJwSLsvvd/7cOTg63j/cK6XsrXfXFsRKg3N8BEMuA8TtHwaNlbYJ0sCtn1fl0MvhygD3QgBNFLBlfbtyaYkOFfuVQoCYonm6LDBd9O7dGBBTSCrrniKUNoB0LqUTYmko57J5GSLIRQwjwqVLsUqsYundu3kBAP86QISYetIedzAigjOv4OBZbwMX+hqQHStkwL1fWJc8koKWi6LCgKo8Ewv7pK4M8zRT2hJpfYBFyptRcBJx4TLOYRXCq7QW+i67UiLJ0L25uOAaywBlRAPbZGosV+Gl4nVVVWZ56oue47nAdEXNlTwVIwnADHozhj+EQIXM4gYRgwj6hrdJ5tuBI/cNr2znQsRfEHVqjuJT0CNOoTCMFT3rgTZV7FsZ9ysb90xCqN+iLd57lmIXA3rXpZ53Pg6eDHvrox2khPtTEEL9t3g2C7DgFKSBAq9eRmgCqFqquFcS5mI35qBXJ5vzk0eOi3JC/On8Jj0nasoH+9s7h6c7DqWU2FT4rXGmjE2JLLBcrmUQQauHr7Wx4eHx6ehve3lb7NcsTGw5E4T71bHX6mExtl/hxdiOA9xd3WqvA5woY93xw4MrO+dazGbub9/5cPfqOsAjojmJ3IR89YAZN+43w92YCPP0Xa6o25svi/3eW/RXXuteVGX53iXda9diy4VxgG9hWnxBnF2vNo9e2Plxj1LIbAHx2XuduwysLjt7O2d4NvsfX4YvSA== sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-effects.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-effects.api.mdx index f5ff51859b..096e84d803 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-effects.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-effects.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the effects of a specific ledger." sidebar_label: "Retrieve a Ledgers's Effects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-operations.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-operations.api.mdx index d496e94ba1..1f8a35ebff 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-operations.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-operations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns successful operations in a specific ledger." sidebar_label: "Retrieve a Ledger's Operations" hide_title: true hide_table_of_contents: true -api: eJzlWuly2zgSfhUUfkySKZ3UZalqata25NuWD8VX4lJAsikhJgEOAFrxuFS1r7Gvt0+y1SCpw9Y4cY7d7K7/qEw00F83uj80G3ygho007byjB+CPQGl6U6A+aE/x2HApaIcOxlwTEH4suTBEgUmU0EQnngdaB0lIZAyKobAmXBBGdAweD7hHQrtkiRboTGTXpx16CkZxuIP1TGd/tgAt0JgpFoFBKJ13D1SwCGiHavgjAeEBLVCOoGJmxrRAFfyRcAU+7RiVwFPkQPKJRCSRC4rIYDVC7Y0hYrTzQM19jBq5MDACRQsUPrEoDoF2KtNpYYbIS5SWKsfzRwLqfglQwEL9BNF6DsOMmSHWo5oYuQRJetYXqS89GYbg2f9lQBToWAoNmjDhE65JnIQh+CRQMiJmDCRmIy5GQyNvQZA7FiaQGqzAk8r/UjubzUqzWW3VW2vtRrtaaSyaLZUPL7faB81HguV2IFS7EBo5GXNvnCHURI9lEvqExTEwVSL9OA8sL0x8IB+Y9j6Q10x7IHwuRm+IVOQDqvtAXuNP9rhEdlEN14SpURKBMIRr8c+//8MQDaZAuCE+BCwJU//bZVe6RxvFxQi9I5II84Rpj6YG0ptFx4Q84uaFjsEAjdgnHiXRQnzmrkhTDfwSQTm7PvGYIIqJEaR7XkXwTqVCioQJksQxqEzQBhjXZMyU70kffHT1jlT8TylIIBWJQQVSRQxzQwHTUuhnnJZvIPhPfFetfGlcVZcSKNvSYcB4CP4LPXcGBnVj1uNvHh7pWo8YSYFGrE+Dyc7GTLIqVlrhShkCE/P9tzxj5Zd2/6Pk4mtNYEIzL0W2YArmyNJYmieeAtwFAswbz1JpyVx8khNFiU5vEEhGG2iYU6ngzyMsKZvTAvWkMCAMirA4DnlKRuWPGuUenjpIuh/Bw7iPFcIwPNUyDLm41Z+XgyAAz3yB4FhBsCotbQwbm3/ilk4L1EAUh+iiFbs4nS7uyrt00ZsCNdyEsLBGrMADH342WBrC4GeDhIHj/2yOWsibnwoZSnF/lbJcjvs2/haO8eekl+QQ4X0MQ74wIz1UlmuYQja44ojLhWjKMkPmeTIRxlqX65wVa6gwm2H9+ExV13mgthhZZoY8nNMNoGNjYt0pl8fpIVU0oI0AU9IGwpCpklSjclqv6bLTqtZbjuOU59T3e1qQ/faLPf9+c36xBcZveFxPC1TAJ/P9dVWrzUa7Wa9Vms2W02i3K43V2mMFdz9ae2Ot0n6k3RYpuHdDiFzw/TRys/LCVtfftBlzROWnUFak4QuWXjz4yjXWrNdra23XBa9Z833HrVZarFLzqs1Wtdpo1gKvUW/7jLXcVtBoBu1GlTlQb1WCtWrgQMUG6vyc+V4WlvM1cxrMePAF62cr/D7frl/+cm8fn0tfrYY9ryWjKLpi7DExrZZZ2Lvh/C0xf0PTMlHenFk6dLt7crHb3NrfaDnd4/5er765fbW5dXK9f3p8crLbv7o8Pbxu7PfOty8Pt5tv3w629w43NtfPdmjOYzRm91ir0jn/VQsZg/lDy+BOpdouVp1ipTlwap1Ko1Nbu36EdMz0mHboN8dagTKtwQwzbJ4Cn5shC+MxE0lUn41jTU479KjfPZg941onoNAnG85Vbf3i8vy0f+hs7Gyd7J8cDy72d/u7tcF1b2OjWzsY7A/OTwb7vePL7f5Gr1V3spXwteAbvSpx/nq31rhqrfdOrs7qF0fXR91G/7y1c9JcP9jodo8GR1t9Z3DkbB7We6e91vV5fWtv4+jyuom2RNnOVkoV/Gu1KBbKP4ZqkHO/I9Ws1YC5AVtz6m6jVa81wWf1tuu2meesNVsNZ60RNP12vVFzGkGz7bv1aqvtVFprbK3m1+qt9g+gGrTw30g1uUN/LNWkWlZTjR37DNVkMi+lmo1es7a7c7xzubN/srO71TpoHDcOt/vn9cPD7lWvebp9vbl3dbF3vHF6ct3daxz214/7l631OdVETLARDGUQ2Koq55vaV/PNNwfc03xzarbE5R6kz+pr9aZTzZ8NFe6ooJ30cYH6+F6e/k0L1E3u0etLHIZ9mzvsvGkIwyejKxhuWS5jutPDwZOhOeF1e9v9y+PNncuLrasrp1bvOlfXZ8e9Pae+cVl3emd7R+c7V42d1uDi4uTs6vSocb1/3asdYWsR92KIcVSZ3kyzvwKNwIwlBtcIbMmP/cIOnZVVD3lfcLqQeRafustbj4kKvyzq6aq+ziCVI0dgJlLdWg5cvWKQmETBl6y5lUsSka96g02HQNpyPqvQsy4PLVA0JZ1dKVVKGAM6iSKm7udSJFbyjvu2pUh2BoNjsn68i30InxmWtxPOUly51hLZNYSLEWiTdiIVFK3jtJW2M2Ml/cQDn7j3q5ZIu5v4ijXrVAHTHDujknhS6CSCfCq7A8VGQBb6EURBaKPSdlCw8TnvZhWl4iCwR2KBKIgVaBAm65AkOgWVA9qUCrDDxrW1fMEOV3F/BMQFMwEQqD61dnnmsZL4WqlJyG+BTFgYgtEF4oMHwigW8j+xW/PJG2PXThfsCjb6SRr9FtGsM2ck0YlrG3gL51KB2J4SblHGZsRlIRpbwP6nNgpYROAORI7jcVdpPrP0JLL+3yPh3eKG3rzO09OHOwiRHPTSCZfBLntSQVFIH978X0XPe/Fe5OqwGe0CDoFGX95xRry3pwcFwoir5ESDshqkgLxVOfP1WXdff9bXvvR02UgZ6rL2bzV6WhIFGE52NU9i9+ETN/e4/r1MFEYbOrRAJmAb6VEEwsch6ygmUDHhQhtgPk6K2C0XI+JzBZ6xe+ixMNTWTruto4T7QNKMcUGTsZxYl/gRF1wbUCQPcRuOuW9Qhe2tv1YQpMFs7e/OLH1FNkI5mvtgMpksGz+TLLqhHJVZUcCkqBNRxFNoDMXs/Hhj2/laYpow73akZCJ8IsXjbEhjR3ljbsAziWIh4RHmPER252XW+4/YR6lIdnQQN4niNyWyJfGuJm2J4WPmygSvASxEdGCmbxYa0geXaSgQbwzeLUHpRfvt5cI2unbugBE348QteTIqZ34oj2TZDaVbjhh6uozpxT3Q+dFZxksGJViYRsr2291ub7jVPx12e+e9g/5x7/SsFPlv7GZuQCAVYFi4MOICrzFeaTKRyuDlEze2CBAjixJJgluI4I1lendi0WPSkiPpfw1NEF969lLFerBDfv11AsSXREiD16tSaSAqEQJB5G7EDU1JihGMJ5+FmEyLHDKLtF9/TekB7FUiC8N7u7SdO7xjIfetgcMnJx9gYiggZiKJBrx/NZhawgMlMsrxwZNJHGb+iZCkeRRLZZgwNvxcad0YcubyEPMRZy0EX2kpMTD30lJaE46hNxEFEjMFftGXEzELPhksmypjwyNLiagzm4mUh4QoAyLwxYi8nsCrMCQLeYc3Wpow8p5ustgeFrjcezrzHYYIFuigIt0PztIwWyjVll4YUagog2IWjdmlCfNsgzG7D8phL4b7FiZm2jotPCoFlws/iBi3oxCG8m+LY9MCDbkHQsOCrvWYeWMgTgm7D9zH2A24LavTkWI6MteYkQ2zo2m3MV1Ulw92N3tHZz2cUhqbKLQvabHUJmJiQWXe6yWMpN3eV5os3eIvVRgP81ul7/I1QfbmYeCTKcch47YVbc17yAr9dzQr9GmBdha+HVio9W8KdCy1QdmHB6SqtyqcTvFxen+HbwA+18wN/+oGb9Gs//zF/kqn3ML94qcKWROe2peRlxj3X3N//4wX8i8XvtIJ/0N39c84Kf+K4Sud9IOu5Z8B/OQrgmXknwX6Qy/fn0WefTIwx3uD/yiOrn4h+7w+za4e35CXfPO0Elz2kIn7RXA56BmXTm+mBToGhjmFYNPhdc+DeDF+nnxDgFbOejPbvQGdTv8FiSw/rw== +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-payments.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-payments.api.mdx index 20646e86f1..1d90628c56 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-payments.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-payments.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns all payment-related operations in a specific sidebar_label: "Retrieve a Ledger's Payments" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-transactions.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-transactions.api.mdx index 5b810b2326..37b4a336f1 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-transactions.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-ledgers-transactions.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful transactions in a given ledger sidebar_label: "Retrieve a Ledger's Transactions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-liquidity-pool.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-liquidity-pool.api.mdx index e553abef7c..141da90d46 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-liquidity-pool.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-liquidity-pool.api.mdx @@ -5,7 +5,7 @@ description: "The single liquidity pool endpoint provides information on a liqui sidebar_label: "Retrieve a Liquidity Pool" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-transaction.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-transaction.api.mdx index ea23973c91..9e0ac27b92 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-transaction.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-transaction.api.mdx @@ -5,7 +5,7 @@ description: "The single transaction endpoint provides information on a specific sidebar_label: "Retrieve a Transaction" hide_title: true hide_table_of_contents: true -api: eJzlWulz4rgS/1dU/vB2ZgPBnCGpmtpnwhEI4SaTY1MpYbexgi0ZScaQVP73V7I5TMLsHLv7dqrWHxLAre5ft7pbLbVeNImnQju710YcU4FNSRgV2kNKs0CYnPjqu3amjRxAgtCpC0juCBFQy2eESuRztiAWCESozbiHo7eMIoyEDyaxiZkcd6ylNOYDj8ialnamDUByAgswEjC0lOZjjj2QwBXEF41iD7QzLcHp0cHC0VIaUSB9LNVnDvOAcLC0M8kDeKdJQk+EOSCTeR6mlkDSwRJ5zCL2CkkHkAvWFDgSEktAmFrIZFQQIRGzEaOAGEce44C2mgillzAd8LB29qLJla/QCskJnWopDZbY8131UxEmVtHUsV3Il4tFXZ8U85ZVyk90sIt2Cco2gJ3FJ5A1y6XT8ukE8qZlmlDOFe28qZum9vr6oPQUPqMChBKW03X1b1/XYWCaIISW0kxGJVCpSLDvu8SMAGeehKJ7eQ+aTZ7AlGoGuFJPkljKo0voTHydToBrf53K4WAfMlTsQdqZpqRprylNgue7WKop3VJPGHMBU+31NTnj9zHTh5QmiYxsveGBTZMFsQV+IlSxj/1koHYO/ZMBA9sGU/5sqHwOJljws8ESKvjB+rlgvSGK8sQuNrfxsOeDu3lP2Dqh38NrSiPWIQU2sokVzROeEjp9lGwG9D31xmJC2IF7SL+UFq01hwa+i2JCJcR6bG1IqMznFLHJQZnwEcvDIFjATXh8n662WvlYSuAqvzfujfSdnj59eCkWXxP6YsviKu/v0t6jFyzhgI3eUjweMuQ7VI8C5gFQEw7S2vDXwU/w+pIKf5bjl1RWhKaD+fQLdvPw8tGGwybYeu/jWzP8kWcAXYDLfHhcWvwgWw4icOXXXnsg8RdplFZ/SOCBxx7jXw/5AZlSLAO+l+0w53ilijAJnvieCXrdzVCC8Wvy56gwEelkWfi6LaUiYQdLx7MXbYHdAPaLlk1ZEic8zZHSF2eZjMM4eWY0LUFICvJYSHBdzI8Zn2YStabI/Pm6ba8O+Q4Y61Ei06g2i7XLwkXnqnLRavUbvXxjfNNvNZvdi3HuvNXNt41K73O19Pl22Gvd9YqdXulkdNXp7Kep75AcDxKZ3MlpKX9SLr4vEP4pa2Z2MF5+MwMuGE+5xCMyxbgFPIr/3YKl9gL7JcQ/hnuN4dtBJyuMH0T9W8T+Exbmf2Kpn7I5Pavni4WcXjgp6OVsrvy2avhzotRW5I9krVftP78Zeruyawek7S/u8b4wXs7/CvmbwNrEyP4ir+X0nJ7Ws+lceZTVz/T8WT5/p71f6bUfju0/WJ+1UlEvlLK5cqlQKpWL+XJee7O0ZXU9sZhF394tX9m3i5NmqKdzMbwsWNygQ69CTzrDco31C6ed8+EJDiv2rc1vZ6fdm1OcyRcV+Z1RpfVlaBhG+8LYfyrR3776Ux3oJLjAYUv3p3dHz+NF5bLW7Y36syAnjJvcRSnX6o3czOfF6VFEX4uGHs193DPEOHPeMIcwLFzSxbx2ujqqmE/Oimfd0hMJyXIgFkE5kjeaWd3rWLYo3DaDWwql0/Aq6Eib3JUK08lJLT+no8GJUVhVC0931eGwHOGzGv6QJKFfbPXrXxXbwwqpD/qXsn476PkdPAmvg0XTuRteD6oYP9n65fMtnre8Kb4x3DoedW9Xt2Y2exssx1fZ+rObvR4VxrVJM5erLLqZ8sXzeNr/pO2v/NpWdKO/g7H7WEmAS4zdrfrabkAzsriB50uS4KVbTe7kxLl1eduwRbYdDp3qk6632pIb9VPnSJKRXrSzPGPP4gHO5767m9zGjn88OU61XGmLu3q/Vs/n+eWwdMv8/niUn5RIu9IoUOFDqZypVjqV2wT22r6L9I1veGqVOW+0dt+/15mM8/rd+djomjeRhwrT2HfO81ovrAXL2bXRv7FB+G2fELcy6FmLeVPUJgRW7gl/Ll/V9Pr0i9grxrc8/e2fqoFpKTc1/v/OHj9tO7N5ym/s8R3zEatSmrusfL4clZt3y1axPZ3DERvl24X6qntxufh8M++2z9v1xuroRLmSUe8O9OI4nplnZ0qKxDrheWNVyGWPWpSTykKMYG51LkT1qdkjnVmn1Q4VvoqO3cumIbfIM+HWft9m/7DhH5US9N+Z7Ixx8WLkxkZqdxvnba+VDxZmtf00uSl4EDQbR8tOydd1CLtX06Nmrq/PFhG+Wb8fDm6eb3bQd/arfRFu4qns4jmm/854/mF/qTyX7oInu/Nj/vLpk/Z2fxJnqsjzrypzO3B21D8S2dXCLrJvjX8ushtzcTvbff9ezzKa17NW3yguTZWezpe7zBDLb/YzxvCkMRhXKtZpaTULvMvLcb12mjtiJBwErZPLm2DRC8NR//OXsX/V09RsJTaLGmUUtP0d4r32PJPNRvO6bsz1a6d2NMv6i8rnUpnU3dZ1rePPO5k+7zhz5uGKb56Pr/2r4lPLeb65Jif1/vP4pntzfd1z+gPxNLltlE8yod0ZVpSnPLzGj8IgHaYKySnIeK+pqrr9kv3lbctA1dkC+GLTWQi4+22VrnaoMzKK6VAHZMi4Oir7Ekc7UKb5Fp71DSWiG64Pqs9hs2iHvd4fX8R8tZSmVIlH68f6cTaqeD0P89WOatelwRRdjEY9ZPSaSDJkYYkRoVHXYxjj2kg9Rk2JCJ2CkCJqgnBIR4YTEXU00ufMCkyw0GR1iIXijJE67ohbLEQgwIIAV6JVTyXwYDMUL4DjKaBEkwJxcLEkC1DkisYHHp2dUBPSjBOgEqwYCAefgwAq410hCkQMagPonHE4RiOHiEjzhB4TTqwpoAnIEIAq8bG2+yN7nKkDVIFcMgMUYtcFKVLIAhOo5Nglz2AhWJoOVgZLRRywEKB0FgHwCBHazIZkSAQTj8hka0yk0DwAvlJTtK7m0QS7StmU6jgJyQF7CBZANziSoxXT3cjjd571b/eE++SEPnzYhKcF8eaGi71d7Rp2xmQc0pRZ8PFf5T2/09/pRpyJKZqAegVC2XJBMDLHg3YKYTThLBTAIwlRY9SOrLK19bB6Kb5qa4uZIiMZc0VGWDOhLM0QB+VOETeTqRO/JZErxX/FAq68TRk0hUJAHFQfF6ilXkWGwlQJRoQKCdhSgzw8I3SKLMLBlNEcmth1RaRnNK3TgFiA4oiZgEAOCyOTWB6hREjgaOPikTtubKNEKBOjDxzs2Jkj/atbTX9BFZdNdzYIw3Bf+S1leuKyaQanKYRpEdC0WoUcSK/Xj48qeJBgKkywOZtyFlBL9dnfREPsO9x0iARTBhy7iHgq5sGLZj6aISKQh58YR+ulA00Cz/94jOqM77Xx8YQFEq0hKgOu5W1dg1kwwQJSyHTAnCFFndRfiUQNZdqdAaZEOsHk2GReZm2HzJRlJi6bZDysLJ1R4UVMEJulM6NOzjnFbuwpjXGzWnusdweP1dp1rd3t1QbDY8/6GE1mBWzVmA9VSE4JTSEifxEoZFw6iAOR0ekGnUYoVZIgEUQwHQbWJvvdq6BFHWb9SJpAFjMDb5N+ztCvv4aALIYok+rOBOMCEA8oVSA2ZlQTGicprO4cUAu7KpiSOWTrab/+GqcHiG5XYNddRayjsY8L7BIrUvDx3coHKjA4IBkyJEBdr5AqtKgJnK5TjgUmC3x3bR9PJWni+YxLTGXkfhMWmdEleEJcFY9qVML5jvcCQ8WehymeqsshyvVCmkI+5mClLRbSrfMxe19V5kviRSlRyVyPVClPJURmI6pOKdGHEH5xXZSIOyIQFgij37Vz7EeLhWL3u7a1nXKR6JSVe6JrD2M3S5Rqe8eaiijN7PTaG9c3KbAZnd+vr6NsYCfdva4CE69vseyXgvuFH3iYRG/Bddl/k+/UgT0xgQpIyDJ8bDqAcse66rdYyndtAnz7Jh2/2UlcJxscvY0P9GOmItNuntc6w5oacuxIz42OZH0mpIdpQuSmv4Iw2r+cs1dZvOyumPwNl4XWWwwJS5nxXUyiJlCk5Mu64L9P3gpS7eGzd7eEHlKaw4RUtC8vKmGNufv6qn6O1kzt7P4hpS0wJ3iiauv7F80iQn22tDMbu+LtVaKkyh8G6672R/R3XzA6aItNJ46qPty686VpKW0Gq0MXpl5Vz9wBbCnXuX9ZkxmmCb5MMHh3VUhtQbb7rUZtpL2+/g/D1ugu +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-effects.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-effects.api.mdx index aca9a2bb5a..24789dd5f5 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-effects.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-effects.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the effects of a specific transaction." sidebar_label: "Retrieve a Transaction's Effects" hide_title: true hide_table_of_contents: true -api: eJzlWuly3LgRfhUUf6yPmvuSNFVbiaTRtZItRYcdHyoZBJpDWCBAA6DGimqq8hp5vTxJqkFyhqMZyfKmduPs+o88QKOPD41Go5t3gaNjGww/BOeGKkuZE1rZ4LIWcLDMiBR/B8PgPBaWgOKpFsoRAy4zyhIXA4EoAuYs0RGhxKbARCQYcXNujaAW6BQMxR8HPBgGp+CMgBvYrMrcyfkEtSClhibgwKBed4GiCQTDoMLxKqY2DmqBQM1S6vD/Br5kwgAPhs5ksKR+RRChBgjTSUIVRxOoI4nmIrr15kjgYzDEOuqAUMUJ08oK69A+rYBoQxJtgMwssmifZTEkNBjeBe42RW2tM0KNg1oAX2mSShzqQ8j7rEWjXne932+1wn6X80E3bEHUjwawHgFEbboGbbY+2FjfCKHLOGOw3ulHXdZiLJhOazM0WGasNiUGXzIwtwsgRFTaJRQ2icqSEExutN9KS5yu7pvUzFtFhCKUMC0leNTQfAM21cqC9bgIS9JMSuAkMjrx2KV0LNT4yulrUOSGygxyrzDAtOErcRLKwRhMFajBoDUYtNd6a+sb/Y12q181WxsO3281ByvGipZ2oKqeERo5iQWLCw0tsbHOJCc0TYGaBjlOc48RismMA/lELftEnlPLQHGhxi/QHT6huE/kOf4phhvkAMUI9LVxloByRFj173/+yxELrkaEIxwimskcf8/2G26ksgRPKbUsyA0MLqvASJEI953AnMdAEvpVJFlSOobf5RyK/IwDbxCk8/wJo4oYqsaQ73kble+0WqROqCJZmoIpCL2DCUtiajjTHDhCva+N+IdWJNKGpGAibRKqGBAD1OI5ehi0cgOBL2HXbj3Vr9qt6fQSQSm8GKk7rRb+WcTlLGMMLEYippUD5ZCEpqkU+dlofrZId1eRSqU8jny0KuTr8DMw3JDUYKRwIpd3JYW6thU9H6CzIKNvU8UGolXO4pF13ivUdTCtBQ6SVCJ8FepQawlUYVSpOMqHnOllLXDCSajwUPDV/WAqpQZufiiVpkhWDh35rcYz+g2fgCQEzhfEPkBanM0KITWG4lEXDpIn+NVT/W92u/1Q8NYCi0cT+BMs+L0dkQGHH0stpBJ8lbCSTnCvfOXWfox6gW5aCyhjOlNu1ZKUOgcGY+neh836+1Z94/Ku359WmFHODcZYtNQvfvjK28zlkG0DHo/abOQUEn2zMLJtgItFohGE90bOYwM21pJbcpHyezz3dQJkpBMq1IrZXUnHq1YdqEjm+cUIrBNFrjGnOxNjBaZiQjEwt6AYmC85N5l1UiiorJqPzRfOx1at3cxcjNfuveER0OrEcRQtaJf/nsvIf1f5Uw5BLRhRRyvL/M/5Kv9zvmhbUpHQUALZotJf/POVK+b8yMK2P0C0sBFneLdrY2ORrnCY6uzyJlZnV+G7mvfq+VV7sZr/zE8RrcfVXyJZtmGJZC5oGb7V0h6ne2w/Hzew8PBv7NAy0YqNWiaaizsSXzLBhbslJ1rLioh7Ew+uOIUbfb1qYgSptmIls7fCxdzQyfJMeVTO4EsGCNJWlqTAg8si8l2JSuzLs/CFpHVaC1huwhVdEWunec5RvQ0ED+4F9XmsLqLtTPQC88tq9pI/x4Mp6llo4y+wR9/uw7vAP/sWU40ymc3vviB2LrXDZjPOnwN1B9YpcA3rQEpqGtqMm5XHvm322x26sdEbhGwtinq0O+h2Njaidi9a24BWCOFGuMF4yFvtVhe6dLBBe71eb0BblA56a2263ixKFH/JH80//+TfKD+3Wz/5V+DP+KaqJLg/iprtTnvQWR8M1tb6vW57Y32tW+88oHqZCP/Aqrfvq+7fsOhxC/nvLMP9UPWghXT0O4ycF2mayyrdzye/g29p7tySnx6x/H6G+KsF0W/JKTK+oLViulX+a98PD8NgJbdKhhfsbe4fru3s7HXevt1/czh6fd7b3vnb7vu9w93O0d7o7G3n4M2r3ll/dNLrnG697R4Ots6PR1u9zTLgDEteV2yeoZXhr7MY4oJOq9Oqtzr1Tuu80x6214fd7nvUxlpwV2WkpE7cYCCjSaFiu7/WbfTb7c6gPfCvrj+I+3R+J/fpPNF9Ok9yn8499+n8/aR3+Opd7/Dt65O3vcOL7YvDdxe7nV/W3g32j/v7RycXO5vdNydvzl69237VPd97vfP+pH+27D58ls2X3tP9Dbznclr8qwUJuFgjKGNw+csmDobBYvi8u1+bnpbIY2kKzE1Zys6MfNrOBatqdec5HXkNbqLNtXfy1RyjzGUGnsJzt6QkquR6iVXESPtco0gGispdUAvQlHx1q9FqYJCwWZJQczunIqnRN4L7MjHZPz8/IZsnB1iq45ibCuXrr2e5XqXUBjlwRKgxWJdXlw3UPXB5j8GvTI3mGQNOwttVLPKKNb6jZ9VHoFZgtVv7In6WQLmU3oChYyCVoh4xIL1XILkvZs8rlHVtBCgHPFfEQGrAgnJ5bCCZzZUqFdrWBrBqKqy3vGJHaAQfAwnBTQAUis+tXVx5YvRn31KR4hrIhEoJztYIBwbKGSrx0UbgK4uxEmtrnoN3byKszcB4jWbVVqeJzUJflK34bI34IjFuUXG0SJhn8TWsaVtngCYEbkCVelRX+6bBbGVjybP+7J7wobqhl8/L48nhBiReKnYhShdqN5k2UFeaw4s/lfd8VB9VKQ4bDCHgFFjE8kZQwi5Oj2qEktDoiQXjJfhOXN7JmWF9Njq038Saa2abTmtpm5ZfW0RaEwPoTp4b0/jS+YrPNx2RW50Z9DYEtEYm4JsjSQKK45QHiioUTISyDijHRQm9FmpMuDDAnN9DRqW03k6/reNMcCD5iQnBklhPPCQ8EUpYB4aULu7dscQGRfhn9nMDUe7M3v7RzNJnZEvq8RyDyWSyaPyMsh5KPW7SuoJJ3WaqjrdQDPXi/njhWzQWK2EhZddjozPFiVb3T0PuO4bFwgFzmaGSiATPPCR+53XRz0noZ21IcXWQMEvSFw2yq7H/ltc9cZiGOsPWjlcRASzkzVxDcwiphRphMbBrgtRV+33DaA+hnQMwFi7OwgbTSbPAoTnWzVDqsJlQRLqJx0swsOXV2cTGkVFU5p6yd3Ew2rnaPT69Gu282Tk6Ptk5PWsk/IXfzC2IsBM8wSM5FgpbU88smWjjsKEonE8e1dhriUFCeBWBxTrvh3nt8dCS15r/mjBBuGa+UeYRHJKXLydAuCZKO+zVa2OBmEwpVKKEETc0D1IUm9yKU4mHqRpDZp728mUeHsC3h6mUt561X3t1Q6Xg3sCrpZsP8GAYIG6iiQXs5zs8WoqBUUXI4cB0lsoCnwSDtEhSbRzW/ND9Qu1hlIKGQuJ5xFUV52ssHAw8ewlVdAyWCHS9iaqRlBrgda4nauZ8Olo0VadOJD4kosxiJYY8DIg6IgrTe/J8As+kJJVzh11KSyj5GGzT1F8WyO5jMMMOXQSzVDCJPY7OcjerpGoLb3EkquuoXnhj0XmkzNcjig5vqXbV3XfxYOYvm9q9VHAx8YOECj8LUuq/VuemtUAKBspCRdZmSlkMpNNoYWuJo+9GAsxspp7PzCUWwYb6WW9TwdQ2jw62d16f7eCSRuwS6Z8ZqbYuoaoisqwrEUoqlaVnlsy/C1nIMe7mzdn/9uOU4lHg4KtrppIK393wtt0V+f6H6tcnqMpwxdcoZcp/WQtibR2uurvDiHVh5HSKw3lfHh8CXFisnD7Qma/a9r//ZmMlPNdwW/0Kpaj6Bf5N8j3G/d98mvEICuVHKb8ShD/QZxiPgFR+oDIH6RJ/GIEofeeZeH5alLtfkN/6w66VFpU1CXVbNai0dCk0+Bp6DBS9BA3NyTYZg7SKyNIXJojQrPywt3MeTKf/AWiHuzg= +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-operations.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-operations.api.mdx index a5845ef863..c82c6fb3f3 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-operations.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-operations.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns Successful operations for a specific transac sidebar_label: "Retrieve a Transaction's Operations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-payments.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-payments.api.mdx index 329df8c079..32ab1e8af8 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-a-transactions-payments.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-a-transactions-payments.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the payments of a specific transaction." sidebar_label: "Retrieve a Transaction's Payments" hide_title: true hide_table_of_contents: true -api: eJzlWulyGzcSfpWu+REfxUukSJGsSmVlWZJlK7JsyUp8qGQM0EMiwgATACNaUbFqX2Nfb59kqzEz1FCifMTZjbP5RWmmAXR/+PpAY64izyYuGr+NDtllitq76LQRCXTcysxLo6NxdDyVDlCLzEjtwaLPrXbgpwhZOQZMAgxchlwmkoO3TDvGaXgrakQmQ8vonz0RjaOX6K3EC9w8vpZyi8UbUcYsS9GjJa2uIs1SjMZRbcqzKXPTqBFJ0i1jnv62+GsuLYpo7G2OtwyorQTMInCTpkwLMoJ5SI2QyWUwSKGYoAXnmUdgWgA32knnyUCjEYyF1FiEhUmODHR8iimLxleRv8xIW+et1JOoEeEHlmaKHvUxFn3eYcl6b9jvdzpxvyfEoBd3MOknAxwmiMka28A1PhyMhqMYe1xwjsNuP+nxDufRfN5YoMFz64ytMPg1R3u5BELClLuFwiboPI3RFkaHzXTgTX3jlOHBKpAaGHCjFAbUyHyLLjPaoQu4SAdZrhQKSKxJSzJMpJ6ceXOOGi6YyrGghUVurFiJk9QeJ2jrQA0GncFgbWN9Yzjqj9Y6/brZxgr8cqsFOjnRrLKDVA0TkZGzqeTTUkMHbmpyJYBlGTLbgudZwRipucoFwnvm+Hu4zxxHLaSePCA6vKfl3sN9+ikft2CPlpHEtUlOvAbp9L//+S8PDn0DpAeBCctVgX+Y9hM00nlKPsocjwoDo9M6MEqm0n8hMMdThJR9kGmeVsQIu1xAUXg5ihaQXJgfONNgmZ5gsedrpHy304EmMA15lqEtBQPBpIMps4IbgYKgfmKs/M1oSIyFDG1ibMo0R7DIHPnR3aBVG4jiFnZrnc/l1VpnPj8lUEoWk3S306GfZVyOcs7RUSTiRnvUnkRYlilZ+Eb7F0dyV7VVmVLPkxCtyvVN/Aty2pDMUqTwsljvTEl97mp63iHnUCWflppaTFaRJSDrAyv0eTRvRB7TTBF8NenYGIVMU1SpEeVtMelpI/LSK6zNofGD/8ZUyixefFMqzUmserQftpp89BOcwDRGIZaWvUO09M2aILOWkatLj+ln8OovzL9a/v/GNMMkQe4/A9X/qVaOohiKb02tzCJHgd+WWjeEAvuXGXe9yzVka9aczhuRFKvUrVaSIphfK5FuSy/T/MwViSjJ1SrLGpEzueV4xjg3ufarFs+Y92gpqe2+3Wy+6TRHp1f9/rymFhPCUrKjpcPgj5WwZbVfCZ/JlSZwi7QbZ2yFSjcsDIX8KiHmHPqz1RotXlNlQa+r4ohKvAuMggZC+jOmsinTebp++9FaN2xZMY90Lkf71fhRTfT1m2C+egqWrqbDTZpLEd0g5J30u8W1ki0LHizt+oo9XtrREqpg7ELd0/ly+jysuEb7VFIwxIWPHx/HV1E4eSxnuyqfFTElmnqfuXG7PS0q0qZH5zX6lvOoFLMtYyftmgmunQxH3dFwuC4S3h8kyUgMY97tdvhGnMRshP1htzMcrfcwZqNB0uvhkHU2hhusH8dDtj7ojtrVOfmH4uD2/XehTv5+rfNdOIl8T3V9rcj6ZvTs9Ybd4XpnYzToDfvd4dodeleV2F9G73CCIrotVV+1+uqruHPdHGjfVGRFKfNngXajdvlj7GtXM94oQb5g9nKGH6536rs7dvVmQfG7F2EfW6NM7dGtNzfT+SqJu/J50aW6mcGj3a2D7d399b3XT9d/ftLdPRl0XzxbP3zRf7z++qej128OH231Dk52Bic/HhztvPrx0c5PvZPe42fPXlcBeRyVc52laCe1AD0eLifmqNvprjc7G83u6HhtNO71xt3em1WRexx9Nc8a0R9ioNSUHKPdRzube0/6Pz3bfPpiY+Ngd/Doze7G8e7J7s9PDn9eP3qxv/d049H2wdMft0623hy9enN4tHe0tf+qH45nZZJJ0U8N7ekEfZFeydBl97q6CcV8EWUoH6K9qDqUuVWfx7poVQvmuJCDA/QzY8/DiXH1jEnuc4ufM+dOJQm6mvWUAEyK6qJMsWVDJmpEZEoxutPqtNZCkZumzF5eS0FmzYUUofsHT46PD2HzcI86MIJ5Ru0daqsdFXpVq7Zgz4PUE3S+aBpabAbgiuZxGJlZI3KOAuLLVVMUjUiq+RdNJWROUhPThN5snmI1lF2gZROEWq8GLKpQFZJ46FFeN56axkrUHkWhiMXMokPti8gGuSuUqhTaMhapGSZdsLxmR2ylmCDE6GeImpYvrF0eeWgNnXMcKHmOMGNKoXcNEMhRe8uU/A0F4Ac+pQaba4QZQtEERX0aNFo00bwBl8eh11YjbQNC74+2qHQ5iJkiYxvUqnTeIksBL0LLPuhRHx16wYuRrVvM+rsz4W19Q0/vV+4p8AIVpUS3lGFKtdvcWGxqI/DB34o97/Q7XS1HfeMY6RU6wvJCMuCvXu43gEFszcyhDSuEC5aiQb/A+ujxM/dJrIXhru2NUa7txLkjpA1YJDqF2bih48MH6S9p/kuTW2IbAdqAGYaed5qiFvQqAMU0LQxSO49M0KCUnUs9ASEtch/2kDOlXLAzbOsklwKh8JgYHUzNLEAiUqml82ihonigY4UNLRHa4PctJgWZg/2PF5beg0fKTK4xmM1my8YvJJuxMpM2a2qcNV2um5SFptgs88eD0Hl3htyE8fOJNbkWYPRNbyi4Y/lUeuQ+t0yBTMnncXHVF9r0KfvFWChTB8R5mj1owY6ha5WiR0OPWWxy6tgHFQnAcr0FNYzAmDlsAJ8iPweSrtsf7gF2CdprACbST/O4xU3aLnFoT0w7ViZup4yQbpN7SY6uSp1tug+wmqmCKbuv9h5vn+08f3n2ePtke//54fbLo1YqHoTNfIQJXfDNyCUnUtONwz0HM2M93RNJH0pfPQlaUpCQQUXkU1NccwTtyWnhwIjfEyZAGB7uPwKCY3j4cIYgDGjj6RLWWIdgc61JiQpG2tAiSDG6u9SCKXKmegxZMO3hwyI8YLj1Y0pdhqnD2LMLpqQIBp7dynxIjmER/MyAQ7qm9eRamqPVZcgRyE2eqRKflIK0TDNjPdM+0C82AUYlWSwV+SONqpGvteQY5Hsp02yCDiRRb6YbkDGLoinMTC/IZ5JlU03mZRpCIq1ZjqSQRwHRJKDpWAL3Z3hPKaj5HV0+OWDwLtpiWUgWNN27aIEdUYSqZLSpe54cFTSrlWpLhzUSapqkWbKxvFBiPBzxy4u7Su063XfIMVnZd1wuBZcLP0yZDG9RKfOP+rt5I1KSo3ZYW2szY3yK0G11qJoWxN1EUuOrfNMs3lyvWAYbFt4Gm8pJXXt/b2v74GibhrSmPlXhmJQZ51Oma0tWzRpgUGvX3HNQu+9fKjKuri/dvvqzg/JE5PGDb2eKydA0DdZdlSX/2/p5h3QZr+hcZbXvIqbGeRp2dUVB65VV8zk9Lm5c6SwgpGOxuuvOtW7dn38bvxKfc7ysf19QNtOicCz5EuP+MpfuH0Gh+tzgd4Lwf3TB/hGQqk8PrkE6pX+sJJS+0Cfuvyz70w/gv/3JzkqLqh6KvqwbVFl6KzaE3vQUGbGEDC3ENjnHrI7IrW8HCKFFC2J3+ziaz/8Deg0DFA== +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-an-account.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-an-account.api.mdx index c22e1454ff..0df20e1756 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-an-account.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-an-account.api.mdx @@ -5,7 +5,7 @@ description: "The single account endpoint provides information on a specific acc sidebar_label: "Retrieve an Account" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-an-operation.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-an-operation.api.mdx index b249aa344d..5aab5fb652 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-an-operation.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-an-operation.api.mdx @@ -5,7 +5,7 @@ description: "The single operation endpoint provides information about a specifi sidebar_label: "Retrieve an Operation" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-an-operations-effects.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-an-operations-effects.api.mdx index e78a457437..7a16a76446 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-an-operations-effects.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-an-operations-effects.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the effects of a specific operation." sidebar_label: "Retrieve an Operation's Effects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-an-order-book.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-an-order-book.api.mdx index d5417fe305..409ab02828 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-an-order-book.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-an-order-book.api.mdx @@ -5,7 +5,7 @@ description: "The order book endpoint provides an order book's bids and asks and sidebar_label: "Retrieve an Order Book" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-fee-stats.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-fee-stats.api.mdx index 9ce26f94e4..4f704a95ac 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-fee-stats.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-fee-stats.api.mdx @@ -5,7 +5,7 @@ description: "The fee stats endpoint provides information about per-operation fe sidebar_label: "Retrieve Fee Stats" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-related-effects.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-related-effects.api.mdx index 3e92f8e0ee..c0a472fa93 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-related-effects.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-related-effects.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents effects referencing a given liquidity poo sidebar_label: "Retrieve Related Effects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/retrieve-related-trades.api.mdx b/docs/data/apis/horizon/api-reference/retrieve-related-trades.api.mdx index eec7be12c8..4b0ffa4e4e 100644 --- a/docs/data/apis/horizon/api-reference/retrieve-related-trades.api.mdx +++ b/docs/data/apis/horizon/api-reference/retrieve-related-trades.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint represents successful trades fulfilled by the given sidebar_label: "Retrieve Related Trades" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/structure/README.mdx b/docs/data/apis/horizon/api-reference/structure/README.mdx index 3452c5e0f5..e300c71d90 100644 --- a/docs/data/apis/horizon/api-reference/structure/README.mdx +++ b/docs/data/apis/horizon/api-reference/structure/README.mdx @@ -3,6 +3,7 @@ title: Horizon API Reference sidebar_position: 20 sidebar_label: Structure description: Horizon is an API for interacting with the Stellar network. +sidebar_key: horizon-api-structure --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/horizon/api-reference/structure/pagination/README.mdx b/docs/data/apis/horizon/api-reference/structure/pagination/README.mdx index a25b44cba3..1758ee6fdd 100644 --- a/docs/data/apis/horizon/api-reference/structure/pagination/README.mdx +++ b/docs/data/apis/horizon/api-reference/structure/pagination/README.mdx @@ -3,10 +3,6 @@ title: Pagination position: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - To make it possible to explore the millions of records for resources like transactions and operations, Horizon paginates the data it returns for collection-based endpoints. Each individual transaction, operation, ledger, etc. is returned as a record, and a group of records is called a collection. Records are returned as an array under the `_embedded` attribute. diff --git a/docs/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx b/docs/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx index 2fd2f4c11f..ea50800fe2 100644 --- a/docs/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx +++ b/docs/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx @@ -3,18 +3,15 @@ title: Page Arguments sidebar_position: 20 --- -import { Endpoint } from "@site/src/components/Endpoint"; -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import { CodeExample } from "@site/src/components/CodeExample"; +import { MethodTable } from "@site/src/components/MethodTable"; - + | | | | --- | ------------------------------------------------------------------ | | GET | `/{endpoint}?cursor={paging_token}&order={asc,desc}&limit={1-200}` | - + diff --git a/docs/data/apis/horizon/api-reference/structure/response-format.mdx b/docs/data/apis/horizon/api-reference/structure/response-format.mdx index 0d73b67355..f53969c3eb 100644 --- a/docs/data/apis/horizon/api-reference/structure/response-format.mdx +++ b/docs/data/apis/horizon/api-reference/structure/response-format.mdx @@ -3,9 +3,6 @@ title: Response Format sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Horizon delivers responses as JSON objects formatted according to [HAL](https://en.wikipedia.org/wiki/Hypertext_Application_Language). The HAL format makes Horizon more explorable, paginates responses, and connects parent and child resources. Consuming this format is simple using one of the many [open source libraries available](https://github.com/mikekelly/hal_specification/wiki/Libraries) for most major programming languages. HAL is just JSON with two reserved attribute names: diff --git a/docs/data/apis/horizon/api-reference/structure/xdr.mdx b/docs/data/apis/horizon/api-reference/structure/xdr.mdx index 03cf55c2d6..7a2c77c1b5 100644 --- a/docs/data/apis/horizon/api-reference/structure/xdr.mdx +++ b/docs/data/apis/horizon/api-reference/structure/xdr.mdx @@ -3,9 +3,6 @@ title: XDR sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - In the Stellar network, transactions are encoded using a standardized protocol called [External Data Representation](https://en.wikipedia.org/wiki/External_Data_Representation) (XDR). In Horizon, you will only encounter XDR when [posting](../submit-a-transaction.api.mdx) and [getting](../retrieve-a-transaction.api.mdx) transactions and in the [ledger](../resources/ledgers/README.mdx) header. diff --git a/docs/data/apis/horizon/api-reference/submit-a-transaction.api.mdx b/docs/data/apis/horizon/api-reference/submit-a-transaction.api.mdx index c3570cc6a7..36fda69c77 100644 --- a/docs/data/apis/horizon/api-reference/submit-a-transaction.api.mdx +++ b/docs/data/apis/horizon/api-reference/submit-a-transaction.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint actually submits a transaction to the Stellar networ sidebar_label: "Submit a Transaction" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/api-reference/submit-async-transaction.api.mdx b/docs/data/apis/horizon/api-reference/submit-async-transaction.api.mdx index aae379ebbc..17904ea37b 100644 --- a/docs/data/apis/horizon/api-reference/submit-async-transaction.api.mdx +++ b/docs/data/apis/horizon/api-reference/submit-async-transaction.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint submits transactions to the Stellar network asynchro sidebar_label: "Submit a Transaction Asynchronously" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/data/apis/horizon/api-reference/horizon custom_edit_url: null diff --git a/docs/data/apis/horizon/providers.mdx b/docs/data/apis/horizon/providers.mdx index abd63cddbf..953143aa0e 100644 --- a/docs/data/apis/horizon/providers.mdx +++ b/docs/data/apis/horizon/providers.mdx @@ -15,14 +15,14 @@ These providers allow access to the Futurenet, Testnet and Mainnet network. | Provider | Futurenet | Testnet | Mainnet | Full History | | --- | --- | --- | --- | --- | -| [Blockdaemon\*†](https://www.blockdaemon.com/apply/soroban) | ❌ | ✅ | ✅ | ✅ | -| [Validation Cloud](https://app.validationcloud.io/) | ❌ | ✅ | ✅ | ❌ | +| [Blockdaemon\*](https://www.blockdaemon.com/apply/soroban) | ❌ | ✅ | ✅ | ✅ | +| [Validation Cloud\*](https://app.validationcloud.io/) | ❌ | ✅ | ✅ | ✅ | | [QuickNode](https://www.quicknode.com/docs/stellar) | ❌ | ✅ | ✅ | ❌ | | [Ankr](https://www.ankr.com/rpc/advanced-api/) | ❌ | ✅ | ✅ | ❌ | | [Obsrvr](https://www.withObsrvr.com/) | ❌ | ✅ | ✅ | ❌ | | [Nodies](https://nodies.org) | ❌ | ✅ | ✅ | ❌ | -†_Blockdaemon provides full historical data for Horizon. Validation Cloud supports 1 year_ +\*Blockdaemon and Validation Cloud provide full historical data for Horizon. ### Publicly Accessible APIs diff --git a/docs/data/apis/rpc/README.mdx b/docs/data/apis/rpc/README.mdx index 79b98261db..37cb4508d2 100644 --- a/docs/data/apis/rpc/README.mdx +++ b/docs/data/apis/rpc/README.mdx @@ -22,7 +22,7 @@ For any new builders coming to Stellar, Stellar RPC should be your starting poin Running RPC within your own infrastructure provides a number of benefits. You can: - Have full operational control without dependency on any third party provider for network data and transaction submission. The only way to harness the true power of a decentralized blockchain! -- Avoid the added overhead of directly interacting with [Stellar Core], whose primary focus is performance and therefore provdes a very limited API +- Avoid the added overhead of directly interacting with [Stellar Core], whose primary focus is performance and therefore provides a very limited API - Avoid the added overhead of storing way more data than your application actually needs, as would be the case when running [Horizon] What Stellar RPC is not: diff --git a/docs/data/apis/rpc/admin-guide/README.mdx b/docs/data/apis/rpc/admin-guide/README.mdx index 59f2f99857..5c5b6de93c 100644 --- a/docs/data/apis/rpc/admin-guide/README.mdx +++ b/docs/data/apis/rpc/admin-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Admin Guide sidebar_position: 15 +sidebar_key: rpc-admin-guide --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/rpc/admin-guide/configuring.mdx b/docs/data/apis/rpc/admin-guide/configuring.mdx index 702ed532ad..00dec8b62b 100644 --- a/docs/data/apis/rpc/admin-guide/configuring.mdx +++ b/docs/data/apis/rpc/admin-guide/configuring.mdx @@ -239,7 +239,7 @@ STELLAR_CORE_TIMEOUT = "2s" Note that the above generated configuration contains the default values and you need to substitute them with proper values to run the image. For instance, when using a container, it is recommended to create a volume for the Captive Core and RPC persistent storage and point `CAPTIVE_CORE_STORAGE_PATH` and `DB_PATH` to it accordingly. -Then, you should create a configuration file for [Stellar Core](https://github.com/stellar/stellar-core). You can find sample configuration files for [Testnet](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-testnet.cfg) and [Pubnet](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) +Then, you should create a configuration file for [Stellar Core](https://github.com/stellar/stellar-core). You can find sample configuration files for [Testnet](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-testnet.cfg) and [Pubnet](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) When using docker, you should create and mount a volume [mount a volume](https://docs.docker.com/storage/volumes/) on your container where the above configuration is stored. diff --git a/docs/data/apis/rpc/admin-guide/prerequisites.mdx b/docs/data/apis/rpc/admin-guide/prerequisites.mdx index 0e760a6589..4b89a0d786 100644 --- a/docs/data/apis/rpc/admin-guide/prerequisites.mdx +++ b/docs/data/apis/rpc/admin-guide/prerequisites.mdx @@ -9,7 +9,7 @@ The RPC service can be installed on bare metal or a virtual machine. It is nativ | Node Type | CPU | RAM | Disk | AWS SKU | Google Cloud SKU | | --- | --- | --- | --- | --- | --- | -| Stellar RPC | 2 vCPU | 10GB | 250 GB persistent volume >= 3K IOPS | [c5.xlarge] | [n4-highcpu-4] | +| Stellar RPC | 2 vCPU | 16GB | 250 GB persistent volume >= 3K IOPS | [c5.xlarge] | [n4-highcpu-4] | _\* Disk: Assuming the default 7-day retention window for data storage. Otherwise, 20GB + 20GB per retention day_ _\* RAM/CPU: Assuming RPC will serve up to 1000 requests per second. For deployments expecting 1000-10000+ requests per second to Stellar RPC, we recommend at least 16GB of RAM and at least a quad core CPU with a 2.4GHz clock speed._ diff --git a/docs/data/apis/rpc/admin-guide/running.mdx b/docs/data/apis/rpc/admin-guide/running.mdx index 452784c264..d765e6fc67 100644 --- a/docs/data/apis/rpc/admin-guide/running.mdx +++ b/docs/data/apis/rpc/admin-guide/running.mdx @@ -3,8 +3,6 @@ title: Running sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - You can run the `stellar/stellar-rpc` container with the following command: ```bash diff --git a/docs/data/apis/rpc/api-reference/README.mdx b/docs/data/apis/rpc/api-reference/README.mdx index 8cb84e250f..de33850e68 100644 --- a/docs/data/apis/rpc/api-reference/README.mdx +++ b/docs/data/apis/rpc/api-reference/README.mdx @@ -1,6 +1,7 @@ --- title: API Reference sidebar_position: 20 +sidebar_key: rpc-api-reference --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx b/docs/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx index 4388945366..58018d4324 100644 --- a/docs/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx +++ b/docs/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx @@ -3,7 +3,6 @@ hide_title: true description: Returns ledger entries --- -import { CodeExample } from "@site/src/components/CodeExample"; import { RpcMethod } from "@site/src/components/RpcMethod"; import rpcSpec from "@site/static/stellar-rpc.openrpc.json"; @@ -13,20 +12,20 @@ import rpcSpec from "@site/static/stellar-rpc.openrpc.json"; # Building ledger keys -The Stellar ledger is, on some level, essentially a key-value store. The keys are instances of [`LedgerKey`](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger-entries.x#L600) and the values are instances of [`LedgerEntry`](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger-entries.x#L560). An interesting product of the store's internal design is that the key is a _subset_ of the entry: we'll see more of this later. +The Stellar ledger is, on some level, essentially a key-value store. The keys are instances of [`LedgerKey`](https://github.com/stellar/stellar-xdr/blob/v25.0/Stellar-ledger-entries.x#L588) and the values are instances of [`LedgerEntry`](https://github.com/stellar/stellar-xdr/blob/v25.0/Stellar-ledger-entries.x#L548). An interesting product of the store's internal design is that the key is a _subset_ of the entry: we'll see more of this later. The `getLedgerEntries` method returns the "values" (or "entries") for a given set of "keys". Ledger keys come in a lot of forms, and we'll go over the commonly used ones on this page alongside tutorials on how to build and use them. ## Types of `LedgerKey`s -The source of truth should always be the XDR defined in the protocol. `LedgerKey`s are a union type defined in [Stellar-ledger-entries.x](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger-entries.x#L600). There are 10 different forms a ledger key can take: +The source of truth should always be the XDR defined in the protocol. `LedgerKey`s are a union type defined in [Stellar-ledger-entries.x](https://github.com/stellar/stellar-xdr/blob/v25.0/Stellar-ledger-entries.x#L588). There are 10 different forms a ledger key can take: -1. **Account:** holistically defines a Stellar account, including its balance, signers, etc. (see [Accounts](https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/accounts)) -2. **Trustline:** defines a balance line to a non-native asset issued on the network (see [`changeTrustOp`](https://developers.stellar.org/docs/learn/fundamentals/transactions/list-of-operations#change-trust)) -3. **Offer:** defines an offer made on the Stellar DEX (see [Liquidity on Stellar](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools)) -4. **Account Data:** defines key-value data entries attached to an account (see [`manageDataOp`](https://developers.stellar.org/docs/learn/fundamentals/transactions/list-of-operations#manage-data)) -5. **Claimable Balance:** defines a balance that may or may not actively be claimable (see [Claimable Balances](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/claimable-balances)) -6. **Liquidity Pool:** defines the configuration of a native constant liquidity pool between two assets (see [Liquidity on Stellar](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools)) +1. **Account:** holistically defines a Stellar account, including its balance, signers, etc. (see [Accounts](../../../../../learn/fundamentals/stellar-data-structures/accounts.mdx)) +2. **Trustline:** defines a balance line to a non-native asset issued on the network (see [`changeTrustOp`](../../../../../learn/fundamentals/transactions/list-of-operations.mdx#change-trust)) +3. **Offer:** defines an offer made on the Stellar DEX (see [Liquidity on Stellar](../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx)) +4. **Account Data:** defines key-value data entries attached to an account (see [`manageDataOp`](../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-data)) +5. **Claimable Balance:** defines a balance that may or may not actively be claimable (see [Claimable Balances](../../../../../build/guides/transactions/claimable-balances.mdx)) +6. **Liquidity Pool:** defines the configuration of a native constant liquidity pool between two assets (see [Liquidity on Stellar](../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx)) 7. **Contract Data:** defines a piece of data being stored in a contract under a key 8. **Contract Code:** defines the Wasm bytecode of a contract 9. **Config Setting:** defines the currently active network configuration @@ -424,11 +423,11 @@ Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that ha } ``` -Then you can inspect them accordingly. Each of the above entries follows the XDR for that `LedgerEntryData` structure precisely. For example, the `AccountEntry` is in [`Stellar-ledger-entries.x#L191`](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger-entries.x#L191) and you can use `.seqNum()` to access its current sequence number, as we've shown. In JavaScript, you can see the appropriate methods in the [type definition](https://github.com/stellar/js-stellar-base/blob/6930a70d7fbde675514b5933baff605d97453ba7/types/curr.d.ts#L3034). +Then you can inspect them accordingly. Each of the above entries follows the XDR for that `LedgerEntryData` structure precisely. For example, the `AccountEntry` is in [`Stellar-ledger-entries.x#L190`](https://github.com/stellar/stellar-xdr/blob/v25.0/Stellar-ledger-entries.x#L190) and you can use `.seqNum()` to access its current sequence number, as we've shown. In JavaScript, you can see the appropriate methods in the [type definition](https://github.com/stellar/js-stellar-base/blob/6930a70d7fbde675514b5933baff605d97453ba7/types/curr.d.ts#L3034). ## Viewing and understanding XDR -If you don't want to parse the XDR out programmatically, you can also leverage both the [Stellar CLI](https://developers.stellar.org/docs/tools/developer-tools/cli/stellar-cli) and the [Stellar Lab](https://lab.stellar.org/xdr/view) to get a human-readable view of ledger keys and entries. For example, +If you don't want to parse the XDR out programmatically, you can also leverage both the [Stellar CLI](../../../../../tools/cli/stellar-cli.mdx) and the [Stellar Lab](https://lab.stellar.org/xdr/view) to get a human-readable view of ledger keys and entries. For example, ```bash echo 'AAAAAAAAAAAL76GC5jcgEGfLG9+nptaB9m+R44oweeN3EcqhstdzhQ==' | stellar xdr decode --type LedgerKey --output json-formatted diff --git a/docs/data/apis/rpc/api-reference/methods/getTransaction.mdx b/docs/data/apis/rpc/api-reference/methods/getTransaction.mdx index d87916802d..7fcdac6dbb 100644 --- a/docs/data/apis/rpc/api-reference/methods/getTransaction.mdx +++ b/docs/data/apis/rpc/api-reference/methods/getTransaction.mdx @@ -3,7 +3,6 @@ hide_title: true description: Returns transaction details --- -import { CodeExample } from "@site/src/components/CodeExample"; import { RpcMethod } from "@site/src/components/RpcMethod"; import rpcSpec from "@site/static/stellar-rpc.openrpc.json"; diff --git a/docs/data/apis/rpc/api-reference/methods/sendTransaction.mdx b/docs/data/apis/rpc/api-reference/methods/sendTransaction.mdx index e45a9f524b..56b5a7f548 100644 --- a/docs/data/apis/rpc/api-reference/methods/sendTransaction.mdx +++ b/docs/data/apis/rpc/api-reference/methods/sendTransaction.mdx @@ -188,7 +188,7 @@ public class SendTransactionExample { The `sendTransaction` method is used to **submit a real transaction to the Stellar network**, making it the only way to execute **on-chain changes** through RPC. -Unlike Horizon, this method **does not wait for confirmation**. Instead, it **validates and enqueues** the transaction. To track its final outcome, clients should follow up with a call to [`getTransaction`](/docs/data/apis/rpc/api-reference/methods/getTransaction). +Unlike Horizon, this method **does not wait for confirmation**. Instead, it **validates and enqueues** the transaction. To track its final outcome, clients should follow up with a call to [`getTransaction`](../methods/getTransaction.mdx). This method supports **all Stellar transactions**, including but not limited to smart contract invocations. diff --git a/docs/data/apis/rpc/api-reference/structure/README.mdx b/docs/data/apis/rpc/api-reference/structure/README.mdx index 12335c6e43..e6843d84c2 100644 --- a/docs/data/apis/rpc/api-reference/structure/README.mdx +++ b/docs/data/apis/rpc/api-reference/structure/README.mdx @@ -3,6 +3,7 @@ title: RPC API Reference sidebar_position: 31 sidebar_label: Structure description: RPC provides an API for interacting with the Stellar network. +sidebar_key: rpc-api-structure --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/data/apis/rpc/api-reference/structure/data-format.mdx b/docs/data/apis/rpc/api-reference/structure/data-format.mdx index 181c990b5d..9106cd933d 100644 --- a/docs/data/apis/rpc/api-reference/structure/data-format.mdx +++ b/docs/data/apis/rpc/api-reference/structure/data-format.mdx @@ -3,12 +3,9 @@ sidebar_position: 60 title: Data Formats --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - ### XDR Format -In the Stellar network, transactions are encoded using a standardized protocol called [External Data Representation](/docs/learn/fundamentals/data-format/xdr) (XDR). +In the Stellar network, transactions are encoded using a standardized protocol called [External Data Representation](../../../../../learn/fundamentals/data-format/xdr.mdx) (XDR). In RPC, you will encounter XDR when [simulating](../methods/simulateTransaction) and [sending](../methods/sendTransaction) transactions, as well as when retrieving [transactions](../methods/getTransactions), [ledgers](../methods/getLedgers), and [ledger entries](../methods/getLedgerEntries). diff --git a/docs/data/apis/rpc/providers.mdx b/docs/data/apis/rpc/providers.mdx index 366dd2a643..ea4910f6a0 100644 --- a/docs/data/apis/rpc/providers.mdx +++ b/docs/data/apis/rpc/providers.mdx @@ -21,8 +21,9 @@ These providers allow access to the Futurenet, Testnet and Mainnet network. | [OnFinality\*](https://onfinality.io/networks/stellar) | ❌ | ❌ | ✅ | ✅ | ✅ | | [Lightsail Network - Quasar\*](https://quasar.lightsail.network/) | ❌ | ❌ | ✅ | ❌ | ✅ | | [Uniblock](https://www.uniblock.dev/) | ❌ | ✅ | ✅ | ❌ | ❌ | +| [Exaion](https://crypto.exaion.com) | ❌ | ❌ | ✅ | ✅ | -\*_RPC Archive is a new option for those looking to retrieve full ledger history. Currently only the [getLedgers](https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgers) RPC method supports this feature. You can choose one of the providers above, or create your own getLedgers archive by following [these steps](https://developers.stellar.org/docs/data/apis/rpc/admin-guide/data-lake-integration)._ +\*_RPC Archive is a new option for those looking to retrieve full ledger history. Currently only the [getLedgers](./api-reference/methods/getLedgers.mdx) RPC method supports this feature. You can choose one of the providers above, or create your own getLedgers archive by following [these steps](./admin-guide/data-lake-integration.mdx)._ _The "Dedicated Nodes" column represents providers who host full nodes as a service._ diff --git a/docs/data/indexers/README.mdx b/docs/data/indexers/README.mdx index d0dd902c72..817513a0bf 100644 --- a/docs/data/indexers/README.mdx +++ b/docs/data/indexers/README.mdx @@ -1,14 +1,113 @@ --- -title: Indexer Overview +title: Indexers Overview +sidebar_label: Indexers sidebar_position: 0 --- -Learn more about indexing and indexers for Stellar network data. +## What is an indexer, and why would you need one? -## [Build Your Own Indexer](./build-your-own/README.mdx) +When you first start building on a smart contract platform like Stellar, at first you can get everything you need from RPC calls. You write a contract, or launch a Stellar Classic Asset and [wrap it in a smart contract](../../tokens/stellar-asset-contract.mdx), and you make a bundle of RPC calls from your frontend app directly to your smart contracts. -Building your own indexer with tools like Galexie allows you to export Stellar ledger metadata to external storage for custom data processing and analysis. This enables greater flexibility in structuring and querying blockchain data based on specific use cases. +At some point, though, you are likely to run into limitations with this approach. -## [Data Indexer Providers](./indexer-providers/indexer-providers.mdx) +1. You might need to make _too many_ RPC calls. Imagine: your app lists 20 of a user's NFTs per page. First RPC call: get a list of NFT IDs for this user. Then: 20 simultaneous RPC calls to get data for each NFT. And possibly: for each of those, make additional HTTP requests to S3 buckets or IPFS nodes to fetch image data, etc. This can make your app slow, or even get you rate-limited by an RPC provider. +2. You might want to show _historic_ data, like every time an NFT changed ownership. This sort of data lives _in the history of the blockchain_, but is not accessible via RPC calls to the most up-to-date version of a specific contract. Those would only return the current owner. -Data indexers process and structure blockchain data, making it more accessible and queryable for users with advanced analytics and visualization capabilities. They offer features like transaction flow analysis and DeFi metric tracking, providing a user-friendly and cost-effective alternative for exploring blockchain activity. Along with analytics, applications can use data indexers to track value movement of assets, track assets within an account, trace suspicious operations, and more. +Additionally, even some information that is currently available from [Horizon] will also require indexing services in the future, as Horizon will be deprecated. + +## What exactly is indexing? + +The word "indexing" has come to encompass a large array of use-cases. What all of them have in common is that they process and structure blockchain data. Let's think of it in the order of what you, an app-builder or small team, will need: + +### 1. Off-the-shelf APIs for common data {#portfolio-apis} + +This is the kind of stuff you might get from Horizon today, but can include more than that. For example, many indexing services in this category also provide the "every time an NFT changed ownership" kind of data mentioned above. + +Lots of apps need this kind of data, and it tends to have a standard shape. This makes it profitable for companies to build SaaS products, offering API access for a price (often with a free tier, appropriate for your early-stage startup or hackathon project). + +In the biz, these are called _Portfolio APIs._ Well-known companies offering them: + +- [Alchemy]: most popular choice on Ethereum; now in talks to expand their service to Stellar, with a targeted launch in the first half of 2026. + +- [Allium]: currently building Stellar support, launching Q1 2026 + +- [OBSRVR]: a home-grown Stellar-native offering, providing both RPC services and [Obsrvr Gateway](https://www.withobsrvr.com/products/gateway), promising "powerful APIs for real-time data fetching, transaction processing, and easy integration into existing systems." + +- [Horizon]: as mentioned above, Horizon will soon be deprecated, but for now it is the only way to get some of this data. + +### 2. Streaming & transforming data to a custom app database {#custom-transformations} + +Not all apps have data that fits a standard shape. Most, probably, need custom data transformation. + +Consider again the NFT example. Wouldn't it be great to return all needed NFT data in _one_ request, rather than N+1? That's what this style of indexing provides. And even better: you can (often) use these indexing solutions to aggregate data from multiple sources. If your NFT app stores additional information on IPFS, you could consolidate all of that off-chain data to your database as well. This makes your app much faster, saves you network & RPC requests, and creates new architecture possibilities. + +Well-known options: + +- [The Graph]: one of the earliest and most popular-at-the-time options on Ethereum. They now offer three main products: + 1. [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/): their main & most famous offering, providing a [decentralized approach](https://thegraph.com/docs/en/subgraphs/developing/publishing/publishing-a-subgraph/) to custom data transformation & hosting. The Graph's use of GraphQL APIs made GraphQL a popular choice for this entire category of indexing. + 2. **Token API**, for Indexing [Use Case #1](#portfolio-apis) described above + 3. **Substreams**, for [Use Case #3](#analytics) described below + + The Graph offers Stellar support for Substreams, with no current plans to expand Subgraph or Token API support to Stellar. + +- [Goldsky]: one of the currently-most-loved options on Ethereum for this use-case. Goldsky provides [two main products](https://docs.goldsky.com/subgraph-vs-mirror): + 1. **Subgraphs**: similar to those offered by The Graph, but data lives on Goldsky's own infrastructure rather than a decentralized network. Goldsky only offers this for EVM-based chains, with no plans to offer Subgraph support for Stellar. + 2. **Mirror**, also called **Pipelines**: a highly efficient tool to Extract, Transform, & Load (ETL) data into your own database. Goldsky Mirrors already support Stellar; see [their documentation](https://docs.goldsky.com/chains/stellar). + +- [Mercury]: a home-grown Stellar-native team providing streamlined Soroban (Smart Contract) support via their [Retroshades](https://docs.mercurydata.app/retroshades/introduction-to-retroshades) product. Note that this streamlined Soroban support comes at the cost of _only_ supporting Soroban! Mercury also provide [Mercury "Classic"](https://docs.mercurydata.app/mercury-classic/introduction), giving access to contract events & Stellar transactions via a GraphQL interface, which might fit Indexer Use Case #1 more. + +- [SubQuery]: Decentralized Indexer SDK, Decentralized RPCs, & AI Apps. Supports 300+ chains. Like The Graph, uses a decentralized model. + +- [OnFinality]: a big player in the Polkadot ecosystem, now expanding to other blockchains. OnFinality provides data _hosting_ services for your SubQuery logic. SubQuery is the _software_, OnFinality is the _infra_, hosting 1. the pre-transformed raw Stellar data, 2. your SubGraph SDK-authored Extract, Transform, and Load (ETL) processor and 3. your final transformed data. + +- [Allium]: in addition to their Portfolio APIs offering, Allium is also under contract with SDF to build out tools for both Indexing Use Case #2 (this one) and Indexing Use Case #3 (see below), with target launch date of Q1 2026. + +- [Space and Time]: one challenge with most indexing approaches is the reintroduction of trusted 3rd parties into what is otherwise a verifiable, trustless software stack. Space and Time aims to fix this with "Proof of Indexing" and "Proof of SQL", using Zero-Knowledge proofs to offer tamper-proof computation for enterprises and dapps. Space and Time's Stellar support [launched](https://www.spaceandtime.io/blog/space-and-time-enables-new-sophisticated-financial-apps-for-the-stellar-ecosystem) in Q4 2025. + +- [OBSRVR Flow]: "Structured ledger data and contract events straight to your app or warehouse—no ETL needed." Currently in private beta. + +### 3. Blockchain-Flavored Big-Data Analytics {#analytics} + +For business intelligence, compliance, tracing suspicious operations, DeFi metric tracking, transaction flow analysis, etc. When your enterprise reaches a certain scale, it's worth paying Data Engineers to set up custom ETL pipelines and manage databases/datalakes, and then paying Data Analysts to answer questions about how people are interacting with your systems. + +The companies building tools for Indexer Use Case #2 above (The Graph, Goldsky, Allium, etc) tend to also have tools for Use Case #3. + +While often referred to as _indexing_, you can also think of this category as _analytics_. See the [analytics documentation](../analytics/README.mdx) for solutions custom-tailored to this use-case. + +## Build Your Own + +If none of the indexing providers mentioned above currently meet your needs, you can also build your own. Start with this [tutorial on how to build your own custom network ingestion pipeline](../../build/apps/ingest-sdk/overview.mdx). Along the way, you'll use the following tools & services: + +### [Galexie](./build-your-own/galexie/README.mdx) + +Galexie is a tool for acquiring Stellar ledger metadata from the network and exporting to external storage, a data lake. Galexie is the foundation of the Composable Data Pipeline (CDP) and serves as the first step in extracting raw Stellar ledger metadata and making it accessible. Learn more about CDP’s benefits and applications in [this blog post](https://stellar.org/blog/developers/composable-data-platform). + +**Why Use It:** + +- You want to maintain a data lake of pre-computed ledger metadata for historical and currently closed network ledgers. + +### [Ingest SDK](./build-your-own/ingest-sdk/README.mdx) + +A set of Golang packages which can be used within an application as a programmatic domain model to interact with Stellar network. + +**Why Use It:** + +- You want rapid development of applications in Golang which can acquire and parse ledger meta data and ledger entries from Stellar network. +- You want an intuitive, compile-time, type-safe application developer experience. +- You want to programmatically access History Archives to retrieve ledger entries. + +### [Processors](./build-your-own/processors/README.mdx) + +A suite of Go packages that help you parse Stellar blockchain data. + +[Horizon]: ../apis/horizon/README.mdx +[Allium]: https://www.allium.so/ +[Alchemy]: https://www.alchemy.com/ +[Goldsky]: https://goldsky.com/ +[OBSRVR]: https://www.withobsrvr.com/ +[The Graph]: https://thegraph.com/docs/en/about/ +[Mercury]: https://docs.mercurydata.app/ +[SubQuery]: https://subquery.network/ +[OnFinality]: https://onfinality.io/ +[Space and Time]: https://www.spaceandtime.io/ +[OBSRVR Flow]: https://www.withobsrvr.com/products/flow diff --git a/docs/data/indexers/build-your-own/README.mdx b/docs/data/indexers/build-your-own/README.mdx index eeb73d6b1d..0b2bd880d3 100644 --- a/docs/data/indexers/build-your-own/README.mdx +++ b/docs/data/indexers/build-your-own/README.mdx @@ -1,9 +1,9 @@ --- -title: Build Your Own Indexer +title: Build Your Own sidebar_position: 0 --- -Learn about the services and tools that you can build custom indexing with. +If none of the indexing providers mentioned [in the overview](../README.mdx) meet your needs, you can also build your own. Start with this [tutorial on how to build your own custom network ingestion pipeline](../../../build/apps/ingest-sdk/overview.mdx). Along the way, you'll use the following tools & services: ## [Galexie](./galexie/README.mdx) diff --git a/docs/data/indexers/build-your-own/galexie/README.mdx b/docs/data/indexers/build-your-own/galexie/README.mdx index 8a8fe1109d..64a53a9070 100644 --- a/docs/data/indexers/build-your-own/galexie/README.mdx +++ b/docs/data/indexers/build-your-own/galexie/README.mdx @@ -20,7 +20,7 @@ Galexie is designed to make streamlined and efficient export of ledger metadata ## Why XDR Format? -Exporting data in XDR—the native Stellar Core format—enables Galexie to preserve full transaction metadata, ensuring data integrity while keeping storage efficient. The XDR format maintains compatibility with all Stellar components, providing a solid foundation for applications that require consistent access to historical data. Refer to the [XDR](/docs/learn/fundamentals/data-format/xdr) documentation for more information on this format. +Exporting data in XDR—the native Stellar Core format—enables Galexie to preserve full transaction metadata, ensuring data integrity while keeping storage efficient. The XDR format maintains compatibility with all Stellar components, providing a solid foundation for applications that require consistent access to historical data. Refer to the [XDR](../../../../learn/fundamentals/data-format/xdr.mdx) documentation for more information on this format. ## Why Run Galexie? diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx index 5756cf9e4d..40b5e679a0 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx @@ -7,17 +7,9 @@ sidebar_position: 20 ## Steps to Configure Galexie -### 1. Copy the Sample Configuration +### Key Settings Include -Start with the provided sample file, [`config.example.toml`](https://github.com/stellar/go/blob/master/services/galexie/config.example.toml). - -### 2. Rename and Update the Configuration - -Rename the file to `config.toml` and adjust settings as needed. - -#### Key Settings Include - -##### Cloud Storage Service +#### Cloud Storage Service Specify the cloud storage service to be used to export ledger metadata. Currently only `GCS` and `S3` are supported @@ -25,7 +17,7 @@ Specify the cloud storage service to be used to export ledger metadata. Currentl type = "GCS" ``` -##### Cloud Storage Bucket +#### Cloud Storage Bucket Specify the cloud storage bucket where Galexie will export Stellar ledger data. Update `destination_bucket_path` to the complete path of your bucket, including subpaths if applicable. @@ -33,7 +25,7 @@ Specify the cloud storage bucket where Galexie will export Stellar ledger data. destination_bucket_path = "stellar-network-data/testnet" ``` -##### Stellar Network +#### Stellar Network Set the Stellar network to be used in creating the data lake. @@ -41,7 +33,7 @@ Set the Stellar network to be used in creating the data lake. network = "testnet" ``` -##### Data Organization (Optional) +#### Data Organization (Optional) Configure how the exported data is organized in the storage bucket. The example below adds 1 ledger per file and organizes them in a directory of 64000 files. @@ -53,11 +45,11 @@ ledgers_per_file = 1 files_per_partition = 64000 ``` -##### Use a Custom Core Config (Optional) +#### Use a Custom Core Config (Optional) You can specify a custom `core.cfg` file in the Galexie `config.toml` to use that will override the default core parameters used with the Stellar Network specified in the `network` parameter. -Copy an existing `core.cfg` file such as the `captive-core-pubnet.cfg` provided [here](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) and add the following to your `config.toml` +Copy an existing `core.cfg` file such as the `captive-core-pubnet.cfg` provided [here](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) and add the following to your `config.toml` ```toml captive_core_toml_path = "my-captive-core.cfg" @@ -80,3 +72,13 @@ The default `core.cfg` used by Galexie will enable the following core parameters When you provide a custom core configuration file, it completely replaces the Galexie's default core configuration. This means you must explicitly set any parameters you want to enable, including the ones that are enabled by default in Galexie. Any parameter not listed in your custom config will be set to false. ::: + +### Running Galexie on an Instance + +#### 1. Copy the Sample Configuration + +Start with the provided sample file, [`config.example.toml`](https://github.com/stellar/stellar-galexie/blob/main/config/config.example.toml). + +#### 2. Rename and Update the Configuration + +Rename the file to `config.toml` and adjust settings as needed. diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/installing.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/installing.mdx index 05f31cf3e0..9d83f777d8 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/installing.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/installing.mdx @@ -5,7 +5,18 @@ sidebar_position: 30 # Installing -To install Galexie, retrieve the Docker image from the [Stellar Docker Hub registry](https://hub.docker.com/r/stellar/stellar-galexie) using the following command: +## Kubernetes + +In order to install Galexie into a kubernetes cluster follow these steps: + +- Run `helm repo add stellar https://helm.stellar.org/charts` +- Run `helm install stellar/galexie --set datastore.params.path=` + +Additional configuration can be set with the `--set` flags or by using a [helm values file](https://helm.sh/docs/chart_template_guide/values_files/) with the chart. + +## Install Container on a host + +To pull the Galexie container image from the [Stellar Docker Hub registry](https://hub.docker.com/r/stellar/stellar-galexie) using the following docker command or a similar OCI compliant image pull command: ```shell docker pull stellar/stellar-galexie diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx index 90b2146c32..f1b7941890 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx @@ -7,9 +7,9 @@ sidebar_position: 50 ### Metrics -Galexie publishes metrics through an HTTP-based admin endpoint, which makes it easier to monitor its performance. This endpoint is configurable in the `config.toml` file, where you can specify the port on which metrics are made available. The data is exposed in Prometheus format, enabling easy integration with existing monitoring and alerting systems. +Galexie publishes metrics through an HTTP-based admin endpoint, which makes it easier to monitor its performance. The data is exposed in Prometheus format, enabling easy integration with existing monitoring and alerting systems. -The admin port can be configured in the `config.toml` file by setting the `admin_port` variable. By default, the `admin_port` is set to `6061` +The admin port where these metrics are served can be configured by setting the `admin_port` variable. By default, the `admin_port` is set to `6061` ```toml # Admin port configuration diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx index d9557a8c09..a5b29940e9 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx @@ -19,18 +19,25 @@ Galexie exports Stellar ledger metadata to Google Cloud Storage (GCS) or Amazon - Permissions to create a new S3 bucket, or - Access to an existing bucket with read/write permissions. -## 2. Docker (Recommended) +## 2. Container Runtime (Recommended) -> **_NOTE:_** While it is possible to natively install Galexie (without Docker), this requires manual dependency management and is recommended only for advanced users.] +### Kubernetes -Galexie is available as a Docker image, which simplifies installation and setup. Ensure you have Docker Engine installed on your system ([Docker installation guide](https://docs.docker.com/engine/install/)). +- Kubernetes 1.19+ + +### Running the Galexie Container on an Instance + +- Instance like AWS EC2 or GCP VM +- Any host machine with a OCI complaint container runtime installed like Docker ([Docker installation guide](https://docs.docker.com/engine/install/)). + +> **_NOTE:_** While it is possible to natively install Galexie (without a container runtime), this requires manual dependency management and is recommended only for advanced users. ## Hardware Requirements The minimum hardware requirements for running Galexie are:\ -**RAM**: 8 GB\ -**CPU**: 2 vCPUs\ -**Disk**: 100 GB with at least 5K IOPS +**RAM**: 16 GB\ +**CPU**: 4 vCPUs\ +**Persistent Disk**: 100 GB with at least 5K IOPS ### Full History Export diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/running.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/running.mdx index 0d1910b33a..3a76940cf9 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/running.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/running.mdx @@ -5,6 +5,8 @@ sidebar_position: 40 # Running +The commands and arguments described in this document can be configured in the helm chart as well as running them on an instance as described below. The helm chart handles the config file path internally to the chart. The `--config-file` argument should not be added to the arguments variable in the helm chart. + With the Docker image available and the configuration file set up, you're now ready to run Galexie and start exporting Stellar ledger data to the storage bucket. ## Command Line Usage @@ -108,3 +110,114 @@ docker run --platform linux/amd64 -d \ stellar/stellar-galexie \ scan-and-fill --start 64000 --end 68000 --config-file config.toml ``` + +### Replace Command + +The `replace` command is a new addition in Galexie v24.1.0 that simplifies re-exporting ledgers that were previously processed. + +Unlike `append` or `scan-and-fill`, which skip existing files, `replace` will overwrite existing files within a specified range. + +It is primarily used when Stellar Core starts emitting new or updated metadata for previously processed ledgers (e.g., the introduction of [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) Stellar Events). This allows operators to re-export affected ledgers to ensure the data lake contains the latest, most complete metadata. + +Syntax: + +```shell +stellar-galexie replace --start --end [--config-file ] +``` + +Arguments: + +`--start ` (required) + +- The starting ledger sequence number of the range being exported. + +`--end ` (required) + +- The ending ledger sequence number of the range being exported. + +`--config-file ` (optional): + +- The path to the configuration file. If unspecified, the exporter will look for a file named “config.toml” in the current directory. + +Example usage: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +stellar/stellar-galexie \ +replace --start 64000 --end 68000 --config-file config.toml +``` + +### Detect-gaps Command + +The `detect-gaps` command is a new addition in Galexie v25.0.0. It performs a read-only audit of the data lake and reports any missing ledger sequences ("gaps") within a given range. + +Under normal day-to-day operation, the `append` command maintains strict sequential integrity. However, operators commonly parallelize initial full-history exports by splitting the entire ledger range into multiple subranges and running many Galexie instances concurrently. Misconfigured ranges, failed jobs, or manual intervention can leave holes (missing files) in the datastore. + +The `detect-gaps` command is intended to verify completeness of a newly created data lake after an initial full-history or as a periodic audit. This command does not export or modify any data. It only scans the existing datastore and reports missing ranges. + +Syntax: + +```shell +stellar-galexie detect-gaps --start \ +--end \ +[--config-file ] \ +[--output-file ] +``` + +Arguments: + +`--start ` (required) + +The starting ledger sequence number of the range to be scanned for gaps. + +`--end ` (required) + +The ending ledger sequence number of the range to be scanned for gaps. + +`--config-file ` (optional) + +The path to the configuration file. If unspecified, the application looks for a file named "config.toml" in the current directory. + +`--output-file ` (optional) + +If provided, the gap report is written as JSON to this file. If omitted, the JSON report is written to standard output. + +Example usage: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +-v ${PWD}:/reports \ +stellar/stellar-galexie \ +detect-gaps \ +--start 2 \ +--end 200000 \ +--config-file config.toml \ +--output-file gaps_report.json +``` + +Example Output: + +```shell +{ + "scan_from": 2, + "scan_to": 200000, + "duration_seconds": 3.42ms, + "report": { + "gaps": [ + { "start": 144320, "end": 144383 }, + { "start": 180000, "end": 180063 } + ], + "total_ledgers_found": 199871, + "total_ledgers_missing": 128, + "min_sequence_found": 2, + "max_sequence_found": 200000 + } +} + +``` diff --git a/docs/data/indexers/build-your-own/galexie/admin_guide/setup.mdx b/docs/data/indexers/build-your-own/galexie/admin_guide/setup.mdx index 3a4b2672a7..e02b2e5f07 100644 --- a/docs/data/indexers/build-your-own/galexie/admin_guide/setup.mdx +++ b/docs/data/indexers/build-your-own/galexie/admin_guide/setup.mdx @@ -5,37 +5,106 @@ sidebar_position: 10 # Setup -## Google Cloud Platform (GCP) for GCS - -### Google Cloud Platform (GCP) credentials - -Create application default credentials by using your user account for your GCP project by following these steps: +Galexie runs as a publisher and writes files to buckets and therefore needs to be provisioned with correct account permissions on the bucket to allow writes. For client applications that will be consumers of files in the bucket a smaller set of account permissions will be needed to allow read only activity. -1. Download the [SDK](https://cloud.google.com/sdk/docs/install). -2. Install and initialize the [gcloud CLI](https://cloud.google.com/sdk/docs/initializing). -3. Create [application default credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp) and it should automatically store in this location: `$HOME/.config/gcloud/application_default_credentials.json.` -4. Verify that this file exists before moving on to the next step. +## Google Cloud Platform (GCP) for GCS ### Google Cloud Storage (GCS) bucket -If you already have a GCS bucket with read and write permissions, you can skip this section. If not, follow these steps: +If you already have a GCS bucket ready for Galexie to push data, you can skip this section. If not, follow these steps: 1. Visit the GCP Console's Storage section (https://console.cloud.google.com/storage) and create a new bucket. 2. Choose a descriptive name for the bucket, such as `stellar-ledger-data`. Refer to [Google Cloud Storage Bucket Naming Guideline](https://cloud.google.com/storage/docs/buckets#naming) for bucket naming conventions. Note down the bucket name, you will need it later during the configuration process. -## Amazon Web Services (AWS) for S3 +### Google Cloud Platform (GCP) Authentication + +#### Google Kubernetes Engine Cluster -### Amazon Web Services (AWS) credentials +When running Galexie inside of a GKE cluster follow the Google cloud documentation for [workload identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) to make sure Galexie has the correct bucket access -Create application default credentials by using your user account for your AWS project by following these steps: +#### GCP VM -1. Download and install the [SDK](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). -2. Create [authentication credentials](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html). They should automatically store in this location: `$HOME/.aws/credentials` -3. Verify that this file exists before moving on to the next step. +1. [Create a Service Account](https://docs.cloud.google.com/iam/docs/service-accounts-create) +2. Use that Service Account when creating the GCP VM +3. Make sure the Service Account has the correct bucket access + +#### Credentials (Not Recommended) + +In order to use static credentials, find the authentication route that works best in the Galexie environment and follow the Google cloud documentation for [creating credentials](https://developers.google.com/workspace/guides/create-credentials) making sure the principal of the credentials has access to the correct bucket + +#### IAM Role Permissions + +When using GCP IAM to authenticate Galexie to access a bucket, the following permissions are required: + +- storage.buckets.get +- storage.buckets.list +- storage.multipartUploads.abort +- storage.multipartUploads.create +- storage.multipartUploads.list +- storage.multipartUploads.listParts +- storage.objects.create +- storage.objects.delete +- storage.objects.get +- storage.objects.list +- storage.objects.restore +- storage.objects.update + +## Amazon Web Services (AWS) for S3 ### Amazon Simple Storage Service (S3) bucket -If you already have an S3 bucket with read and write permissions, you can skip this section. If not, follow these steps: +If you already have an S3 bucket ready for Galexie to push data, you can skip this section. If not, follow these steps: 1. Visit the AWS Console's Storage section (https://console.aws.amazon.com/s3/) and create a new bucket. 2. Choose a descriptive name for the bucket, such as `stellar-ledger-data`. Refer to [S3 General purpose bucket naming rules](https://cloud.google.com/storage/docs/buckets#naming) for bucket naming conventions. Note down the bucket name, you will need it later during the configuration process. + +### Amazon Web Services (AWS) Authentication + +#### EKS Cluster + +When running Galexie inside of a EKS cluster follow either the AWS documentation for [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) or [pod identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) + +#### AWS EC2 + +1. [Creat an IAM Role](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) +2. Use that role in an [instance profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) +3. Use that instance profile in the creation of the EC2 instance +4. Make sure the instance profile has the correct bucket access + +#### Credentials (Not Recommended) + +In order to use static credentials, [create an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-workloads.html) for Galexie making sure the principal of the credentials has access to the correct bucket and generate security credentials. + +#### IAM Role Permissions + +When using AWS IAM to authenticate Galexie to access a bucket, use this example policy making sure to use the correct bucket destination: + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "AllowS3BucketOperations", + "Effect": "Allow", + "Action": [ + "s3:ListBucket", + "s3:GetBucketLocation", + "s3:ListBucketMultipartUploads" + ], + "Resource": "arn:aws:s3:::my-galexie-bucket-example" + }, + { + "Sid": "AllowS3ObjectAccess", + "Effect": "Allow", + "Action": [ + "s3:PutObject", + "s3:GetObject", + "s3:DeleteObject", + "s3:AbortMultipartUpload", + "s3:ListMultipartUploadParts" + ], + "Resource": ["arn:aws:s3:::my-galexie-bucket-example/*"] + } + ] +} +``` diff --git a/docs/data/indexers/build-your-own/galexie/examples/README.mdx b/docs/data/indexers/build-your-own/galexie/examples/README.mdx index 68c893e7e9..ec59d5ddf5 100644 --- a/docs/data/indexers/build-your-own/galexie/examples/README.mdx +++ b/docs/data/indexers/build-your-own/galexie/examples/README.mdx @@ -1,6 +1,7 @@ --- title: Example Usages sidebar_position: 20 +sidebar_key: galexie-example-usages --- This section showcases real-world use cases of Galexie. diff --git a/docs/data/indexers/build-your-own/galexie/examples/gcs-export.mdx b/docs/data/indexers/build-your-own/galexie/examples/gcs-export.mdx index 09671c786a..8fd4edc3ce 100644 --- a/docs/data/indexers/build-your-own/galexie/examples/gcs-export.mdx +++ b/docs/data/indexers/build-your-own/galexie/examples/gcs-export.mdx @@ -16,7 +16,7 @@ sidebar_position: 20 Run the Galexie Dockerhub image, [stellar/stellar-galexie](https://hub.docker.com/r/stellar/stellar-galexie) as an instance in [GCP Compute Engines](https://cloud.google.com/run/docs/create-jobs) and export the ledger metadata to [GCS bucket](https://cloud.google.com/storage/docs/json_api/v1/buckets) storage. -[Galexie](/data/indexers/build-your-own/galexie/README.mdx) in this example, performs the main roles of data pipeline. It acts as the `origin` and `publisher` of ledger metadata to the Google Cloud Storage bucket which is the `sink`. +[Galexie](../README.mdx) in this example, performs the main roles of data pipeline. It acts as the `origin` and `publisher` of ledger metadata to the Google Cloud Storage bucket which is the `sink`. ### Prepare the Galexie configuration file locally @@ -140,4 +140,4 @@ Proceed to the GCP console: ## Next step - Consumer Pipelines -Ledger metadata is now accumulating as files in your GCS bucket, you can start to explore the options for applications to consume this pre-computed network data using the [Ingest SDK](../../ingest-sdk/README.mdx) to assemble consumer driven data pipelines capable of importing and parsing the data to derive custom, enriched data models. Refer to [GCS bucket consumer pipeline](https://developers.stellar.org/docs/build/apps/ingest-sdk/overview#ledger-metadata-consumer-pipeline) for relevant example code. +Ledger metadata is now accumulating as files in your GCS bucket, you can start to explore the options for applications to consume this pre-computed network data using the [Ingest SDK](../../ingest-sdk/README.mdx) to assemble consumer driven data pipelines capable of importing and parsing the data to derive custom, enriched data models. Refer to [GCS bucket consumer pipeline](../../../../../build/apps/ingest-sdk/overview.mdx#ledger-metadata-consumer-pipeline) for relevant example code. diff --git a/docs/data/indexers/build-your-own/galexie/providers.mdx b/docs/data/indexers/build-your-own/galexie/providers.mdx index c1574bbdca..5bc79f9ba1 100644 --- a/docs/data/indexers/build-your-own/galexie/providers.mdx +++ b/docs/data/indexers/build-your-own/galexie/providers.mdx @@ -9,7 +9,7 @@ These providers allow access to the Futurenet, Testnet and Mainnet network. | Provider | Futurenet | Testnet | Mainnet | URI | | --- | --- | --- | --- | --- | -| [AWS Public Blockchain\*](https://registry.opendata.aws/aws-public-blockchain/) | ❌ | ❌ | ✅ | `s3://aws-public-blockchain/v1.1/stellar/ledgers/` | +| [AWS Public Blockchain\*](https://registry.opendata.aws/aws-public-blockchain/) | ❌ | ✅ | ✅ | `s3://aws-public-blockchain/v1.1/stellar/ledgers/` | | [Lightsail Network - Quasar](https://quasar.lightsail.network/) | ❌ | ❌ | ✅ | `https://galexie.lightsail.network/v1/` | \*AWS Public Blockchain populated by Goldsky diff --git a/docs/data/indexers/build-your-own/ingest-sdk/README.mdx b/docs/data/indexers/build-your-own/ingest-sdk/README.mdx index 28be070ac9..23a8f08a72 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/README.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## What is the Ingest SDK? -The SDK is composed of several published Golang packages under `github.com/stellar/go` for acquiring and parsing data from the Stellar network. It provides language level bindings which convert the [binary XDR encoded](../../../../learn/fundamentals/data-format/xdr.mdx) streams emitted from the network into fluent programmatic data model bindings. +The SDK is composed of several published Golang packages under `github.com/stellar/go-stellar-sdk` for acquiring and parsing data from the Stellar network. It provides language level bindings which convert the [binary XDR encoded](../../../../learn/fundamentals/data-format/xdr.mdx) streams emitted from the network into fluent programmatic data model bindings. ## Why use the Ingest SDK? diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx index 0249a8747c..18f2117e99 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx @@ -1,8 +1,9 @@ --- title: Developer Guide sidebar_position: 0 +sidebar_key: ingest-sdk-developer-guide --- -The Stellar [ingest SDK](https://github.com/stellar/go/tree/master/ingest) is a set of packages for retrieving and processing ledger metadata from the Stellar network. Developers can use this SDK to build custom ingestion engines. +The Stellar [ingest SDK](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) is a set of packages for retrieving and processing ledger metadata from the Stellar network. Developers can use this SDK to build custom ingestion engines. This guide explains how to set up, configure, and use ingest SDK effectively. diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx index 607de2c43b..61fb0dc80a 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx @@ -9,6 +9,6 @@ sidebar_position: 0 Ingest SDK is organized into three main components: -1. **[Ledger Backends](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends)**: Used to stream ledgers from the Stellar network. `https://github.com/stellar/go/tree/master/ingest/ledgerbackend` -2. **[Ledger Readers](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders)** : Iterators to extract individual changes or transactions from a ledger. `https://github.com/stellar/go/tree/master/ingest` -3. **[Ledger Processors](https://github.com/stellar/go/tree/master/ingest/processors)** : Functions to process individual changes or transactions and extract meaningful data such as accounts, offers, claimable balance, etc. They are used in conjunction with `Ledger Readers` to interpret and transform ledger data. +1. **[Ledger Backends](./ledgerbackends/README.mdx)**: Used to stream ledgers from the Stellar network. `https://github.com/stellar/go-stellar-sdk/tree/main/ingest/ledgerbackend` +2. **[Ledger Readers](./ledgerreaders.mdx)** : Iterators to extract individual changes or transactions from a ledger. `https://github.com/stellar/go-stellar-sdk/tree/main/ingest` +3. **[Ledger Processors](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors)** : Functions to process individual changes or transactions and extract meaningful data such as accounts, offers, claimable balance, etc. They are used in conjunction with `Ledger Readers` to interpret and transform ledger data. diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx index d633624756..a6054d1276 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx @@ -3,11 +3,11 @@ title: Ledger Backends sidebar_position: 10 --- -A ledger backend is a source of Stellar network ledger data. The ingest SDK supports two primary ledger backends, both implementing the [ledgerbackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go) interface. This interface always returns ledger data as [LedgerCloseMeta](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends#ledgerclosemeta-structure), which is XDR-encoded ledger metadata object. +A ledger backend is a source of Stellar network ledger data. The ingest SDK supports two primary ledger backends, both implementing the [ledgerbackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go) interface. This interface always returns ledger data as [LedgerCloseMeta](#ledgerclosemeta-structure), which is XDR-encoded ledger metadata object. -1. **[Captive Core](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore)** – Invokes the `stellar-core` binary as a subprocess which connects to the live Stellar network and fetches network data (i.e., ledgers). -2. **[BufferedStorageBackend](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend)** – Retrieves ledger metadata from cloud storage. -3. **[RPCLedgetBackend](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend)** – Retrieves ledger metadata from an RPC server. +1. **[Captive Core](./captivecore.mdx)** – Invokes the `stellar-core` binary as a subprocess which connects to the live Stellar network and fetches network data (i.e., ledgers). +2. **[BufferedStorageBackend](./bufferedstoragebackend.mdx)** – Retrieves ledger metadata from cloud storage. +3. **[RPCLedgerBackend](./rpcledgerbackend.mdx)** – Retrieves ledger metadata from an RPC server. Each backend has its own setup and configuration requirements, which are covered in the following sections. diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx index 5fcfc8fa66..92ddc07330 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx @@ -3,7 +3,7 @@ title: BufferedStorageBackend sidebar_position: 5 --- -[BufferedStorageBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/buffered_storage_backend.go) is a ledger backend in Stellar [ingest SDK](https://github.com/stellar/go/tree/master/ingest) that retrieves ledger metadata from a cloud-based data lake, typically populated by [Galexie](/docs/data/indexers/build-your-own/galexie). While Galaxie currently supports only [GCS](/docs/data/indexers/build-your-own/galexie/admin_guide/configuring), `BufferedStorageBackend` is designed to work with any datastore that implements the [datastore interface](https://github.com/stellar/go/blob/master/support/datastore/datastore.go). It returns ledger metadata in [XDR](https://developers.stellar.org/docs/learn/encyclopedia/data-format/xdr) format. +[BufferedStorageBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/buffered_storage_backend.go) is a ledger backend in Stellar [ingest SDK](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) that retrieves ledger metadata from a cloud-based data lake, typically populated by [Galexie](../../../galexie/README.mdx). While Galaxie currently supports only [GCS](../../../galexie/admin_guide/configuring.mdx), `BufferedStorageBackend` is designed to work with any datastore that implements the [datastore interface](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go). It returns ledger metadata in [XDR](../../../../../../learn/fundamentals/data-format/xdr.mdx) format. ![](/assets/ingest-sdk/bufferedstoragebackend_architecture.png) @@ -12,15 +12,15 @@ sidebar_position: 5 - **Parallel Downloads**: Downloads multiple ledgers concurrently and buffers them in memory for fast access. This is particularly useful for fetching large historical ledger ranges. - **Schema-Aware**: Reads multi-ledger files based on the datastore schema, extracting one ledger at a time. - **Automatic Retries**: Handles request failures by retrying failed requests. -- **XDR Output**: Returns ledger metadata in XDR format, enabling easy integration with other packages in ingest SDK (e.g., [processors](https://github.com/stellar/go/tree/master/ingest/processors)). +- **XDR Output**: Returns ledger metadata in XDR format, enabling easy integration with other packages in ingest SDK (e.g., [processors](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors)). ## Prerequisites ### Installation & Setup -- Run Galaxie to export ledger data to GCS cloud storage. Follow the [Galaxie admin guide](/docs/data/indexers/build-your-own/galexie) for instructions on running Galaxie. +- Run Galaxie to export ledger data to GCS cloud storage. Follow the [Galaxie admin guide](../../../galexie/README.mdx) for instructions on running Galaxie. -- For purposes of the example code, ensure access to a data lake populated by Galaxie, configured as a GCS bucket. For instructions on creating a data lake, refer to the [Galaxie admin guide](/docs/data/indexers/build-your-own/galexie) . +- For purposes of the example code, ensure access to a data lake populated by Galaxie, configured as a GCS bucket. For instructions on creating a data lake, refer to the [Galaxie admin guide](../../../galexie/README.mdx). ## Configuration @@ -79,7 +79,7 @@ backendConfig := ledgerbackend.BufferedStorageBackendConfig{ } ``` -You can specify these values individually or use the [default configuration](https://github.com/stellar/go/blob/master/ingest/cdp/producer.go#L29-L46). The default settings automatically adjust the number of parallel download workers and buffer size based on the object size (ledger count per file). _These values are based on empirical testing, but the optimal configuration may vary depending on hardware and network conditions._ +You can specify these values individually or use the [default configuration](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/cdp/producer.go#L29-L46). The default settings automatically adjust the number of parallel download workers and buffer size based on the object size (ledger count per file). _These values are based on empirical testing, but the optimal configuration may vary depending on hardware and network conditions._ ### Usage @@ -95,9 +95,9 @@ import ( "log" "time" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/support/datastore" - "github.com/stellar/go/support/errors" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/support/datastore" + "github.com/stellar/go-stellar-sdk/support/errors" ) func main() { @@ -163,4 +163,4 @@ func main() { } ``` -For real-time streaming of new ledgers using `BufferedStorageBackend`, refer to the [Ingestion Pipeline Code](/docs/build/apps/ingest-sdk/ingestion-pipeline-code). +For real-time streaming of new ledgers using `BufferedStorageBackend`, refer to the [Ingestion Pipeline Code](../../../../../../build/apps/ingest-sdk/ingestion-pipeline-code.mdx). diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx index 03f46e7cd6..812bb357d3 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx @@ -7,15 +7,16 @@ Captive Core invokes the `stellar-core` binary as a subprocess to stream ledgers ## Prerequisites -Using captive Core requires stellar-core binary to be [installed](/docs/validators/admin-guide/installation) first. +Using captive Core requires stellar-core binary to be [installed](../../../../../../validators/admin-guide/installation.mdx) first. ### Installation 1. Install Stellar Core: - - Option 1: Build from source by following the [Installation Guide](/docs/validators/admin-guide/installation#installing-from-source) - - Option 2: Install via a package manager by referring to the [Package-based Installation Guide](/docs/validators/admin-guide/installation#package-based-installation) + - Option 1: Build from source by following the [Installation Guide](../../../../../../validators/admin-guide/installation.mdx#installing-from-source) + - Option 2: Install via a package manager by referring to the [Package-based Installation Guide](../../../../../../validators/admin-guide/installation.mdx#package-based-installation) 2. Verify installation: + ```bash ./stellar-core version ``` @@ -67,4 +68,4 @@ if err != nil { } ``` -The `captiveStellarCoreBackend` can now be used to retrieve ledger data within a specified range. For detailed usage, refer to the [code samples](/docs/data/indexers/build-your-own/ingest-sdk/examples). +The `captiveStellarCoreBackend` can now be used to retrieve ledger data within a specified range. For detailed usage, refer to the [code samples](../../examples/README.mdx). diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx index 37eccdb6cf..a99826a1a3 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx @@ -3,14 +3,14 @@ title: RPC Ledger Backend sidebar_position: 10 --- -The [RPCLedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/rpc_backend.go) is a [LedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go) implementation in Stellar [Ingest SDK](https://github.com/stellar/go/tree/master/ingest) which uses an RPC Server as the backing source of ledger meta data. +The [RPCLedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/rpc_backend.go) is a [LedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go) implementation in Stellar [Ingest SDK](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) which uses an RPC Server as the backing source of ledger meta data. -Applications can use this ledger backend in order to obtain ledger meta data from the Stellar network through the standard [LedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go) interface methods. This ledger backend is considered the most lightweight of the available ledger backends as it only requires an HTTP client to access a remote RPC server. +Applications can use this ledger backend in order to obtain ledger meta data from the Stellar network through the standard [LedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go) interface methods. This ledger backend is considered the most lightweight of the available ledger backends as it only requires an HTTP client to access a remote RPC server. Usage of the RPCLedgerBackend implies having awareness of the retention window and data lake settings on the remote RPC server as these aspects determine the range of ledgers which are accessible through the RPCLedgerBackend. - `HISTORY_RETENTION_WINDOW` - This is a setting on the RPC server which determines the range of ledgers retained by the RPC in a sliding window from latest on Stellar network. The default is to retain the latest 7 days worth of ledger data from the Stellar network. -- [Data Lake Integration](/docs/data/apis/rpc/admin-guide/data-lake-integration) - If the RPC has the Data Lake integration enabled then the range of ledgers available will be a minimum of RPC's Retention Window and extends further back in history out to the larger range provided by the data lake. +- [Data Lake Integration](../../../../../apis/rpc/admin-guide/data-lake-integration.mdx) - If the RPC has the Data Lake integration enabled then the range of ledgers available will be a minimum of RPC's Retention Window and extends further back in history out to the larger range provided by the data lake. ## Example SDK Usage @@ -21,13 +21,13 @@ Usage of the RPCLedgerBackend implies having awareness of the retention window a ### Code -A working example demonstrating programmatic usage of [RPCLedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/rpc_backend.go) to print a stream of latest ledgers emitted from the Stellar Testnet Network. Note the additional usage of the [RPC Go Client](https://github.com/stellar/stellar-rpc/blob/main/client/main.go) which uses the same RPC url to get the latest ledger from the RPC server. This is used to prime our live streaming example to use the latest known ledger on RPC as the starting ledger when requesting the unbounded range. +A working example demonstrating programmatic usage of [RPCLedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/rpc_backend.go) to print a stream of latest ledgers emitted from the Stellar Testnet Network. Note the additional usage of the [RPC Go Client](https://github.com/stellar/stellar-rpc/blob/main/client/main.go) which uses the same RPC url to get the latest ledger from the RPC server. This is used to prime our live streaming example to use the latest known ledger on RPC as the starting ledger when requesting the unbounded range. Prerequisites: 1. Create an empty directory `rpc-backend` and`cd` into the directory. 2. Run `go mod init example/rpc-backend` -3. Run `go get github.com/stellar/go github.com/stellar/stellar-rpc@rpcclient-v23.0.0` +3. Run `go get github.com/stellar/go-stellar-sdk@latest` 4. Copy this code snippet to `rpc_ledger_backend_demo.go` ```go @@ -38,8 +38,8 @@ import ( "fmt" "log" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/stellar-rpc/client" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + client "github.com/stellar/go-stellar-sdk/clients/rpcclient" ) func main() { diff --git a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx index 3f7994b051..fe6c7a3da3 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx @@ -5,8 +5,8 @@ sidebar_position: 15 These readers are designed to extract data from the Stellar ledger in a structured way and enables iterating over ledger changes. -- [LedgerTransactionReader](https://github.com/stellar/go/blob/master/ingest/ledger_transaction_reader.go): Extracts transactions from a specific ledger sequence. It retrieves the transaction set from `LedgerCloseMeta` and provides an iterator for accessing each individual transaction. +- [LedgerTransactionReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledger_transaction_reader.go): Extracts transactions from a specific ledger sequence. It retrieves the transaction set from `LedgerCloseMeta` and provides an iterator for accessing each individual transaction. -- [LedgerChangeReader](https://github.com/stellar/go/blob/master/ingest/ledger_change_reader.go): Provides a complete record of all ledger entry changes within a ledger, including those from transactions, fees, upgrades, and other network-level operations. It processes `LedgerCloseMeta` to extract `LedgerEntryChanges`. +- [LedgerChangeReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledger_change_reader.go): Provides a complete record of all ledger entry changes within a ledger, including those from transactions, fees, upgrades, and other network-level operations. It processes `LedgerCloseMeta` to extract `LedgerEntryChanges`. -- [CheckpointChangeReader](https://github.com/stellar/go/blob/master/ingest/checkpoint_change_reader.go): Reads ledger entries from history archive buckets at a checkpoint ledger, enabling developers to reconstruct the state (accounts, trust lines etc.) at a specific point in time. +- [CheckpointChangeReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/checkpoint_change_reader.go): Reads ledger entries from history archive buckets at a checkpoint ledger, enabling developers to reconstruct the state (accounts, trust lines etc.) at a specific point in time. diff --git a/docs/data/indexers/build-your-own/ingest-sdk/examples/README.mdx b/docs/data/indexers/build-your-own/ingest-sdk/examples/README.mdx index 5465459c44..da69e59cc3 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/examples/README.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/examples/README.mdx @@ -1,6 +1,7 @@ --- title: Example Usages sidebar_position: 10 +sidebar_key: ingest-sdk-example-usages --- This section showcases real-world use cases of the Ingest SDK, focusing on key components like `ingest.LedgerTransaction`, `ingest.LedgerChange`, `ingest.LedgerTransactionReader`, and `ingest.ChangeReader`. @@ -11,15 +12,9 @@ These examples take a Stellar Ledger (`xdr.LedgerCloseMeta`) or a ledger sequenc Some of the examples listed here might invoke the `stellar-core` binary. Refer to the "admin guide" for more details on how to compile `stellar-core` for your platform. -The Ingest SDK is currently a part of the [Stellar Go Repo](https://github.com/stellar/go), which includes several packages in addition to the ingest SDK. You will need to include the following in the `go.mod` file in your codebase. +The [Stellar Ingest SDK](https://github.com/stellar/go-stellar-sdk) is a go module and includes several packages in addition to the ingest SDK. You will need to include the module in your go project `go.mod`. +```bash +go get github.com/stellar/go-stellar-sdk@latest +go mod tidy ``` -//filename: go.mod - -require ( - github.com/stellar/go v0.0.0-20250206032706-4e70599a66af -) - -``` - -You may want to optionally run `go mod tidy` in your codebase to pull the latest version of the ingest package. diff --git a/docs/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx b/docs/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx index 8f441d62fc..5de238f532 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx @@ -5,8 +5,6 @@ sidebar_position: 30 This code invokes the `stellar-core` binary (as configured in `ledgerbackend.CaptiveCoreConfig`) to replay ledgers from a given ledger range. It uses the `ingest.LedgerChangeReader` to read changes from each ledger (`xdr.LedgerCloseMeta`) and categorizes the changes based on whether they represent created, updated, or deleted ledger entries. The `ingest.Change` structure is used to capture individual changes, and the code tracks various types of changes such as those related to fees, transactions, or operations. - - ```go // Filename: change_entries.go @@ -16,10 +14,10 @@ import ( "context" "encoding/json" "fmt" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/network" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/xdr" "io" ) @@ -147,8 +145,6 @@ func main() { } ``` - - **Sample Response:** ```bash diff --git a/docs/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx b/docs/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx index 1cdc487a48..835bc80edd 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx @@ -5,8 +5,6 @@ sidebar_position: 20 This example connects to the Stellar History Archive and initializes a checkpoint change reader with `ingest.NewCheckpointChangeReader` to read ledger entry changes from a history archive snapshot occurring at a given checkpoint ledger. It iterates over the ledger changes, processing different entry types such as `Account`, `ClaimableBalance`, `Trustline`, and `Offer`, using the `ingest.Change` structure. The code tracks statistics in an `entriesInfo` struct, counting the total entries and specific types. - - ```go // Filename: ledger_entries.go @@ -16,11 +14,11 @@ import ( "context" "encoding/json" "fmt" - "github.com/stellar/go/historyarchive" - "github.com/stellar/go/ingest" - "github.com/stellar/go/network" - "github.com/stellar/go/support/storage" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/historyarchive" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/support/storage" + "github.com/stellar/go-stellar-sdk/xdr" "io" ) @@ -111,8 +109,6 @@ func main() { } ``` - - **Sample Response:** ```bash @@ -125,5 +121,4 @@ Processed 40123000 ledger entry changes... "NumClaimableBalances": 7559287, "NumOffers": 1053870 } - ``` diff --git a/docs/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx b/docs/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx index 844eb21f69..6d29599788 100644 --- a/docs/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx +++ b/docs/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx @@ -5,8 +5,6 @@ sidebar_position: 10 This example illustrates how to run and connect with a Stellar network watcher node, referred to as 'captive core' using the `ledgerbackend.CaptiveStellarCore`. It then requests a historical bounded range of ledgers to be replayed. The captive core instance will emit a stream of ledger metadata (`xdr.LedgerCloseMeta`) which contains the transactions per ledger in the range. It reads each ledger's transactions using the `ingest.LedgerTransactionReader`, categorizes them as successful or failed, and tracks the operations associated with each transaction. - - ```go // Filename: transaction_statistics.go @@ -15,13 +13,13 @@ package main import ( "context" "fmt" - "github.com/stellar/go/network" + "github.com/stellar/go-stellar-sdk/network" "io" "github.com/sirupsen/logrus" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/support/log" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/support/log" ) func panicIf(err error) { @@ -111,8 +109,6 @@ func main() { } ``` - - **Sample Response:** ```bash diff --git a/docs/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx b/docs/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx index c3094179b1..e6a8f5a947 100644 --- a/docs/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx +++ b/docs/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## Overview -The Token Transfer Processor (TTP) is a [Go package](https://github.com/stellar/go/tree/ttp-v1.0.0/ingest/processors/token_transfer) which uses the [ingest-sdk](../../ingest-sdk/README.mdx) to parse Stellar network transaction data and derive token transfer events. Before TTP, developers had to manually parse complex ledger data, operation results, and ledger entry changes to understand when and how value moved between accounts, contracts, and other entities on the network. +The Token Transfer Processor (TTP) is a [Go package](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors/token_transfer) which uses the [ingest-sdk](../../ingest-sdk/README.mdx) to parse Stellar network transaction data and derive token transfer events. Before TTP, developers had to manually parse complex ledger data, operation results, and ledger entry changes to understand when and how value moved between accounts, contracts, and other entities on the network. Prior to [CAP-67 Unified Events][cap67], tracking token transfers required significant custom logic to handle different operation types, interpret ledger changes, and reconstruct the flow of assets. CAP-67 introduced a standardized event format that simplifies this process by providing a unified way to represent all token transfer activities. @@ -43,7 +43,7 @@ For more details on operational modes, see the [Modes of Operation](#modes-of-op ## Events -TTP generates events in Go bindings based on [protobuf definitions](https://github.com/stellar/go/blob/ttp-v1.0.0/protos/ingest/processors/token_transfer/token_transfer_event.proto). The definitions codify an IDL for the standardized token transfer event models put forth in CAP-67. Each event contains metadata and type-specific information structured as follows: +TTP generates events in Go bindings based on [protobuf definitions](https://github.com/stellar/go-stellar-sdk/blob/main/protos/ingest/processors/token_transfer/token_transfer_event.proto). The definitions codify an IDL for the standardized token transfer event models put forth in CAP-67. Each event contains metadata and type-specific information structured as follows: | Event Type | Description | Key Fields | When Generated | | --- | --- | --- | --- | diff --git a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx index 2e536e1649..dabf22c308 100644 --- a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx +++ b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx @@ -1,31 +1,30 @@ --- title: Example Usages sidebar_position: 10 +sidebar_key: token-transfer-processor-example-usages --- This section contains examples of how Token Transfer Processor can be used in your application logic ## Prerequisites +You have an existing go module in current directory or create a new module locally for this example exercise. + +```bash +go mod init example/ttp_processor ``` -//filename: go.mod -require ( - // This currently points to a RC release of Whisk, Protocol 23. - // Please update it to use the latest stable version once Whisk, Protocol 23 is released to mainnet. - github.com/stellar/go horizonclient-v23.0.0-rc -) +Include the Stellar Ingest SDK into your go application module which contains the Token Transfer Processor. +```bash +go get github.com/stellar/go-stellar-sdk@latest +go mod tidy ``` -You may want to optionally run `go mod tidy` in your codebase to pull the latest version of the ingest package. - ## Helper Code This section contains some helper code that will be used in all the examples. - - ```go package main @@ -33,10 +32,10 @@ import ( "context" "fmt" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/processors/token_transfer" - "github.com/stellar/go/support/log" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/support/log" + "github.com/stellar/go-stellar-sdk/xdr" "google.golang.org/protobuf/encoding/protojson" ) @@ -80,5 +79,3 @@ func printProtoEvent(event *token_transfer.TokenTransferEvent) { fmt.Println(string(jsonBytes)) } ``` - - diff --git a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx index 1ae8c6621b..6765ef8ad5 100644 --- a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx +++ b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx @@ -5,8 +5,6 @@ sidebar_position: 10 This example fetches a specific Stellar ledger and uses the Token Transfer Processor to extract all token movement events from it. The code processes each event, categorizes them by type (transfers, mints, burns, clawbacks, fees), and prints both the individual event details and summary statistics. This demonstrates the basic usage of EventsFromLedger() to analyze all asset activity within a single ledger. - - ```go package main @@ -14,8 +12,8 @@ import ( "fmt" "strings" - "github.com/stellar/go/network" - "github.com/stellar/go/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" ) func main() { @@ -81,7 +79,4 @@ func main() { fmt.Printf("Fees: %d\n", feeCount) fmt.Printf("Refunds: %d\n", refundCount) } - ``` - - diff --git a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx index 1628d3c910..e9b39041b3 100644 --- a/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx +++ b/docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx @@ -20,8 +20,6 @@ The filtering system uses Stellar data types from the Stellar Go SDK for accurat - **Event Type Matching**: Uses the actual event type constants from the token_transfer package (e.g., `token_transfer.TransferEvent`) - **Contract Filtering**: Matches exact contract addresses from the event metadata - - ```go package main @@ -31,11 +29,11 @@ import ( "log" "strings" - assetPkg "github.com/stellar/go/asset" - "github.com/stellar/go/ingest" - "github.com/stellar/go/network" - "github.com/stellar/go/processors/token_transfer" - "github.com/stellar/go/xdr" + assetPkg "github.com/stellar/go-stellar-sdk/asset" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/xdr" ) // FilterOptions defines the filtering criteria @@ -219,7 +217,4 @@ func main() { EventType: "fee", }) } - ``` - - diff --git a/docs/data/indexers/build-your-own/tutorials/README.mdx b/docs/data/indexers/build-your-own/tutorials/README.mdx deleted file mode 100644 index b81d782e22..0000000000 --- a/docs/data/indexers/build-your-own/tutorials/README.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Tutorials -sidebar_position: 10 ---- - -Tutorials for building your own indexer. - -## [Build Custom Network Ingestion Pipeline](../../../../build/apps/ingest-sdk/overview.mdx) diff --git a/docs/data/indexers/indexer-providers/indexer-providers.mdx b/docs/data/indexers/indexer-providers/indexer-providers.mdx deleted file mode 100644 index 5b9c97113d..0000000000 --- a/docs/data/indexers/indexer-providers/indexer-providers.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 20 -title: Data Indexer Providers ---- - -## Data Indexers - -To power your applications, a range of data services will be available from data indexers with query interfaces. These indexers will allow you to easily store and retrieve decoded ledger data, contract event emissions, and more. You can focus more energy on making your project successful, and waste less time figuring out precisely how to get the important data from the network. - -### [Goldsky](https://goldsky.com/) - -Goldsky is an indexing provider for Stellar that makes it easy to extract, transform, and load on-chain data to power both application. A data pipeline tool allowing you to combine on-chain and off-chain data however you like, streamed directly into your own custom database. For additional info, please see [relevant docs](https://docs.goldsky.com/chains/stellar) and [tutorial video](https://docs.goldsky.com/chains/stellar#1-deploying-stellar-transactions-using-goldsky-flow). - -Select data source: ![Goldsky Datasets](/assets/api/indexer/goldsky1.png) - -Select handler or a data sink: ![Goldsky DataSink](/assets/api/indexer/goldsky2.png) - -Select a type of data sink: ![Goldsky Yaml](/assets/api/indexer/goldsky3.png) - -### [Mercury](https://docs.mercurydata.app) - -A network indexing service that provides a toolkit to help get you started working with Stellar network data. - -### [SubQuery](https://subquery.network/) - -An open-source data indexer for Stellar that enables custom API creation for dapps and smart contracts with clean, indexed data. It supports indexing ledgers, transactions, operations, and effects from Stellar, as well as transactions and events from Soroban into a Postgres database. - -### [The Graph](https://thegraph.com/) - -A decentralized indexing protocol for querying blockchain data. The Graph allows developers to build and publish open APIs, called subgraphs, that make on-chain data easily accessible and searchable for their applications. - -### [OnFinality](https://onfinality.io) - -Industry leading data indexer hosting and managed service for your Stellar SubQuery and Subgraph indexer projects diff --git a/docs/learn/fundamentals/anchors.mdx b/docs/learn/fundamentals/anchors.mdx index dcf597c9e0..3d3488dade 100644 --- a/docs/learn/fundamentals/anchors.mdx +++ b/docs/learn/fundamentals/anchors.mdx @@ -15,7 +15,7 @@ Stellar has anchor services operating worldwide. View the [Anchor Directory](htt Anchors can issue their own assets on the Stellar network, or they can honor assets that already exist. -You can set up an anchor by using the SDF-maintained [Anchor Platform](/platforms/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). +You can set up an anchor by using the SDF-maintained [Anchor Platform](../../platforms/anchor-platform/README.mdx), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). Learn how to integrate anchor services into your blockchain-based application by viewing the [Build Apps section](../../build/apps/overview.mdx). If you’re looking for MoneyGram Ramps, see the Integrate with [MoneyGram Ramps tutorial](https://developer.moneygram.com/moneygram-developer/docs/integrate-moneygram-ramps). diff --git a/docs/learn/fundamentals/contract-development/authorization.mdx b/docs/learn/fundamentals/contract-development/authorization.mdx index be71e91cca..abe178d21b 100644 --- a/docs/learn/fundamentals/contract-development/authorization.mdx +++ b/docs/learn/fundamentals/contract-development/authorization.mdx @@ -16,10 +16,10 @@ View the [authorization starter guide](../../../build/guides/auth/contract-autho Soroban aims to provide a light-weight, but flexible and extensible framework that allows contracts to implement arbitrarily complex authorization rules, while providing built-in implementation for some common tasks (such as replay prevention). The framework consists of the following components: - Contract-specific authorization - custom authorization rules implemented by contracts using the private contract storage and abstract accounts. -- Account abstraction - allows users to customize their authentication rules and define universal authorization policies via custom account contracts (this includes the built-in support for the Stellar accounts). -- Host-based authorization library - ensures integrity between the custom accounts and regular contracts. Also defines the structured signature payload format, ensures replay prevention and takes care of providing the correct signature contexts. +- Account abstraction - allows users to customize their authentication rules and define universal authorization policies via contract account. This includes the built-in support for Stellar accounts. +- Host-based authorization library - ensures integrity between contract accounts and regular contracts. Also defines the structured signature payload format, ensures replay prevention and takes care of providing the correct signature contexts. -Soroban host also provides some cryptographic functions (signature verification, hashing) which may be useful for the custom account implementation. +Soroban host also provides some cryptographic functions (signature verification, hashing) which may be useful for contract account implementations. Contracts that use Soroban authorization framework are interoperable with each other. Also it is easier for the client applications to write generic code for interaction with Soroban authorization framework. For example, wallets can implement a generalized way to present and sign Soroban payloads. @@ -105,23 +105,23 @@ Corresponds to `Address::Contract`. This is a special case of an 'account' that may appear only when a contract calls another contract. We consider that since the contract makes a call, then it must be authorizing it (otherwise, it shouldn't have made that call). Hence all the `require_auth` calls made on behalf of the **direct** invoker contract `Address` are considered to be authorized (but not any calls on behalf of the contract deeper down the stack). -##### Custom Account +##### Contract Account Corresponds to `Address::Contract`. -This is the extension point of account abstraction. Custom account is a special contract that implements `__check_auth` method. If any contract calls `require_auth` for the `Address` of this contract, Soroban host will call `__check_auth` with the corresponding arguments. +This is the extension point of account abstraction. A contract that implements the `CustomAccountInterface` and `__check_auth` becomes a contract account. If any contract calls `require_auth` for the `Address` of this contract, the Soroban host will call `__check_auth` with the corresponding arguments. `__check_auth` gets a signature payload, a list of signatures (in any user-defined format) and a list of the contract invocations that are being authorized by these signatures. Its responsibility is to perform the authentication via verifying the signatures and also (optionally) to apply a custom authorization policy. For example, a signature weight system similar to Stellar can be implemented, but it also can have customizable rules for the weights, e.g. to allow spending more than X units of token Y only given signature weight Z. -Custom account can also be treated as a custodial smart wallet. It holds the user's funds (token balances, NFTs etc.) and provides the user(s) with ways to authorize operations on these funds. That said, nothing prevents custom accounts to authorize operations that have nothing to do with any balances, for example, it can be used to perform administrative functions for tokens (don't forget, custom account simply defines what to do when `require_auth` is called). +Contract accounts can also be treated as a custodial wallet. It holds the user's funds (token balances, NFTs etc.) and provides the user(s) with ways to authorize operations on these funds. Nothing prevents contract accounts from authorizing operations unrelated to balances; for example, they can perform administrative functions for tokens (contract accounts define what to do when `require_auth` is called). -For the exact interface and more details, see the [custom account example]. +For the exact interface and more details, see the [Simple Account example]. -[custom account example]: ../../../build/smart-contracts/example-contracts/custom-account.mdx +[Simple Account example]: ../../../build/smart-contracts/example-contracts/simple-account.mdx -### Secp256r1, passkeys and smart wallets +### Secp256r1, passkeys and contract accounts -After a successful public validator vote to upgrade Stellar's Mainnet to Protocol 21, the secp256r1 signature scheme was enabled for smart contract transactions. This allows developers to implement passkeys to sign transactions instead of using secret keys or seed phrases. Official documentation is a work in progress, view all passkey and smart wallet information in the [Smart Wallets](../../../build/apps/smart-wallets.mdx) page in the docs. +After a successful public validator vote to upgrade Stellar's Mainnet to Protocol 21, the secp256r1 signature scheme was enabled for smart contract transactions. This allows developers to implement passkeys to sign transactions instead of using secret keys or seed phrases. For guidance, see the [passkey wallet guide](../../../build/guides/contract-accounts/smart-wallets.mdx). ### Advanced Concepts diff --git a/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx b/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx index 3e4a817ceb..60c60bb1ae 100644 --- a/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx +++ b/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx @@ -11,7 +11,7 @@ To understand how to debug Soroban errors, first we must understand how the erro The typical transaction submission process can be broken down into the following sequential steps, excluding external interactions like wallet interactions. Each step has its own set of potential errors: 1. **Transaction Simulation (optional):** - - **What happens:** This step involves executing the RPC endpoint [`simulateTransaction`](../../../../data/apis/rpc/api-reference/methods/simulateTransaction). The endpoint executes a transaction in 'simulation' mode of host and records the necessary ledger entries, CPU instructions, required authorizations. The end result is akin to running transactions in Core with maxed-out resources, unrestricted ledger access, and no fees. + - **What happens:** This step involves executing the RPC endpoint [`simulateTransaction`](../../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx). The endpoint executes a transaction in 'simulation' mode of host and records the necessary ledger entries, CPU instructions, required authorizations. The end result is akin to running transactions in Core with maxed-out resources, unrestricted ledger access, and no fees. - **Common failures:** Errors typically involve exceeding the network limit or encountering contract logic issues. 2. **Core Accepts the Transaction:** @@ -26,7 +26,7 @@ The typical transaction submission process can be broken down into the following - **What happens:** Core executes the included transaction. - **Common failures:** This step has the widest range of potential errors. Failures could include accessing archived entries, resource depletion, accessing entries outside the specified footprint, or encountering logic failures within the contract. -_For more information about fees, please visit [Fees, Resource Limits, and Metering](https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee)._ +_For more information about fees, please visit [Fees, Resource Limits, and Metering](../../fees-resource-limits-metering.mdx#inclusion-fee)._ ## Detailed Soroban Errors diff --git a/docs/learn/fundamentals/contract-development/overview.mdx b/docs/learn/fundamentals/contract-development/overview.mdx index 9b4a9b3632..b1c74b06e5 100644 --- a/docs/learn/fundamentals/contract-development/overview.mdx +++ b/docs/learn/fundamentals/contract-development/overview.mdx @@ -57,7 +57,9 @@ A Stellar contract's Wasm contains dedicated custom sections. They provide usefu - Contract Meta - Contract Spec -![Contract Info](/assets/contract/contract-info.png) _Explore contract info at [Stellar Lab's Contract Explorer](https://lab.stellar.org/smart-contracts/contract-explorer?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&rpcUrl=https:////soroban-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;;)._ +![Contract Info Meta](/assets/contract/contract-info-meta.png) ![Contract Info Spec](/assets/contract/contract-info-spec.png) + +_Explore contract info at [Stellar Lab's Contract Explorer](https://lab.stellar.org/smart-contracts/contract-explorer)._ ### Environment Meta diff --git a/docs/learn/fundamentals/contract-development/rust-dialect.mdx b/docs/learn/fundamentals/contract-development/rust-dialect.mdx index db534d62e5..17d9a7d63d 100644 --- a/docs/learn/fundamentals/contract-development/rust-dialect.mdx +++ b/docs/learn/fundamentals/contract-development/rust-dialect.mdx @@ -72,7 +72,7 @@ These container types `Vec` and `Map` should _not_ be used for managing large or The WebAssembly specification has grown significantly since its initial introduction and now supports many _features_ that may or may not be available on a given implementation of WebAssembly. -Soroban intentionally limits which WebAssembly features it supports, to minimize the security-critical surface area and retain flexibility in choice of WebAssembly implementations. As of Rust 1.84, a new target `wasm32v1-none` was added to Rust that intentionally restricts itself to the "WebAssembly 1.0" subset of features, all of which Soroban supports. +Soroban intentionally limits which WebAssembly features it supports, to minimize the security-critical surface area and retain flexibility in choice of WebAssembly implementations. As of Rust `v1.84.0`, a new target `wasm32v1-none` was added to Rust that intentionally restricts itself to the "WebAssembly 1.0" subset of features, all of which Soroban supports. New Soroban contracts should be built with Rust `v1.84.0` or later, and use the `wasm32v1-none` target. diff --git a/docs/learn/fundamentals/contract-development/storage/persisting-data.mdx b/docs/learn/fundamentals/contract-development/storage/persisting-data.mdx index edc94502aa..57534f1682 100644 --- a/docs/learn/fundamentals/contract-development/storage/persisting-data.mdx +++ b/docs/learn/fundamentals/contract-development/storage/persisting-data.mdx @@ -55,7 +55,7 @@ While there is no distinction between "account" state and "shared" state at the - State shared by only a specific subset of users - AMM pool values In an AMM monolith contract (Uniswap V4 style) - Note: Sometimes account and shared state can merge when the contract scope is small - - I.e. smart wallet or a single nft, where a new contract instance is generated for each account + - I.e. a contract account or a single NFT, where a new contract instance is generated for each account ### Owned Contracts vs. Autonomous Contracts @@ -63,7 +63,7 @@ In addition to the types of state, it is also helpful to consider the type of co - Owned contracts - Contract instances that have a clear owner - - A smart wallet or a single nft, where a new contract instance is generated for each account + - A contract account or a single NFT, where a new contract instance is generated for each account - Custom reserve backed assets (USDC, etc) - Autonomous contracts - Contract instance that have not clear owner, or have a decentralized group of owners diff --git a/docs/learn/fundamentals/contract-development/storage/state-archival.mdx b/docs/learn/fundamentals/contract-development/storage/state-archival.mdx index eac9cf421d..fe7ee4f681 100644 --- a/docs/learn/fundamentals/contract-development/storage/state-archival.mdx +++ b/docs/learn/fundamentals/contract-development/storage/state-archival.mdx @@ -222,7 +222,7 @@ Remember, though, that any combination of these scenarios can occur in reality. ### Preparation -In order to help the scaffolding of the code, we'll reuse the rudimentary, retry-enabled transaction polling function `submitTx` which we outlined in [another guide](/build/guides/transactions/submit-transaction-wait-js.mdx). +In order to help the scaffolding of the code, we'll reuse the rudimentary, retry-enabled transaction polling function `submitTx` which we outlined in [another guide](../../../../build/guides/transactions/submit-transaction-wait-js.mdx). In the following code, we will also leverage [`Server.prepareTransaction`](https://stellar.github.io/js-stellar-sdk/module-rpc.Server.html#prepareTransaction). This is a helpful method that, given a transaction, will simulate it, then amend the transaction with the simulation results (fees, etc.) and return that. Then, it can just be signed and submitted. We will also use [`SorobanDataBuilder`](https://stellar.github.io/js-stellar-sdk/SorobanDataBuilder.html), a convenient abstraction that lets us use a [builder pattern](https://en.wikipedia.org/wiki/Builder_pattern) to set the appropriate storage footprints for a transaction. diff --git a/docs/learn/fundamentals/data-format/xdr-json.mdx b/docs/learn/fundamentals/data-format/xdr-json.mdx index 29d063dfab..efb13a1778 100644 --- a/docs/learn/fundamentals/data-format/xdr-json.mdx +++ b/docs/learn/fundamentals/data-format/xdr-json.mdx @@ -3,8 +3,6 @@ title: XDR-JSON sidebar_position: 2 --- -import { CodeExample } from "@site/src/components/CodeExample"; - The XDR-JSON schema is defined by the [stellar-xdr crate](https://docs.rs/stellar-xdr) and provides a round-trippable means for converting Stellar [XDR] values to JSON and converting that JSON back to the identical XDR. Converting with the schema is also exposed by the following tools and libraries. diff --git a/docs/learn/fundamentals/data-format/xdr.mdx b/docs/learn/fundamentals/data-format/xdr.mdx index f249b22391..01938c6ac2 100644 --- a/docs/learn/fundamentals/data-format/xdr.mdx +++ b/docs/learn/fundamentals/data-format/xdr.mdx @@ -3,8 +3,6 @@ title: XDR sidebar_position: 1 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Stellar stores and communicates ledger data, transactions, results, history, and messages in a binary format called External Data Representation (XDR). XDR is defined in [RFC4506]. XDR is optimized for network performance but not human readable. The Stellar SDKs convert XDRs into friendlier formats. ## .X files diff --git a/docs/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx b/docs/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx index 1f92465b61..7d32852fec 100644 --- a/docs/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx +++ b/docs/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx @@ -7,8 +7,6 @@ sidebar_position: 100 # Liquidity on Stellar: SDEX & Liquidity Pools -import { CodeExample } from "@site/src/components/CodeExample"; - :::note This section is scoped specifically to liquidity regarding the AMM and SDEX built into the Stellar protocol and does not include information regarding smart contracts. diff --git a/docs/learn/fundamentals/lumens.mdx b/docs/learn/fundamentals/lumens.mdx index 519bf1c392..669ba49b08 100644 --- a/docs/learn/fundamentals/lumens.mdx +++ b/docs/learn/fundamentals/lumens.mdx @@ -39,12 +39,10 @@ When you close a subentry, the associated base reserve will be added to your ava ## Rent -Smart contract data does not require any base reserves in order to live on the ledger, so every smart contract entry must pay rent instead. The rent charged for an entry to exist on the ledger is based on how big the entry is and how long the it should be live on the ledger before being archived. There are different rent requirements for each storage type `Persistent`, `Temporary`, and `Instance`, which you can read about in the [State Archival section](../fundamentals/contract-development/storage/state-archival.mdx). +Smart contract data does not require any base reserves in order to live on the ledger, so every smart contract entry must pay rent instead. The rent charged for an entry to exist on the ledger is based on how big the entry is and how long it should be live on the ledger before being archived. There are different rent requirements for each storage type `Persistent`, `Temporary`, and `Instance`, which you can read about in the [State Archival section](../fundamentals/contract-development/storage/state-archival.mdx). ## Lumen Supply Metrics -import { CodeExample } from "@site/src/components/CodeExample"; - This section explains how lumen supply metrics are calculated and made available via API. This information can be useful for products and services that track the distribution of XLM, including market cap aggregators and some exchanges, or to anyone who wants to investigate the distribution of XLM defined by the SDF mandate. Unlike many other blockchains, the native network currency is not created through mining- all XLM that has ever existed and will ever exist was created when the Stellar network went live. diff --git a/docs/learn/fundamentals/stellar-consensus-protocol.mdx b/docs/learn/fundamentals/stellar-consensus-protocol.mdx index a5da236bd4..36952b1c9a 100644 --- a/docs/learn/fundamentals/stellar-consensus-protocol.mdx +++ b/docs/learn/fundamentals/stellar-consensus-protocol.mdx @@ -62,8 +62,12 @@ To transition between the states above, federated voting has the following rules - Vote for A if it is consistent with my previous votes - Accept A if either: - - Every node in my quorum slice voted for or accepted A, OR + - Every node in my quorum slice voted for or accepted A + + OR + - My blocking set accepted A (even if I voted for something that contradicts A in the past, I forget about that vote, and proceed with accepting A) + - Confirm A if every node in a quorum slice accepted A ## Consensus rounds diff --git a/docs/learn/fundamentals/stellar-data-structures/accounts.mdx b/docs/learn/fundamentals/stellar-data-structures/accounts.mdx index 8885654216..59868bf298 100644 --- a/docs/learn/fundamentals/stellar-data-structures/accounts.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/accounts.mdx @@ -13,7 +13,7 @@ To learn about minimum balance requirements, [see our section on Lumens](../lume :::note -There are two types of accounts on Stellar: Stellar accounts (`G...` addresses) and [contract accounts (`C...` addresses)](../../../build/smart-contracts/example-contracts/custom-account.mdx). This section focuses on Stellar `G...` accounts. +There are two types of accounts on Stellar: Stellar accounts (`G...` addresses) and contract accounts (`C...` addresses). For a minimal contract account walkthrough, start with the [Simple Account example](../../../build/smart-contracts/example-contracts/simple-account.mdx). This section focuses on Stellar `G...` accounts. ::: diff --git a/docs/learn/fundamentals/stellar-data-structures/assets.mdx b/docs/learn/fundamentals/stellar-data-structures/assets.mdx index 33bb0237a8..41d1da2230 100644 --- a/docs/learn/fundamentals/stellar-data-structures/assets.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/assets.mdx @@ -13,8 +13,6 @@ The term "custom token" has been deprecated in favor of "contract token". View t # Assets -import { CodeExample } from "@site/src/components/CodeExample"; - Accounts on the Stellar network can be used to track, hold, and transfer any type of asset. Assets can represent many things: cryptocurrencies (such as bitcoin or ether), fiat currencies (such as dollars or pesos), other tokens of value (such as NFTs), pool shares, or bonds and equity. :::note diff --git a/docs/learn/fundamentals/stellar-stack.mdx b/docs/learn/fundamentals/stellar-stack.mdx index 0472e7bfb2..06c92f8dbc 100644 --- a/docs/learn/fundamentals/stellar-stack.mdx +++ b/docs/learn/fundamentals/stellar-stack.mdx @@ -37,7 +37,7 @@ SDF does not provide a publicly available RPC endpoint for Mainnet. Developers s :::warning -Horizon is considered deprecated in favor of Stellar RPC. While it will continue to receive updates to maintain compatiblity with upcoming protocol releases, it won't receive significant new feature development. +Horizon is nearing end-of-life and will eventually be deprecated in favor of Stellar RPC and [Portfolio APIs](../../data/indexers/README.mdx#portfolio-apis). While it will continue to receive updates to maintain compatibility with upcoming protocol releases, it won't receive new feature development. ::: diff --git a/docs/learn/fundamentals/transactions/list-of-operations.mdx b/docs/learn/fundamentals/transactions/list-of-operations.mdx index 1ba365ad3e..dec2d89543 100644 --- a/docs/learn/fundamentals/transactions/list-of-operations.mdx +++ b/docs/learn/fundamentals/transactions/list-of-operations.mdx @@ -23,7 +23,7 @@ All these operations have an optional source account parameter. If the source ac Creates and funds a new account with the specified starting balance -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.createAccount) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreateAccountOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#CreateAccount) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.createAccount) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreateAccountOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#CreateAccount) **Threshold**: Medium **Result**: `CreateAccountResult` **Parameters**: @@ -46,7 +46,7 @@ Creates and funds a new account with the specified starting balance Sends an amount in a specific asset to a destination account -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.payment) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PaymentOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#Payment) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.payment) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PaymentOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#Payment) **Threshold**: Medium **Result**: `PaymentResult` **Parameters**: @@ -76,7 +76,7 @@ A payment where the asset sent can be different than the asset received; allows Learn more about path payments: [Path Payments Guide](../../../build/guides/transactions/path-payments.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictSend) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictSendOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictSend) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictSend) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictSendOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#PathPaymentStrictSend) **Threshold**: Medium **Result**: `PathPaymentStrictSendResult` **Parameters**: @@ -112,7 +112,7 @@ A payment where the asset received can be different from the asset sent; allows Learn more about path payments: [Path Payments Guide](../../../build/guides/transactions/path-payments.mdx) -**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictReceive) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictReceiveOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictReceive) +**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictReceive) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictReceiveOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#PathPaymentStrictReceive) **Threshold**: Medium **Result**: `PathPaymentStrictReceiveResult` **Parameters**: @@ -148,7 +148,7 @@ Creates, updates, or deletes an offer to buy a specific amount of an asset for a Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageBuyOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageBuyOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageBuyOffer) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageBuyOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageBuyOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageBuyOffer) **Threshold**: Medium **Result**: `ManageBuyOfferResult` **Parameters**: @@ -182,7 +182,7 @@ Creates, updates, or deletes an offer to sell a specific amount of an asset for Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageSellOffer) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageSellOffer) **Threshold**: Medium **Result**: `ManageSellOfferResult` **Parameters**: @@ -216,7 +216,7 @@ Creates an offer to sell one asset for another without taking a reverse offer of Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.createPassiveSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreatePassiveSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#CreatePassiveSellOffer) +**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.createPassiveSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreatePassiveSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#CreatePassiveSellOffer) **Threshold**: Medium **Result**: `ManageSellOfferResult` **Parameters**: @@ -251,7 +251,7 @@ Learn more about flags: [Flags Section](../../../tokens/control-asset-access.mdx Learn more about the home domain: [Stellar Ecosystem Proposals SEP-0001](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md) Learn more about signers operations and key weight: [Signature and Multisignature Section](../../fundamentals/transactions/signatures-multisig.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.setOptions) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#SetOptions) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.setOptions) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#SetOptions) **Threshold**: High (when updating signers or other thresholds) or Medium (when updating everything else) **Result**: `SetOptionsResult` **Parameters**: @@ -288,7 +288,7 @@ Creates, updates, or deletes a trustline Learn more about trustlines: [Trustlines section](../stellar-data-structures/accounts.mdx#trustlines) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.changeTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ChangeTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ChangeTrust) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.changeTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ChangeTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ChangeTrust) **Threshold**: Medium **Result**: `ChangeTrustResult` **Parameters**: @@ -321,7 +321,7 @@ This operation is deprecated as of Protocol 17- prefer [_SetTrustlineFlags_](#se ::: -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.allowTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AllowTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#AllowTrust) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.allowTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AllowTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#AllowTrust) **Threshold**: Low **Result**: `AllowTrustResult` **Parameters**: @@ -347,7 +347,7 @@ This operation is deprecated as of Protocol 17- prefer [_SetTrustlineFlags_](#se Transfers the XLM balance of an account to another account and removes the source account from the ledger -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.accountMerge) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AccountMergeOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#AccountMerge) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.accountMerge) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AccountMergeOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#AccountMerge) **Threshold**: High **Result**: `AccountMergeResult` **Parameters**: @@ -374,7 +374,7 @@ Sets, modifies, or deletes a data entry (name/value pair) that is attached to an Learn more about entries and subentries: [Accounts section](../stellar-data-structures/accounts.mdx#subentries) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageData) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageDataOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageData) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageData) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageDataOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageData) **Threshold**: Medium **Result**: `ManageDataResult` **Parameters**: @@ -397,7 +397,7 @@ Learn more about entries and subentries: [Accounts section](../stellar-data-stru Bumps forward the sequence number of the source account to the given sequence number, invalidating any transaction with a smaller sequence number -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.bumpSequence) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/BumpSequenceOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#BumpSequence) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.bumpSequence) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/BumpSequenceOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#BumpSequence) **Threshold**: Low **Result**: `BumpSequenceResult` **Parameters**: @@ -547,7 +547,7 @@ Burns an amount in a specific asset from an account. Only the issuing account fo Learn more about clawbacks: [Clawback Guide](../../../build/guides/transactions/clawbacks.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.clawback) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ClawbackOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#Clawback) +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.clawback) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ClawbackOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#Clawback) **Threshold**: Medium **Result**: `ClawbackResult` **Parameters**: diff --git a/docs/learn/fundamentals/transactions/signatures-multisig.mdx b/docs/learn/fundamentals/transactions/signatures-multisig.mdx index bbafc4d5a0..0b1ba943e7 100644 --- a/docs/learn/fundamentals/transactions/signatures-multisig.mdx +++ b/docs/learn/fundamentals/transactions/signatures-multisig.mdx @@ -3,8 +3,6 @@ title: Signatures and Multisig sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - :::note This section details signing non-smart contract transactions. For auth related to smart contract transactions, see [authorization](../../fundamentals/contract-development/authorization.mdx).) diff --git a/docs/learn/glossary.mdx b/docs/learn/glossary.mdx index dfc000abef..107a6dabc5 100644 --- a/docs/learn/glossary.mdx +++ b/docs/learn/glossary.mdx @@ -83,6 +83,10 @@ An amount of asset from a trustline or claimable balance removed (clawed back) f See the [Clawback Guide](../build/guides/transactions/clawbacks.mdx) for more information. +### Contract account + +An account that is implemented as a smart contract, allowing the contract to define custom authorization logic and on-chain policy enforcement before authorization succeeds instead of relying on built-in protocol features. + ### Contract token Tokens created and managed through smart contracts. These assets are programmable and governed by on-chain logic instead of built-in protocol features. diff --git a/docs/learn/migrate/evm/solidity-support-via-solang.mdx b/docs/learn/migrate/evm/solidity-support-via-solang.mdx new file mode 100644 index 0000000000..db645d80fe --- /dev/null +++ b/docs/learn/migrate/evm/solidity-support-via-solang.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 4 +title: Solidity support via Solang +description: Compile Solidity contracts to Wasm for Stellar using the Solang compiler. +--- + +Leverage the Hyperledger Solang compiler to compile Solidity contracts to Soroban. + +- Learn about the Solidity SDK and links to Solang in Tools: [Contract SDKs](../../../tools/sdks/contract-sdks.mdx) +- Solang docs (Soroban target): https://solang.readthedocs.io/en/latest/targets/soroban.html +- Solang repository and examples: https://github.com/hyperledger/solang/tree/main/examples/soroban +- Solang Web IDE: https://solang.io/ + +:::caution + +Solidity support via Solang for Stellar is experimental and evolving. Not all Solidity features are supported yet, and breaking changes may occur. We Don't recommend using Solang for production contracts at this time. + +::: + +- The easiest way to use Solang is via the Web IDE, but you can also build Solang from source or use prebuilt binaries. +- For deployment and interaction, use the Stellar CLI and client SDKs after compiling your Wasm artifact. diff --git a/docs/networks/README.mdx b/docs/networks/README.mdx index 6900757301..c0190fa5b4 100644 --- a/docs/networks/README.mdx +++ b/docs/networks/README.mdx @@ -19,6 +19,7 @@ Stellar has three networks: the public network (Mainnet, also called Pubnet or t | --- | --- | --- | --- | | **Purpose** | Production network | Stable testing environment | Bleeding-edge feature testing | | **Network Passphrase** | `Public Global Stellar Network ; September 2015` | `Test SDF Network ; September 2015` | `Test SDF Future Network ; October 2022` | +| **Network ID** | 7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979 | cee0302d59844d32bdca915c8203dd44b33fbb7edc19051ea37abedf28ecd472 | a3a1c6a78286713e29be0e9785670fa838d13917cd8eaeb4a3579ff1debc7fd5 | | **Validator Nodes** | Run by the public | SDF runs three core validator nodes | SDF runs core validator nodes | | **Validator** | `core-live-a.stellar.org` `core-live-b.stellar.org` `core-live-c.stellar.org` | `core-live-testnet.stellar.org` | `core-live-futurenet.stellar.org` | | **Funding** | Real XLM required from another account | Free via Friendbot | Free via Friendbot | @@ -29,18 +30,19 @@ Stellar has three networks: the public network (Mainnet, also called Pubnet or t | **Network Resets** | Never | Regular cadence | As needed (unpredictable) | | **Friendbot Available** | No | Yes (10,000 XLM) | Yes (10,000 XLM) | | **Friendbot API** | N/A | `https://friendbot.stellar.org` | `https://friendbot-futurenet.stellar.org` | -| **History Archive** | `http://history.stellar.org/prd/core-live/core_live_001/`, `http://history.stellar.org/prd/core-live/core_live_002/`, `http://history.stellar.org/prd/core-live/core_live_003/` | `http://history.stellar.org/prd/core-testnet/core_testnet_001`, `http://history.stellar.org/prd/core-testnet/core_testnet_002`, `http://history.stellar.org/prd/core-testnet/core_testnet_003` ([more info](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_testnet.cfg)) | `http://history.stellar.org/dev/core-futurenet` | +| **History Archive** | `http://history.stellar.org/prd/core-live/core_live_001/`, `http://history.stellar.org/prd/core-live/core_live_002/`, `http://history.stellar.org/prd/core-live/core_live_003/` | `http://history.stellar.org/prd/core-testnet/core_testnet_001`, `http://history.stellar.org/prd/core-testnet/core_testnet_002`, `http://history.stellar.org/prd/core-testnet/core_testnet_003` ([more info](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_testnet.cfg)) | `http://history.stellar.org/dev/core-futurenet/core_futurenet_001/`, `http://history.stellar.org/dev/core-futurenet/core_futurenet_002/`, `http://history.stellar.org/dev/core-futurenet/core_futurenet_003/` | \*The precise amount can vary based on [resource limits](../learn/fundamentals/fees-resource-limits-metering.mdx#resource-limitations). See [Fees and Metering](../learn/fundamentals/fees-resource-limits-metering.mdx) for detailed smart contract network settings. ## Friendbot -Friendbot is a bot that funds accounts with fake XLM on Testnet or Futurenet. You can request XLM from Friendbot using the [Stellar Lab](../tools/lab/account.mdx#fund-account) or with various SDKs. +Friendbot is a bot that funds accounts and contracts with fake XLM on Testnet or Futurenet. You can request XLM from Friendbot using the [Stellar Lab](../tools/lab/account.mdx#fund-account) or with various SDKs. **Key details:** - Requests are rate limited, so use wisely - Provides 10,000 fake XLM when funding a new account +- Can fund both account addresses (G...) and contract addresses (C...) - For multiple accounts: fund your first account with Friendbot, then use that account to fund subsequent accounts using the Create Account operation ## Getting Started @@ -59,12 +61,12 @@ Futurenet resets are on a less regular cadence than Testnet resets and don't hav Testnet resets typically happen once per quarter at 17:00 UTC and are announced at least two weeks in advance on the [Stellar Dashboard](http://dashboard.stellar.org/) and through several developer community channels. -Here are the scheduled 2025 dates: +Here are the scheduled 2026 dates: -- March 19, 2025 -- June 18, 2025 -- August 14, 2025 -- December 17, 2025 +- March 18, 2026 +- June 17, 2026 +- September 16, 2026 +- December 16, 2026 If you run a Testnet or Futurenet Horizon instance, you need to re-join and re-sync to the network after a reset. Check out how to do that here: [Testnet Reset](https://github.com/stellar/packages/blob/master/docs/testnet-reset.md). @@ -87,7 +89,7 @@ A script can automate this entire process by creating an account with Friendbot Stellar’s Mainnet, Testnet, and Futurenet each have their own unique passphrase. These are used when validating signatures on a given transaction. If you sign a transaction for one network but submit it to another, it won’t be considered valid. By convention, the format of a passphrase is ‘`[Network Name] ; [Month of Creation] [Year of Creation]`’. -The current passphrases for the Stellar Mainnet, Testnet, and Futurenet are: +The passphrases for the Stellar Mainnet, Testnet, and Futurenet are: - Mainnet: '`Public Global Stellar Network ; September 2015`' - Testnet: '`Test SDF Network ; September 2015`' @@ -97,6 +99,18 @@ Passphrases serve two main purposes: (1) used as the seed for the root account ( Many SDKs have the passphrases hardcoded for Stellar's networks. If you’re running a private network, you’ll have to manually pass in a passphrase to be used whenever transaction hashes are generated. All of Stellar’s official SDKs allow you to use a network with a custom passphrase. +## Network IDs + +Each Stellar network also has a network ID, which is the SHA-256 hash of the network passphrase. The network ID is used in transaction signing and contract address generation and ensures that hashes and IDs generated are different on each network. + +The IDs for the Stellar Mainnet, Testnet, and Futurenet are: + +| Network | Network ID | +| --- | --- | +| Mainnet | `7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979` | +| Testnet | `cee0302d59844d32bdca915c8203dd44b33fbb7edc19051ea37abedf28ecd472` | +| Futurenet | `a3a1c6a78286713e29be0e9785670fa838d13917cd8eaeb4a3579ff1debc7fd5` | + ## What Testnet and Futurenet should and should not be used for ### Testnet and Futurenet are good for @@ -119,13 +133,7 @@ Many SDKs have the passphrases hardcoded for Stellar's networks. If you’re run Mainnet, Testnet, and Futurenet each have their own unique passphrase, which is used to validate signatures on a given transaction. -The current passphrases for the Stellar Mainnet, Testnet, and Futurenet are: - -**Mainnet (Pubnet)**: `Public Global Stellar Network ; September 2015` - -**Testnet**: `Test SDF Network ; September 2015` - -**Futurenet**: `Test SDF Future Network ; October 2022` +See above sections for the network passphrase for each network. For applications that don’t rely on the state of the network (such as specific accounts needing to exist), you move to production by changing the network passphrase and ensuring your Horizon instance is connected to Mainnet. diff --git a/docs/networks/resource-limits-fees.mdx b/docs/networks/resource-limits-fees.mdx index 6e0eb26cff..0e3e564e03 100644 --- a/docs/networks/resource-limits-fees.mdx +++ b/docs/networks/resource-limits-fees.mdx @@ -3,6 +3,12 @@ sidebar_position: 30 title: Resource Limits & Fees --- +:::info + +The values below are for reference. For current resource limits and fees on the live network, see Stellar Lab's [Network Limits](https://lab.stellar.org/network-limits) page. + +::: + ## Resource Limits :::note diff --git a/docs/networks/software-versions.mdx b/docs/networks/software-versions.mdx index 767bf67448..e10cefb7d0 100644 --- a/docs/networks/software-versions.mdx +++ b/docs/networks/software-versions.mdx @@ -12,6 +12,76 @@ Release candidates are software releases that are also released to the [Testnet] [testnet]: ./README.mdx +## Protocol 25 (Mainnet, January 22, 2026) + +### Software + +| Software | Version | +| --- | --- | +| XDR | `v25.0` | +| Rust XDR | `25.0.0` | +| Smart Contract Host Environment | `25.0.0` | +| Stellar Core | `25.0.0` | +| Smart Contract Rust SDK | `25.0.0` | +| Poseidon Rust SDK | `25.0.0-rc.1` | +| Stellar CLI | `25.0.0` | +| Stellar RPC | `v25.0.0` | +| Stellar Horizon | `v25.0.0` | +| Stellar Galexie | `v25.1.0` | +| Stellar Quickstart | `docker pull stellar/quickstart` | +| Stellar JS Stellar Base | `v14.0.4` | +| Stellar JS Stellar SDK | `v14.4.3` | +| Stellar Horizon Client & TxnBuild | `v24.0.0` | +| Stellar RPC Client | `v25.0.0` | +| Freighter | | +| Laboratory | `N/A` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | +| Mainnet Network Passphrase | `Public Global Stellar Network ; September 2015` | + +### Release notes + +New features in X-Ray, Protocol 25: + +- [Release Notes](https://github.com/stellar/stellar-core/releases/tag/v25.0.0) +- BN254 Elliptic Curve Operations: [CAP-79](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0079.md) +- Poseidon/Poseidon2 Hash Functions: [CAP-75](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0075.md) + +## Protocol 25 (Testnet, January 7, 2026) + +### Software + +| Software | Version | +| --- | --- | +| XDR | `v25.0` | +| Rust XDR | `25.0.0` | +| Smart Contract Host Environment | `25.0.0` | +| Stellar Core | `25.0.0` | +| Smart Contract Rust SDK | `25.0.0` | +| Poseidon Rust SDK | `25.0.0-rc.1` | +| Stellar CLI | `25.0.0` | +| Stellar RPC | `v25.0.0` | +| Stellar Horizon | `v25.0.0` | +| Stellar Galexie | `v25.1.0` | +| Stellar Quickstart | `docker pull stellar/quickstart` | +| Stellar JS Stellar Base | `v14.0.4` | +| Stellar JS Stellar SDK | `v14.4.3` | +| Stellar Horizon Client & TxnBuild | `v24.0.0` | +| Stellar RPC Client | `v25.0.0` | +| Freighter | | +| Laboratory | `N/A` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | +| Mainnet Network Passphrase | `Public Global Stellar Network ; September 2015` | + +### Release notes + +New features in X-Ray, Protocol 25: + +- [Release Notes](https://github.com/stellar/stellar-core/releases/tag/v25.0.0) +- BN254 Elliptic Curve Operations: [CAP-79](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0079.md) +- Poseidon/Poseidon2 Hash Functions: [CAP-75](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0075.md) + ## Protocol 24 (Mainnet, October 22, 2025) ### Software diff --git a/docs/platforms/README.mdx b/docs/platforms/README.mdx new file mode 100644 index 0000000000..a63c598599 --- /dev/null +++ b/docs/platforms/README.mdx @@ -0,0 +1,15 @@ +# SDF Platforms + +SDF has open-sourced some "platforms" that make it easier to accomplish certain things on the network. + +## Anchor Platform + +The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. + +[Learn more about the Anchor Platform API here!](./anchor-platform/README.mdx) + +## Stellar Disbursement Platform + +The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. + +[Learn more about the Stellar Disbursement Platform API here!](./stellar-disbursement-platform/README.mdx) diff --git a/docs/platforms/anchor-platform/CONTRIBUTING.md b/docs/platforms/anchor-platform/CONTRIBUTING.md new file mode 100644 index 0000000000..bf1c8dd94b --- /dev/null +++ b/docs/platforms/anchor-platform/CONTRIBUTING.md @@ -0,0 +1,362 @@ +--- +draft: true +--- + +# Welcome to Anchor Platform Madness + +Hello, and welcome to the newly versioned home of the Anchor Platform +documentation! + +We're super glad to have you here, and hopefully this document will help you +understand how (and more importantly _where_) to make the needed changes to our +documentation. Let's start off with a bit of Docusaurus vocabulary, shall we? + +## NOTICE! AP HAS BEEN DE-VERSIONED + +The Anchor Platform documentation has been de-versioned, and we're only keeping +a "current" version of the docs from now on. So, anything in this page that +references creating a new version, updating old versions, etc. can be +disregarded. + +~~However, the Anchor Platform docs _still_ remain in their own docusaurus +instance. So, information here about linking between/across instances is still +relevant. (This will not be the case forever, but for now, it is.)~~ + +It's no longer a separate plugin instance!! I'll update this doc soon, but for +now the finer points of linking can be summed up with: + +- almost always `[use a](../../relative/link.mdx)` with the file extension, + unless you're linking to/from a meeting notes document. + +## TL;DR + +- For _unreleased_ versions of Anchor Platform: + - Add and edit docs in `/platforms/anchor-platform` + - Update and regenerate API docs in `/openapi/anchor-platform/main-*.yaml` +- For _released_ versions of Anchor Platform: + - Update and change docs in `/ap_versioned_docs` + - Update and regenerate API docs in `/openapi/anchor-platform/versions/*.yaml` + +Release a **new version** using the following yarn script: + +```bash +# replace `3.0.0` with the needed version +VERSION=3.0.0 yarn ap:versions:new +``` + +> _Note:_ I think the above yarn command is currently incompatible with Windows, +> though I could be wrong. + +Regenerate API docs for **already released** versions using the following yarn +script. This regenerates API docs for **all** the released versions, so you may +want to be judicious about which files you add to your commit. + +```bash +yarn ap:versions:regen +``` + +## Table of Contents + +- [NOTICE! AP HAS BEEN DE-VERSIONED](#notice-ap-has-been-de-versioned) +- [TL;DR](#tldr) +- [More About Docusaurus than You Ever Wanted to Know](#more-about-docusaurus-than-you-ever-wanted-to-know) + - [Versions Nomenclature](#versions-nomenclature) + - [Plugins](#plugins) + - [Instances](#instances) + - [Links](#links) + - [Examples](#examples) +- [Directories to Know](#directories-to-know) + - [Directories You Already Know About](#directories-you-already-know-about) + - [New Shiny Directories](#new-shiny-directories) +- [Making New Versions](#making-new-versions) + - [Use Docusaurus to "Tag" a New Release](#use-docusaurus-to-tag-a-new-release) + - [Configure the OpenAPI plugin](#configure-the-openapi-plugin) + - [Copy the (bundled) OpenAPI Specfiles to the Versioned Directory](#copy-the-bundled-openapi-specfiles-to-the-versioned-directory) + - [Add Configuration to the OpenAPI Plugin Instance](#add-configuration-to-the-openapi-plugin-instance) +- [Updating Old Versions](#updating-old-versions) + - [Update Documentation Pages](#update-documentation-pages) + - [Update API Specification](#update-api-specification) + +## More About Docusaurus than You Ever Wanted to Know + +I know it can feel a bit mysterious, but here's some knowledge and context to +help your understanding of what's ahead. + +### Versions Nomenclature + +This is how Docusaurus defines these terms, so that's what I'll use in this +document, as well. + +- The **current version** refers to the version of the AP docs contained in the + `/platforms/anchor-platform` directory. This set of docs is available at the + `/platforms/anchor-platform/next` URL. This is the "under construction" set of + docs. + +- The **latest version** refers to the the most recently "released" set of AP + docs. These are located in `/ap_versioned_docs` (more on that later), and is + available at the `/platforms/anchor-platform` URL. This is the "stable" set of + docs. + +### Plugins + +There are two Docusaurus plugins at play here: + +1. `@docusaurus/plugin-content-docs` is the workhorse of Docusaurus. It handles + markdown rendering, routing, etc. When you think of updating `some-file.mdx`, + this is the plugin you're using. +2. `docusaurus-plugin-openapi-docs` is the plugin that is used to generate MDX + pages from the OpenAPI specfiles. This plugin is capable of versioning on its + own some some care and consideration must be taken in regards to its + configuration. + +Both of these plugin configurations have been broken out into a +`/config/anchorPlatform.config.ts` file, to ease management of them and +de-clutter somewhat the main `docusaurus.config.ts` file. + +### Instances + +This is where it gets a bit more "in the weeds," but I promise this part is +helpful to know. Both of the [plugins](#plugins) I mentioned above are really +just _instances_ of those two plugins. In fact each of those plugins is used +elsewhere in our docs site for Horizon, SDP, and just "regular" docs. It's not +_generally_ important to consider different plugin instances, but it _is_ +**quite relevant** when we discuss links. So... + +### Links + +> [!WARNING] +> +> This section is outdated. Mostly ignore it for the time-being. + +Most often, **especially in versioned docs**, it's important to +[link to other docs by _relative_ file paths](https://docusaurus.io/docs/versioning#link-docs-by-file-paths). +This lets Docusaurus rewrite URLs when necessary at build-time. + +However, there's a **BIG EXCEPTION**! Docusaurus can only handle these links +when the source and target files are both process by the same _plugin instance_. +So, in practical terms: + +- If you are linking from **and** to MDX documents _within_ the same docs plugin + instance, use _relative file_ paths. +- If you are linking _across_ plugin instances, you **must** use _URL paths_. By + convention, we use _absolute_ paths for this, too, to make it a little more + obvious when this behavior is taking place. + +#### Examples + +This should help to make it a bit clearer. + +- I want to link _from_ the MDX document + `/platforms/anchor-platform/sep-guide/sep6/configuration.mdx` _to_ the MDX + document + `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: + - We're in the same `/platforms/anchor-platform` plugin instance + - Use a **relative file** path + - Link to it + `[something like this](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` +- I want to link _from_ the MDX document `/docs/learn/fundamentals/anchors.mdx` + _to_ the MDX document + `/platforms/anchor-platform/admin-guide/getting-started.mdx` + - We're "crossing" between the `/docs` and `/platforms/anchor-platform` plugin + instances + - Use an **absolute URL** path + - Link to it + `[something like this](/platforms/anchor-platform/admin-guide/getting-started)` + (note that there is no `.mdx` extension) +- I want to link _from_ the MDX document `/platforms/anchor-platform/README.mdx` + _to_ the MDX document `/docs/tools/developer-tools/wallets.mdx` + - We're "crossing" between the `/platforms/anchor-platform` and `/docs` plugin + instances + - Use an **absolute URL** path + - Link to it `[something like this](/docs/tools/developer-tools/wallets)` + (note that there is no `.mdx` extension) +- Wildcard! I want to link _from_ the MDX document + `/platforms/anchor-platform/admin-guide/events/configuration.mdx` _to_ the MDX + document + `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` + - We're "crossing" between the `/platforms/anchor-platform` and + `/platforms/stellar-disbursement-platform` plugin instances + - Use an **absolute URL** path + - Link to it + `[something like this](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` + (note that there is no `.mdx` extension) + +> _Note:_ Replace the `/platforms/anchor-platform` plugin instance with the +> `/platforms/stellar-disbursement-platform` plugin instance in the above +> examples, and it all works pretty much identically. + +Read more about links [here](https://docusaurus.io/docs/markdown-features/links) +(especially toward the bottom of the page). + +## Directories to Know + +There are a few directories that _all_ feed into the end product that is our +versioned AP documentation. + +### Directories You Already Know About + +- `/platforms/anchor-platform` This is where you are now, and traditionally has + been the place to modify any of the markdown content that becomes our AP docs + pages. Not much has changed here, except it does require a shift in mindset. + **All the documentation and content located here should now be considered the + `current` (under construction) version of AP docs.** So, as we're building for + `v3.x` (and beyond, eventually), you'll want to be updating _content here_. + Readers will still be able to _view_ this content before it's "released," but + they'll be told it's the unreleased version. + + There is also a new directory here you should know about: + - `/platforms/anchor-platform/assets` Since it's likely that the various + images, diagrams, etc. will need to update/change from one version to + another, we're co-locating the relevant assets in this directory. This + allows them to be versioned as well. If you want to update a diagram or + image for an upcoming release, you should do so here. + +- `/openapi/anchor-platform` This is the same place you're probably already + familiar with. The files have recently been renamed, but for the most part you + want to modify `main-{platform,callbacks,custody}.yaml`, which will then be + "bundled up" later into the bundled file that contains everything in one file. + **The files in this directory should also be considered the `current` (under + construction) version of AP specification docs.** So, as we're building for + `v3.x` (and beyond, eventually), you'll want to be updating _specfiles here_. + + There is also a new directory here you should know about: + - `/openapi/anchor-platform/versions` This directory stores a copy of the + _bundled_ specfiles for each version that is released. The plugin we use to + generate the API documentation for these specfiles gets configured to use + _these_ versioned specifications for all non-`current` documentation. + +- `/openrpc/src/anchor-platform` Recently, we moved the RPC specification into + this directory so it can benefit from the same build processes and validation + checks as the `stellar-rpc` specification. Similar to the other directories + covered so far, any changes to these files should be considered to be on the + `current` (under construction) version of the documentation. There's not + (yet?) a great deal of tooling or ergonomics around updating the "old" + versions of these specifications. The `current` version of the spec is + generated at + `/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json`. + This means it _does_ get included in the versioning process, so any changes to + "old" versions will likely just need to be made in those versioned specfiles + for now (more on that in the next section). + +### New Shiny Directories + +- `/ap_versioned_sidebars` We can pretty well breeze right past this one. When + you make a new version of the docs, Docusaurus stores a copy of the sidebar at + that point in time. You shouldn't really need to bother yourself with anything + in here. + +- `/ap_versioned_docs` This is where the "released" sets of the AP docs live. + Each time a version is released, _everything_ from within the + `/platforms/anchor-platform` directory gets copied into a subdirectory here. + You'll notice we already have a version `v2.8.4` here. As we release `v3.x`, a + _new_ copy of the files will be placed here. The `latest` (stable) copy of AP + docs are drawn from within this directory. If you come across something to fix + or update in a released version of the docs, you'll need to update accordingly + here. + +## Making New Versions + +As noted in the [TL;DR](#tldr), this process is automated with the +`VERSION=3.0.0 yarn ap:versions:new` script. However, here's what's happening +under the hood of that script. + +### Use Docusaurus to "Tag" a New Release + +It's actually pretty simple! Use the Docusaurus CLI to make a new release: + +```bash +# `ap` is the ID of the AP `@docusaurus/plugin-content-docs` plugin instance +yarn docusaurus docs:version:ap 3.0.0 +``` + +That makes a new copy of the docs in `/ap_versioned_docs`, and it will pretty +well "work" to get the new version displayed on the site. Any future changes to +the 3.0.0 version of the docs should be made within the `/ap_versioned_docs` +directory. + +### Configure the OpenAPI plugin + +We'll also want to be able to modify/update/re-generate the API documentation if +the need arises. So, we'll need to configure that +`docusaurus-plugin-openapi-docs` plugin instance accordingly. + +#### Copy the (bundled) OpenAPI Specfiles to the Versioned Directory + +At the moment, it's just as simple as copying the files: + +```bash +cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-3.0.0.yaml +cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-3.0.0.yaml +cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-3.0.0.yaml +``` + +> Notice how we're copying the _bundled_ file, not the _main_ file. This makes +> sure the versioned file contains everything it needs. + +#### Add Configuration to the OpenAPI Plugin Instance + +> _Note_: These `versions` parts of the configuration are now generated +> dynamically, using a `makeVersions()` function, so these manual config steps +> shouldn't need to be done. You _may_ want to advance/adjust the +> `anchorPlatformNextVersion` string in the config file, when you release a new +> version of docs, though. + +In order to be able to use the plugin's CLI to update already-released versions, +we have to update the configuration in `/config/anchorPlatform.config.ts`. Make +a new entry in each of the specfiles' `versions` object, and copy the formatting +of the entries already there. For reference, here's what it currently looks like +for the "platform server" in `v2.8.4`: + +```typescript +ap_platform: { + specPath: "openapi/anchor-platform/bundled-platform.yaml", + outputDir: "platforms/anchor-platform/api-reference/platform/transactions", + hideSendButton: true, + template: "src/template.mustache", + version: "3.0.0", + label: "v3.0.0", + baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', + versions: { + "2.8.4": { + specPath: "openapi/anchor-platform/versions/platform-2.8.4.yaml", + outputDir: "ap_versioned_docs/version-2.8.4/api-reference/platform/transactions", + label: "v2.8.4", + baseUrl: "/platforms/anchor-platform/api-reference/platform/transactions" + } + } +} +``` + +## Updating Old Versions + +### Update Documentation Pages + +Let's say I find a misspelling in the `v2.8.4` Admin Guide documentation. Find +the relevant file in the `/ap_versioned_docs/version-2.8.4` directory, fix it +and commit. Content updates are pretty easy here. + +> _Note_ Since the RPC specification is treated similar to the MDX docs, use the +> same process to make updates to the RPC specfile. For `v2.8.4`, it's located +> here: +> `/ap_versioned_docs/version-2.8.4/api-reference/platform/rpc/anchor-platform.openrpc.json` + +### Update API Specification + +This is a little more involved, but not much. Find and change the relevant +part(s) of the +`/openapi/anchor-platform/versions/{platform, callbacks,custody}-2.8.4.yaml` +specfile. + +Then, regenerate the MDX pages: + +```bash +# `ap-apis` is the ID of the AP `docusaurus-plugin-openapi-docs` plugin instance +yarn docusaurus gen-api-docs:version -p ap-apis:2.8.4 +``` + +> _Note:_ You can use a yarn script to automatically regenerate API docs for +> **all** released versions: `yarn ap:versions:regen`. This does indeed +> regenerate all versions, so you may want to be choosy about which files you +> add to the commit. + +Commit the changes, and you're off to the races. diff --git a/docs/platforms/anchor-platform/README.mdx b/docs/platforms/anchor-platform/README.mdx new file mode 100644 index 0000000000..61e4649b8c --- /dev/null +++ b/docs/platforms/anchor-platform/README.mdx @@ -0,0 +1,55 @@ +--- +title: "The Anchor Platform: Build and Manage On/Off-Ramps on the Stellar Network" +sidebar_position: 10 +sidebar_label: Product Overview +description: "Learn how the Anchor Platform (AP) simplifies the process of building and managing a Stellar on and off-ramp. Learn about integrating with the AP or get API information." +--- + +# Anchor Platform + +The Anchor Platform provides a set of tools and APIs for building on and off-ramp services on the Stellar network. With standardized interfaces and full implementations of key Stellar Ecosystem Proposals (SEPs), it simplifies integration with Stellar-based wallets and exchanges, enabling you to focus on your core business logic rather than protocol implementation details. + +## Supported SEPs + +The Anchor Platform implements the following Stellar Ecosystem Proposals: + +- **[SEP-1](sep-guide/sep1/README.mdx)** — Stellar.toml file serving for service discovery +- **[SEP-6](sep-guide/sep6/README.mdx)** — Deposit and withdrawal operations +- **[SEP-10](sep-guide/sep10/README.mdx)** — Web authentication using challenge/response transactions +- **SEP-12** — Customer KYC/AML data management +- **[SEP-24](sep-guide/sep24/README.mdx)** — Interactive deposit and withdrawal flows +- **[SEP-31](sep-guide/sep31/integration.mdx)** — Cross-border payment processing (receive only) +- **SEP-38** — Price quotes and exchange rate services +- **[SEP-45](sep-guide/sep45/README.mdx)** — Web authentication using challenge/responses for contract accounts + +## Key Features + +- **Complete SEP implementations** — Full support for deposit, withdrawal, and payment processing workflows +- **Authentication & authorization** — SEP-10 and SEP-45 support for both traditional and smart contract accounts +- **Customer management** — SEP-12 integration for KYC/AML compliance and customer data handling +- **Transaction processing** — Comprehensive transaction lifecycle management with status tracking and webhook callbacks +- **Quote & exchange services** — SEP-38 integration for price discovery and exchange rate calculations +- **Multi-asset support** — Flexible configuration for multiple assets with various deposit and withdrawal methods +- **Smart contract support** — Native support for Stellar contract accounts (C-accounts) via SEP-45 + +## Documentation Links + +- **[Architecture](./admin-guide/architecture.mdx)** — System architecture and component overview +- **[Getting Started](./admin-guide/getting-started.mdx)** — Initial setup and deployment instructions +- **[Event Handling](./admin-guide/events/README.mdx)** — Event delivery, webhooks, and integration patterns +- **[SEP Guides](./sep-guide/README.mdx)** — Implementation guides for Stellar Ecosystem Proposals +- **[API Reference](./api-reference/README.mdx)** — Complete API documentation and reference + +## Additional Resources + +The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository](https://github.com/stellar/java-stellar-anchor-sdk). + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md +[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk diff --git a/ap_versioned_docs/version-2.10/admin-guide/README.mdx b/docs/platforms/anchor-platform/admin-guide/README.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/README.mdx rename to docs/platforms/anchor-platform/admin-guide/README.mdx diff --git a/docs/platforms/anchor-platform/admin-guide/_category_.json b/docs/platforms/anchor-platform/admin-guide/_category_.json new file mode 100644 index 0000000000..1d4401ab2f --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Admin Guide", + "collapsed": false +} + diff --git a/docs/platforms/anchor-platform/admin-guide/architecture.mdx b/docs/platforms/anchor-platform/admin-guide/architecture.mdx new file mode 100644 index 0000000000..47f604d648 --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/architecture.mdx @@ -0,0 +1,71 @@ +--- +title: "Architecture" +sidebar_position: 20 +--- + +## Architecture + +Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. + +### Fundamental Architecture + +The following architectural components are required for all deployments of the Anchor Platform. + +
+ +![fundamental anchor platform architecture](/assets/ap/anchor-platform-architecture-1.png) + +
+ +#### Client + +The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). + +#### SEP Server + +The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. + +:::note + +The SEP server will never store any sensitive information, such as KYC (PII), in the database. + +::: + +#### Business Server + +The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. + +#### Platform Server + +The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. + +#### Database + +The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. + +#### Kafka + +Kafka is used as the messaging backbone for the Anchor Platform, facilitating communication and event-driven interactions between different components. It allows components like the SEP server, business server, and event service to publish and subscribe to transaction and payment events in a reliable and scalable manner. + +### Complete Architecture + +In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. + +
+ [![complete anchor platform + architecture](/assets/ap/anchor-platform-architecture-2.png)](/assets/ap/anchor-platform-architecture-2.png) +
+#### Event Service + +The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. + +#### Payment Observer + +The Payment Observer monitors the Stellar blockchain using Stellar RPC or Horizon, automatically detects payments related to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. + +If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. + +[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md +[platform-api]: ../api-reference/platform/transactions/README.mdx +[callback-api]: ../api-reference/callbacks/README.mdx +[events]: ./events/README.mdx diff --git a/docs/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx b/docs/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx new file mode 100644 index 0000000000..a7b263fa2e --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx @@ -0,0 +1,117 @@ +--- +title: "Assets and Wallet Clients" +sidebar_position: 40 +--- + +# Assets and Wallet Clients + +This guide covers how to configure assets and wallet clients in the Anchor Platform. + +## Assets Configuration + +Assets define the tokens and currencies that your Anchor Platform supports for deposits and withdrawals. In the "Getting Started" guide, assets are configured in the `config/assets.yaml` file by the `ap_start.sh`. + +For the complete list of fields and defaults, see the [asset configuration reference](https://github.com/stellar/anchor-platform/blob/develop/core/src/main/resources/config/anchor-asset-default-values.yaml). + +### Example Asset Configuration + +```yaml +items: + - id: stellar:native + distribution_account: "G...DIST" + significant_decimals: 7 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + sep24: + enabled: true + sep31: + enabled: true + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD +``` + +### Field Explanations + +- **`id`** (Required) - The asset identifier in the format `SCHEMA:CODE:(ISSUER)` or `stellar:native` representing XLM, the native Stellar asset. For example, `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` represents Circle USD. For fiat currencies, use `iso4217:CODE` (e.g., `iso4217:USD`, `iso4217:CAD`). + +- **`distribution_account`** - The Stellar account address that holds the asset for distribution. Not needed for fiat assets (`iso4217`). + +- **`significant_decimals`** - The number of decimal places the asset supports. + +- **`sep6`** - Enables SEP-6 and configures deposit/withdraw limits and methods per asset. + +- **`sep24`** - Enables SEP-24 interactive flows and their per-asset settings. + +- **`sep31`** - Enables SEP-31 cross-border payment support for the asset. + +- **`sep38`** - Enables SEP-38 quotes and `exchangeable_assets` for supported currency pairs. + +## Wallet Clients Configuration + +Wallet clients are the wallet apps that connect to your Anchor Platform to perform transactions on behalf of users. + +For the full list of client fields and defaults, see the [client configuration reference](https://github.com/stellar/anchor-platform/blob/main/platform/src/main/resources/config/anchor-client-default-values.yaml). + +### Example Client Configuration + +```yaml +items: + - name: "referenceCustodial" + type: custodial + signing_keys: + - GDJLB...KLTG + callback_urls: + sep6: https://client.example.com/callbacks/sep6 + sep24: https://client.example.com/callbacks/sep24 + sep31: https://client.example.com/callbacks/sep31 + sep12: https://client.example.com/callbacks/sep12 + - name: "reference" + type: noncustodial + domains: + - wallet-server:8092 + - client.example.com + callback_urls: + ... +``` + +### Field Explanations + +**Custodial Client Configuration:** + +- **`name`** (Required) - A unique identifier for the client. + +- **`type: custodial`** (Required) - The type of the client. Must be set to `custodial` for custodial clients. + +- **`signing_keys`** (Required) - A list of Stellar public keys used for client SEP-10 authentication. The anchor uses these keys to verify that requests are coming from the authorized client. + +- **`callback_urls`** (Optional) - URLs to which the service can send callbacks for different SEP types. + - **`sep6`** - Callback URL for SEP-6 (deposit/withdrawal) transaction status updates + - **`sep24`** - Callback URL for SEP-24 (interactive deposit/withdrawal) transaction status updates + - **`sep31`** - Callback URL for SEP-31 (cross-border payments) transaction status updates + - **`sep12`** - Callback URL for SEP-12 (KYC) customer information updates + +**Noncustodial Client Configuration:** + +- **`name`** (Required) - A unique identifier for the client, similar to custodial clients. Typically a name that clearly represents the client entity. + +- **`type: noncustodial`** (Required) - The type of the client. Must be set to `noncustodial` for noncustodial clients. Noncustodial clients allow users to control their own private keys, and the wallet acts as an interface to user-controlled accounts. + +- **`domains`** (Required) - A list of domains associated with the client, used to verify the client's identity. + +- **`callback_urls`** (Optional) - URLs to which the service can send callbacks for different SEP types. Works the same way as for custodial clients (see above). diff --git a/docs/platforms/anchor-platform/admin-guide/component/observer/observer.mdx b/docs/platforms/anchor-platform/admin-guide/component/observer/observer.mdx new file mode 100644 index 0000000000..338edf702c --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/component/observer/observer.mdx @@ -0,0 +1,28 @@ +Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). + +The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). + +In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. + + + +```bash +# dev.env +PLATFORM_API_BASE_URL=http://platform-server:8085 +``` + + + +:::caution + +The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. + +::: + +:::info + +If you already have a system that monitors payments, make sure that the logic of the system matches the description below: + +First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. + +::: diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/rpc/error.mdx b/docs/platforms/anchor-platform/admin-guide/component/rpc/error.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/component/rpc/error.mdx rename to docs/platforms/anchor-platform/admin-guide/component/rpc/error.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/rpc/request.mdx b/docs/platforms/anchor-platform/admin-guide/component/rpc/request.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/component/rpc/request.mdx rename to docs/platforms/anchor-platform/admin-guide/component/rpc/request.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/rpc/response.mdx b/docs/platforms/anchor-platform/admin-guide/component/rpc/response.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/component/rpc/response.mdx rename to docs/platforms/anchor-platform/admin-guide/component/rpc/response.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/rpc/rpc.mdx b/docs/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/component/rpc/rpc.mdx rename to docs/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/security/api_key.mdx b/docs/platforms/anchor-platform/admin-guide/component/security/api_key.mdx similarity index 100% rename from ap_versioned_docs/version-3.0/admin-guide/component/security/api_key.mdx rename to docs/platforms/anchor-platform/admin-guide/component/security/api_key.mdx diff --git a/ap_versioned_docs/version-3.0/admin-guide/component/security/jwt.mdx b/docs/platforms/anchor-platform/admin-guide/component/security/jwt.mdx similarity index 100% rename from ap_versioned_docs/version-3.0/admin-guide/component/security/jwt.mdx rename to docs/platforms/anchor-platform/admin-guide/component/security/jwt.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/component/security/security.mdx b/docs/platforms/anchor-platform/admin-guide/component/security/security.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/component/security/security.mdx rename to docs/platforms/anchor-platform/admin-guide/component/security/security.mdx diff --git a/docs/platforms/anchor-platform/admin-guide/events/README.mdx b/docs/platforms/anchor-platform/admin-guide/events/README.mdx new file mode 100644 index 0000000000..fe2e9c1691 --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/events/README.mdx @@ -0,0 +1,10 @@ +--- +title: Event Handling +sidebar_position: 120 +--- + +import DocCardList from "@theme/DocCardList"; + +Receive transaction updates through HTTP webhook events. + + diff --git a/ap_versioned_docs/version-2.10/admin-guide/events/delivery.mdx b/docs/platforms/anchor-platform/admin-guide/events/delivery.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/events/delivery.mdx rename to docs/platforms/anchor-platform/admin-guide/events/delivery.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/events/getting-started.mdx b/docs/platforms/anchor-platform/admin-guide/events/getting-started.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/events/getting-started.mdx rename to docs/platforms/anchor-platform/admin-guide/events/getting-started.mdx diff --git a/docs/platforms/anchor-platform/admin-guide/events/integration.mdx b/docs/platforms/anchor-platform/admin-guide/events/integration.mdx new file mode 100644 index 0000000000..8b9f7527f4 --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/events/integration.mdx @@ -0,0 +1,161 @@ +--- +title: "Integration" +sidebar_position: 20 +--- + +This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. + +It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. + +## Requirements + +Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. + +## Configuration + +First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: + + + +```bash +# dev.env +EVENTS_ENABLED=true +EVENTS_QUEUE_TYPE=kafka +EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 +``` + +```yaml +# dev.services.yaml +events: + enabled: true + queue: + type: kafka + kafka: + bootstrap_server: localhost:9092 +``` + + + +Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). + +Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. + + + +```bash +# dev.env +EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true +EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true +``` + +```yaml +# dev.services.yaml +event_processor: + client_status_callback: + enabled: true + callback_api_request: + enabled: true +``` + + + +This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. + +## Receiving Events + +The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. + +### As a Client Application + +Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. + +To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. + +Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. + +#### Callback Signing + +Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. + +- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) +- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) +- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) +- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) + +### As a Business Server + +In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. + +To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. + +#### Configuration + +The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. + +The following is an example of how to configure the event service's callback API with JWT authentication: + + + +```bash +# dev.env + +# note `/callback` will not be used for event callbacks +# instead events will be sent to `http://localhost:8081/event` +# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path +CALLBACK_API_BASE_URL=http://localhost:8081/callback +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" +``` + +```yaml +# dev.services.yaml +callback_api: + base_url: http://localhost:8081/callback + auth: + type: jwt + jwt: + expiration_milliseconds: 30000 + http_header: Authorization +``` + + + +The following is an example of how to configure the event service's callback API with API key authentication: + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://localhost:8081/callback +CALLBACK_API_AUTH_TYPE=api_key +CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key +SECRET_CALLBACK_API_AUTH_SECRET="your API key" +``` + +```yaml +# dev.services.yaml +callback_api: + base_url: http://localhost:8081/callback + auth: + type: api_key + api_key: + http_header: X-Api-Key +``` + + + +This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: + +- `base_url`: The base URL of the business server's callback endpoint. +- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. +- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: + - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: + - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. + - `http_header`: The header in which the JWT will be sent. + - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: + - `http_header`: The header in which the API key will be sent. + +[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[clients-config]: ../../sep-guide/sep10/README.mdx#config-with-client-attribution diff --git a/docs/platforms/anchor-platform/admin-guide/getting-started.mdx b/docs/platforms/anchor-platform/admin-guide/getting-started.mdx new file mode 100644 index 0000000000..b2f310c358 --- /dev/null +++ b/docs/platforms/anchor-platform/admin-guide/getting-started.mdx @@ -0,0 +1,139 @@ +--- +title: "Getting Started" +sidebar_position: 30 +--- + +# Getting Started + +This guide will help you quickly get the Anchor Platform (TESTNET only) with a business reference running locally using Docker Compose. + +Please note that this is not meant to be run in production. + +## Prerequisites + +- [Docker](https://www.docker.com/get-started) and Docker Compose installed +- [Stellar CLI](https://github.com/stellar/stellar-cli) installed + +## Quick Start + +### 1. Clone the Anchor Platform repository + +```bash +git clone https://github.com/stellar/anchor-platform +``` + +### 2. Navigate to the quick-run directory + +```bash +cd anchor-platform/quick-run +``` + +### 3. Start all services + +```bash +./ap_start.sh +``` + +### 4. Verify the platform is running + +Wait a few moments for services to initialize, then verify the platform is responding: + +```bash +curl http://localhost:8080/.well-known/stellar.toml +``` + +You should see the Stellar TOML configuration file returned. + +### 5. Check service status + +```bash +docker-compose ps +``` + +All services should show as "Up" in the status column. + +## What's Included + +The `quick-run` setup includes: + +- **docker-compose.yaml** - Complete service definitions with all dependencies +- **dev.env** - Pre-configured environment variables +- **config/** - Required configuration files: + - `assets.yaml` - Asset definitions + - `clients.yaml` - Client configurations + - `reference-config.yaml` - Reference server settings + - `stellar.localhost.toml` - SEP-1 TOML file + +:::tip + +For more information about configuring assets and client wallets, see the [Assets and Client Wallets](./assets-and-client-wallets.mdx) guide. + +::: + +## Testing with Stellar Demo Wallet + +You can test the Anchor Platform using the [Stellar Demo Wallet](https://demo-wallet.stellar.org): + +1. Open the [Stellar Demo Wallet](https://demo-wallet.stellar.org) in your browser. +2. Click on **"Generate keypair for new account (testnet only)"** button. +3. Click on the **"Create Account"** button next to the PUBLIC key. +4. You should now see `XLM` available under the **Balances** section, indicating your account is loaded. +5. Click on **"Add home domain"** and enter the following URL: + ``` + http://localhost:8080 + ``` + This connects the demo wallet to your local Anchor Platform instance running on port 8080. +6. You should now be able to perform SEP transactions (deposits, withdrawals, etc.) with your local Anchor Platform instance. + +## Customizing Configuration + +To modify settings: + +1. Edit `dev.env` for environment variables +2. Edit files in `config/` for service-specific configurations +3. Restart services: `docker-compose restart` + +## Stopping Services + +To stop all services: + +```bash +docker-compose down +``` + +## How to implement your business callback server + +Once you have the Anchor Platform running, you can replace the reference server with your own business callback server implementation. This allows you to implement your own business logic for handling deposits, withdrawals, and other anchor operations. + +### 1. Shutdown the reference business server + +After the Anchor Platform is started and running, stop the reference server service: + +```bash +docker-compose stop reference-server +``` + +This stops the reference server while keeping the Anchor Platform and other services running. The platform will continue to operate, but it will no longer receive callbacks from the reference server. + +### 2. Implement and run your own reference server + +Implement your own callback server that implements the Anchor Platform callback API. + +You can use the [kotlin-reference-server](https://github.com/stellar/anchor-platform/tree/develop/kotlin-reference-server) as a reference implementation to understand the required endpoints and data structures. + +Ensure your callback server is accessible at `http://localhost:8091` (or the configured endpoint) and that the Anchor Platform can reach it. + +Your server should: + +- Listen on port **8091** (or configure the platform to use a different port) +- Implement the required callback endpoints as specified in the Anchor Platform API documentation +- Handle business logic for: + - Fee calculation + - Exchange rate determination + - Transaction status updates + - Customer information (KYC) management + - Deposit and withdrawal processing + +### 3. Test your integration using the demo wallet + +Follow the steps described in the [Testing with Stellar Demo Wallet](#testing-with-stellar-demo-wallet) section above, and verify that your server correctly handles deposit, withdrawal, and other SEP operations initiated from the wallet. diff --git a/ap_versioned_docs/version-2.10/api-reference/README.mdx b/docs/platforms/anchor-platform/api-reference/README.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/README.mdx rename to docs/platforms/anchor-platform/api-reference/README.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/_category_.json b/docs/platforms/anchor-platform/api-reference/_category_.json similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/_category_.json rename to docs/platforms/anchor-platform/api-reference/_category_.json diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/README.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/README.mdx new file mode 100644 index 0000000000..f723800f7d --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/README.mdx @@ -0,0 +1,18 @@ +--- +title: Callbacks Server +sidebar_position: 20 +--- + +The Anchor Platform provides several callback functionalities for your business server. + + + +| | | +| ------ | --------------------------------------- | +| GET | [/customer](./get-customer.api.mdx) | +| PUT | [/customer](./put-customer.api.mdx) | +| DELETE | [/customer/:id](./del-customer.api.mdx) | +| POST | [/event](./post-event.api.mdx) | +| GET | [/rate](./get-rates.api.mdx) | + + diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx new file mode 100644 index 0000000000..4a24f0d8fb --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx @@ -0,0 +1,80 @@ +--- +id: del-customer +title: "Delete Customer Data" +description: "The request for this endpoint is identical to the" +sidebar_label: "Delete Customer Data" +hide_title: true +hide_table_of_contents: true +api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= +sidebar_class_name: "delete api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The request for this endpoint is identical to the +[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) +request defined in SEP-12. + +Delete the customer's data or queue the customers data for deletion. + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx new file mode 100644 index 0000000000..ee11a1434b --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx @@ -0,0 +1,91 @@ +--- +id: get-customer +title: "Retrieve Customer's Info" +description: "The request and response for this endpoint is identical to the" +sidebar_label: "Retrieve Customer's Info" +hide_title: true +hide_table_of_contents: true +api: eJztWG1z2zYS/is7uA9pZihKdtJco28eRcnp2jo+y+lNx/bYELES0YAAC4CWNR7995sFSImyGbu13ZvLTfzFFAksnt199gV7wwS6zMrSS6PZkJ3kCBZ/r9B54FqARVca7RDmxoLPpQPUojRSe5AOpEDtZcYVeAM+xzN9evlhfAL9rHLeFGgvz7/LvS/dsN9fSJ9XszQzRd95VIrb5n+vtMabzKj+TJlZv+DOo+1jZtzKeSz6DsveYLC3nxbib43g3gL9yzPdCVXgXGoUIDVMx0e9vf30TJ/pkx3wXCmzdJApido78GZIawD2UniPPstJG5hLVMKFR4f2Cm0wjbToSLaxAi0pbnEhCTJw0LiEBiJcSQ68hkCWOfr0X7FMWfmXjQ9Jqcm8rYEw6EAbDzm/QuBbtI0WKGpfI5Tc8gI9WgcOyeM6vK5lJyA9uNxUimzvK6sjBWqr1aYS213RPSkQxxwvtq8aKTOsBaGAZY4atGlj4BYDjjS6aj+FUY7Z56id575yYOZtlXzOPRR8BVxZ5GIVD2jU3JDiDhcgC3KXOfocoykameT5ubEFp3iBJXfAswxLjyIBi79hFp6MBeelUqARhYPCWAz70tve6FwV9rcWxc9VKbgP5tyc3+0BuOWA9EyzhHm+cGx4ykaNIuw8Ydc9h2V4TSx9wxIW2Vo/vNqjRaZEG46bCDZkC/SNCJawrXfY8PSGSUohv1doVyxhmhfIhkwKlnQkmck7clbbtMDd1v23SBMdW1q8kqZyQJFUszBlCXNZjgVnwxvmVyWd6byVesHW66QbE88yU2nfCWwaQ4988HN1jQIO4mLglc9juiM3LKWPSeJIcU8eCeEezDd4FKYCC9MJiD7AFVcV1vl2vpJ60eZ5wMLB5ZzirVYuIf5ajETa+UKZ+7J+vnw01ouwtgswfSCHBeCVQ0Eh1UB/EPd9gBKGuiqIr4FVOXc5URuvPTv/ItgHcfIsBPMOF6WDGZKZf/x1FBJiClPEusad0MZpiZmcExuk0c+dzAlaz7VPeHmmhcmqArW/Vdoe40BvuXZR74svBGhrCcia78tc1qWxMdSLmBDJXtw5k0kKjhT+Tdm7nSnn1hS7FhZYohYOTF022ud9h+kiTbYZsZEiW2WFipTidkGJoyDiuJePs4XigVm7FniHc16pWA0uUV+m8BPXi4ovEDIjEGrfoIDKEU0m04/w5tXb3l4K/6gKroEKDp8p6kY2cl0CWW5khi6hjuVMF+gcX6BrFcCQ+KQDVR/3kIPPE9YkSUff9wcD+rerzS9cSbHJmNAkcEAZClxTHvFaOu+a6rONhRi6pOxsdbsxkC40PdSAFRU1HKU1V1LgthLF3OVqQ8w6kvvMiFUKx62fEmO5v91gQjRE0+KdaanhNEbCX9ppRi9kRnvUnuzLy1LVkdn/zZGRb+46ycyoIWDkoUhaylyxU6HCWloqrV5Gx0nR4d6kWX5PKjwYjcZHJ+N3LGFHxx9H4+l0cviBJexwPH43vZgcvv/IEnY8/ud4RIvO1wmLDUIXUC6EJJ24OtoB11agI5/eUSbK/TLmzYuZ1DwGY1XMQktBXU5AuUPhDsvUodT6xq3lJEt6LDpMtl5TMxPVa32dGaOQa7Ze04KavuLim5E6jfQURm5ImLBfxseT95PRwcnk4+HF8fhfnybHNTnRWmO7cBGyOmF2w/bSK3r1YduiNjmFcOM1L0oVbTGtsgyd+/HXUQjcqijIwLHwZdxhvH60WpWcU0OAGlzcOa+UWlFz8EKE3MdLIg5SKQ3proloJvYy3J+//qH3aj7f671++73ovd1/Pej9nX8/ED8M3mTzsKkxatt2HVScS+v8RSxct5P8yW5ZDkshLE3ueOruceuEKf5HZdPKPyUaCy7VBRfConMPig+roVn9h46o/xL2uqv+jYlT6VMy+G7kfomjSXcWX+9WgLj7fEvYAI81+F/fxX9oPLw3lRZfgw4h1DxqRx1PuBZ+Roqt+rK5CZB7Lp3U1RToc1PfOMNN0+dsyDbzE6JBuB7HIyqr2JA1HUDGlZrx7HM6o+4MnevFtWmdA7jOcmOpQ2B0FLWYpDJJiwZ/lQ7SQff1cKWz3BpN19BRfYyDg6MJ7LTrmxlKc508CEdub4ulNeSWejR1n9zY67imfXNQcIFNJ7aRt8ylQpoHSEeyKUfFW2IzIgsdOK+nHNBiThjInOlokxdu05a5uudyuD2az+eY+d2Tb6/vOiKOIGqqbNWbBq+whCmZIaXp4U3TlR+UPMsR9oMbtt4d9vvL5TLl4Wtq7KJfb3X9nyaj8eF03NtPB2nuCxU4WxrnC65bgo/RW4lXuOmCXziYEAHuFNNNoH2bin6bin6biv5fTkVjkaMJUr9UXIYGN2Sbm7rinLJNxTlPWG6cp3c3NzPu8JNV6zW9jhMFqkNCOrr1Czacc+XwgZzynEPQTlVi5ZWttpQxmoP8OZjPNBK9B+F2IPsEmH/9oPQeDerx7RPgP31s+gC8ZmL7DBi//pHpPbZ6BjN9pbPT+4xye2L8SPP8jw1W79G4ngtv9TynH1bS4Wx4SrOKHLlA27rjHISy19p154a2c7X5MD5h6/V/AIMyEEU= +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The request and response for this endpoint is identical to the +[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) +request and response defined in SEP-12. + +This endpoint allows clients to: + + 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 +[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request + +If the server does not have a customer registered for the parameters sent in the request, it should return the +fields required in the response. The same response should be returned when no parameters are sent. + + 2. Check the status of a customer that may already be registered + +This allows clients to check whether the customers information was accepted, rejected, or still needs more info. +If the server still needs more info, or the server needs updated information, it should return the fields required. + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx new file mode 100644 index 0000000000..2db4112e09 --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx @@ -0,0 +1,107 @@ +--- +id: get-rates +title: "Retrieve Rates" +description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" +sidebar_label: "Retrieve Rates" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must +use exchange rates that are communicated to the client application requesting the transaction. When clients make +requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. + +Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or +[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the +client requests a firm rate. + +Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter +for this reason. + +Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, +either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either +`sell_asset` or `buy_asset` is a Stellar asset. + + +Upon receiving the response, the Anchor Platform will validate the amount and price of the response. + +If the validation fails, the Platform will respond to the client application's request with a HTTP status +code of `502 Bad Gateway`. + +The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: + +- if `rate.fee` exists, + - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. + - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. + - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. + - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. +- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. + +The `~=` is defined as equality within rounding error. + The rounding error is defined as `10^(-significant_decimals)` + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx new file mode 100644 index 0000000000..81fc5d4b7c --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx @@ -0,0 +1,76 @@ +--- +id: post-event +title: "Receive an Event" +description: "Receive a JSON object representing an event." +sidebar_label: "Receive an Event" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Receive a JSON object representing an event. + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx b/docs/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx new file mode 100644 index 0000000000..e39841ff75 --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx @@ -0,0 +1,85 @@ +--- +id: put-customer +title: "Create or Update Customer Info" +description: "**The Anchor Platform does not persist any customer KYC data.**" +sidebar_label: "Create or Update Customer Info" +hide_title: true +hide_table_of_contents: true +api: eJztGmtv47jxrxDsh7tdyHLWF7Sov6Ve78G9XjbNo8UhDmRKGkW8lUgdSSUxAv/3YkjJelhytr0W6AL+ksic4bw4M5wh+UoNe9R0fk8XpTYyB6Xpg0dfJhoKO3yzvJr8kXr2/4dZ9TE7rz5++IDYMehI8cJwKeicvn9/mwK5EFEqFbnKmEmkykksQRMhDSlAaa4NYWJLooon+emXBYmZYf7792uxFkhAwW8lWLyYKNCFFBpIIhUxKdcERFxILgxhCgiPQRgesYwYSUwKa3G/ubq7JdOa/ubh+9SYQs+n00du0jL0I5lPtYEsY6r+PymUNDKS2TTMZDjNmTagphBJvdUG8qmGYnJ29mHm5/EfasKTojTv1mJQ1hgSLiAmXBBnPB9VW2QcUOyiyHjE0GSa5OzLXl9NnrlJUQuSyCyTz1w87m0RynjrkeeURynhGq3xzFQMcaU3YdbofmV8vRZ5qQ15YhmPmQErXm1+REeLk4JpDbFXyW5KJSys1vA7TTY83vjkupYvksIwLlAuKbIt0Ubhd8Ihi1H6LFuLEMaEI6yl4aZlhumvWoqNpY4GMtsCBpmuRcgFU9s2Q/K1/PIyM7xgykzRKSdogB7LtaAelQUoK9QqpnNalKYODurRai3+IuMtnb/SajJ+9pXBMR2lkDP8Qup0TmX4K0SGerRQyMVw0AjlMf7tBhJGweojkUlnQVAht07Ot4yNlcrnZEIYKRQ8cVlqgjFQietTr5bArRfdeZRFkSyd7Iecb1xUEKnIz+ULxOTCYRNWmtTFm4G4se0+0p84cw5/Nsg0h1wOc0QIOmtZR3SyRcdijeqWGSM6ZQpiUomPAQEKrBBdCMbIpvrejAoTuNEhiRCCNrWSldr5Vi3bm4IdcvQoiDLHtMpj6tGU6RRx4MXQh12NfEwQFuFg1x+4JiGgoX76ZRFjGPhrcQPOHve3OPGmgIgnlWv+t1MhijbRbQ7vSCyjMgdh2tnP5u5cYroWifTX4pNUxO0hZCtLEjFRpUz8qYh8FlZtXTs55imXCRL+WLr4bJGZnaPjT+qs6/xoo6GYnU/2+wAaC9fRhfmBOxjFhHY2DsYisoVDeOX/LiP30iaqifyY1jLiGCw++WcKwgJUbuUniZJ5dzljKEDEmrhlXos2v+/Bf/S9xoo1Fa5tnHN0PjRzxtQjZooc3VC/G1Y24UqbQLAcWumpAWfsGJTFMUfWLDuKo0DrwAaD2gaRjIcRtWEGAqmCQsknLqJhrIib7SCgkNqwbJx8JccgLJchzyAQZR6CGsSAnPEsOEYj5MqkAe6wh2CPulWic2oR9uhFxkb0dPA3jRYy8WXc9hZa5aFj2nXw6vwzwusNKkUqxVFLWqxQ4b581OAvBhQ6lvX8BFRQbxmHLpGx8CjLKCwDlnF2dPFzKWB7jEoHz/poPMZPbQsjj3pLhTK8DX6EQkHkcsWdBrIZNsaGcKENsHhwUzPspcpeI6Bxt5FRVBbMCTMYC0Umt6DGCewxjpkgY+KxZI8w7tw8HndGHr8dHDwOuNYlfH1U8jiAl4K7beXfmnbEcXhx1A4aXgbHFSSgFMvGVrGTtIInUPut9+0M9hY6Ogk3GQ5dNXVvVYdb8EANfap0T5XuqdL9lirdU/F3Kv5Oxd+p+DsVf/+z4q9IpZFo8ERJV3qMEnQnmp1JIYu+fOUcIQ1T24AV6J0sC2QS1GS+ksIbdaqjVigpk0CBxrJgKH0Nkh6rcds0ZRJwEckhrxo2Uj0r408gBqUenPf/V1f/XNfSTYG9s4K6KtcqNjs7O8wVN2UUgdaYAv7jE+j6yAirNNyFS3v1M1StD27a5aDZ67LvYrFYXt0uP1KPXl1/XixvblaXP1KPXi6XH2+C1eWnz9Sj18u/LheI9GBLEjzPHxK0qTeuOsK1FbBzuldRB8oMZ5VG5v1A5TIercLbcyGPUnaWYSjDp5JHbXaUKcWQFjeQD8UXZt7CqdeChlJmwETlENW+EwcnIw0a6fd45N4JPfqP5fXq02pxcbv6fBlcL/9+t7qunBOUkkNp3q5ODlqzx6HNqBX1P0Krm3bhXU0/HwrwlbDXdu5W9PdEeXd1x/TwhiN9180SbvZDo9TSDtRqnB+qcSkN+SRLEX8LOlT1p9B4K0vn96/0C2zpvL4N96httb7uVnz3gH5hUlndIKIWzKR0Tve30hR3R/WEV+7Iq1QZndO6ZY1YlmEN4Iel5rjHTRyuDy8sL9Dr7VVvJHOKrNCG183N5NIh1Rm8CYb9QUgz5IrR7u+qAHPNez+g+rckrT231VU2o61msiVIv4fsgAZaxwY+0DE2QNcoNr87/eEBj47e3W6wlUC6TWA7Aza9H52dzc4nZ3+azP5Me21ef8KYXq2mrjfY7+VGwP2F6nRuveFuw9YD9vq0lilG2rOW/TtdWWu8acYOTN7twUbATevVItrruA4gfenq7qg/cmD2di/U9oROCzQAGBCl1/A0gH2f0xka845eV9P1t6EG5gDj0MDtur8VX1iyNz87VfNIuPSq35HYGcHCxC0S2xBjMnSwH/wz/4z23xbZ49qtiFIlBZ77LqosqcnF1Yp0zuaqt0LN8W7/RVKhJG4vfv3gaJyuO2nTzROdnMVAwm33NPg55RkQbs9iCyWxPHeHuvXrHXvXy0h08ALIJ7d40+tS+nd6f8itq6csuvU6iCUJRKbLuY8/xMIdA1ZbXqPejd1U0Et5BFiSzF9p5dwXBYtSIDO7DM3mNJ9On5+ffWahvlSP02qqnv5ttVhe3iwnM//MT02e2b0XE3DORIvwQgG+RpKK3BX2XVJdF5EVusFB+bgvG05Py05Py771p2VVxsebkGmRMW6bFxtdr1WBeE/3BeKDR1OpDY69voZMw53Kdjsc/q0EtaXz+wcsShVnIcb1PXYqKTC7S+6r14WTYXLrmr+qhh28xtt59aSLKILCtNAPCvZOgXt1d4u1Q/UmLndbF9K1ZL3mE2Xc7f4Fg5L/Sw== +sidebar_class_name: "put api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +**The Anchor Platform does not persist any customer KYC data.** + +The request and response for this endpoint are identical to the +[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) +request and response defined in SEP-12. + +Client applications make requests with the following request body, which is forwarded to the anchor. Anchors +must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will +be forwarded to the anchor as with the `application/json` content type. Requests containing +binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. + + + + + + + + + + + + + + + + + + diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/README.mdx b/docs/platforms/anchor-platform/api-reference/platform/README.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/README.mdx rename to docs/platforms/anchor-platform/api-reference/platform/README.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/README.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/README.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/README.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/README.mdx diff --git a/docs/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json b/docs/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json new file mode 100644 index 0000000000..8fa9f9e324 --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json @@ -0,0 +1,10163 @@ +{ + "openrpc": "1.2.6", + "info": { + "title": "Anchor Platform", + "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", + "termsOfService": "https://stellar.org/terms-of-service", + "contact": { + "name": "Stellar Development Foundation", + "url": "https://stellar.org/connect", + "email": "hello@stellar.org" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + }, + "version": "2.8.4" + }, + "servers": [ + { + "name": "Platform API", + "url": "https://platform-server.exampleanchor.com", + "summary": "Example URL endpoint for the Platform Server.", + "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." + } + ], + "methods": [ + { + "name": "do_stellar_payment", + "summary": "Submits a Stellar payment", + "description": "Submits a payment to a stellar network by a custody service.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "do_stellar_paymentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "do_stellar_paymentExample", + "description": "Example request to the `do_stellar_payment` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Do Stellar payment" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "do_stellar_refund", + "summary": "Submits a Stellar refund", + "description": "Submits a refund payment to a stellar network by a custody service", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "description": "An object describing refund associated with this transaction.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + } + } + } + } + ], + "result": { + "name": "do_stellar_refundResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "do_stellar_refundExample", + "description": "Example request to the `do_stellar_refund` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Do Stellar refund" + }, + { + "name": "refund", + "value": { + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "get_transaction", + "summary": "Retrieve a transaction.", + "description": "Retrieve a transaction by its ID.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + } + ], + "result": { + "name": "get_transactionResponse", + "schema": { + "title": "Platform Transaction", + "description": "A platform transaction object", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "funding_method": { + "description": "Funding method used for transferring or settling assets.", + "type": "string" + }, + "type": { + "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", + "type": "string" + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "user_action_required_by": { + "title": "user_action_required_by", + "description": "Time and date by which user action is required.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + }, + "stellar_transactions": { + "type": "array", + "items": { + "title": "stellar_transaction", + "type": "object", + "required": [ + "id", + "created_at", + "envelope", + "payments" + ], + "properties": { + "id": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "created_at": { + "title": "created_at", + "description": "The date and time when the transaction is created.", + "type": "string" + }, + "envelop": { + "description": "The transaction envelope, containing all the transaction information.", + "type": "string" + }, + "payments": { + "type": "array", + "items": { + "required": [ + "id", + "payment_type", + "source_account", + "destination_account", + "amount" + ], + "properties": { + "id": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string" + }, + "payment_type": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string", + "enum": [ + "payment", + "path_payment" + ], + "default": "payment" + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "amount": { + "type": "object", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "external_transaction_id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "refund_memo": { + "title": "memo", + "type": "string" + }, + "refund_memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "client_domain": { + "description": "The domain of the client.", + "type": "string" + }, + "request_client_ip_address": { + "description": "The IP address of the client requesting the transaction.", + "type": "string" + }, + "customers": { + "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", + "type": "object", + "properties": { + "sender": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + }, + "receiver": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + }, + "creator": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + } + }, + "examples": [ + { + "name": "get_transactionExample", + "description": "Example request to the `get_transaction` method.", + "params": [ + { + "name": "id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + } + ], + "result": { + "name": "platformTransactionResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "31", + "kind": "receive", + "status": "completed", + "funding_method": "SWIFT", + "amount_expected": { + "amount": "100", + "asset": "iso4217:USD" + }, + "amount_in": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": "98.0000000", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": "2.0000", + "asset": "iso4217:USD" + }, + "quote_id": "quote-id", + "message": "Please don't forget to foo bar", + "refunds": { + "amount_refunded": { + "amount": "90.0000", + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": "8.0000", + "asset": "iso4217:USD" + }, + "payments": [ + { + "id": "1111", + "id_type": "stellar", + "amount": { + "amount": "50.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + }, + { + "id": "2222", + "id_type": "stellar", + "amount": { + "amount": "40.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + } + ] + }, + "stellar_transactions": [ + { + "id": "stellar-tx-id", + "memo": "my-memo", + "memo_type": "text", + "envelope": "here_comes_the_envelope", + "payments": [ + { + "id": "payment-id", + "amount": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "payment_type": "payment", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + ] + } + ], + "external_transaction_id": "external-tx-id", + "customers": { + "sender": { + "id": "sender-id" + }, + "receiver": { + "id": "receiver-id" + } + }, + "creator": { + "id": "creator-id" + } + } + } + } + ] + }, + { + "name": "get_transactions", + "summary": "Retrieve a list of transactions.", + "description": "Query a list of transactions by SEP, transaction status or other criteria.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "sep", + "summary": "Sep of the transaction.", + "description": "Sep of the transaction belongs to", + "required": true, + "schema": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + } + }, + { + "name": "order_by", + "summary": "The field that transactions will be ordered by .", + "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", + "required": false, + "schema": { + "title": "order_by", + "description": "The order by string used to sort the results.", + "type": "string", + "enum": [ + "created_at", + "transfer_received_at", + "user_action_required_by" + ], + "default": "created_at" + } + }, + { + "name": "statuses", + "summary": "The statuses of transactions.", + "description": "The statuses of the transaction to filter by.", + "required": false, + "schema": { + "title": "status", + "description": "The statuses of the transaction to filter by.", + "type": "array", + "enum": [ + "incomplete", + "completed", + "refunded", + "expired", + "error", + "pending_stellar", + "pending_external", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "pending_anchor", + "pending_trust", + "pending_user", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update" + ] + } + }, + { + "name": "page_size", + "summary": "The number of transactions to return.", + "description": "The number of records to return in each page.", + "required": false, + "schema": { + "title": "page_size", + "description": "The number of records to return in each page.", + "type": "integer", + "default": 20 + } + }, + { + "name": "page_number", + "summary": "The page number of transactions to return.", + "description": "Page number to use for continuous search. Page count beings at 0.", + "required": false, + "schema": { + "title": "page_number", + "description": "Page number to use for continuous search. Page count beings at 0.", + "type": "integer", + "default": 0 + } + } + ], + "result": { + "name": "get_transactionResponse", + "schema": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "title": "Platform Transaction", + "description": "A platform transaction object", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "funding_method": { + "description": "Funding method used for transferring or settling assets.", + "type": "string" + }, + "type": { + "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", + "type": "string" + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "user_action_required_by": { + "title": "user_action_required_by", + "description": "Time and date by which user action is required.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + }, + "stellar_transactions": { + "type": "array", + "items": { + "title": "stellar_transaction", + "type": "object", + "required": [ + "id", + "created_at", + "envelope", + "payments" + ], + "properties": { + "id": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "created_at": { + "title": "created_at", + "description": "The date and time when the transaction is created.", + "type": "string" + }, + "envelop": { + "description": "The transaction envelope, containing all the transaction information.", + "type": "string" + }, + "payments": { + "type": "array", + "items": { + "required": [ + "id", + "payment_type", + "source_account", + "destination_account", + "amount" + ], + "properties": { + "id": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string" + }, + "payment_type": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string", + "enum": [ + "payment", + "path_payment" + ], + "default": "payment" + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "amount": { + "type": "object", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "external_transaction_id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "refund_memo": { + "title": "memo", + "type": "string" + }, + "refund_memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "client_domain": { + "description": "The domain of the client.", + "type": "string" + }, + "request_client_ip_address": { + "description": "The IP address of the client requesting the transaction.", + "type": "string" + }, + "customers": { + "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", + "type": "object", + "properties": { + "sender": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + }, + "receiver": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + }, + "creator": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "get_transactionsExample", + "description": "Example request to the `get_transactions` method.", + "params": [ + { + "name": "sep", + "value": "31" + }, + { + "name": "order_by", + "value": "created_at" + }, + { + "name": "statuses", + "value": [ + "completed" + ] + } + ], + "result": { + "name": "platformTransactionResponses", + "value": { + "records": [ + { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "31", + "kind": "receive", + "status": "completed", + "funding_method": "SWIFT", + "amount_expected": { + "amount": "100", + "asset": "iso4217:USD" + }, + "amount_in": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": "98.0000000", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": "2.0000", + "asset": "iso4217:USD" + }, + "quote_id": "quote-id", + "message": "Please don't forget to foo bar", + "refunds": { + "amount_refunded": { + "amount": "90.0000", + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": "8.0000", + "asset": "iso4217:USD" + }, + "payments": [ + { + "id": "1111", + "id_type": "stellar", + "amount": { + "amount": "50.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + }, + { + "id": "2222", + "id_type": "stellar", + "amount": { + "amount": "40.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + } + ] + }, + "stellar_transactions": [ + { + "id": "stellar-tx-id", + "memo": "my-memo", + "memo_type": "text", + "envelope": "here_comes_the_envelope", + "payments": [ + { + "id": "payment-id", + "amount": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "payment_type": "payment", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + ] + } + ], + "external_transaction_id": "external-tx-id", + "customers": { + "sender": { + "id": "sender-id" + }, + "receiver": { + "id": "receiver-id" + } + }, + "creator": { + "id": "creator-id" + } + } + ] + } + } + } + ] + }, + { + "name": "notify_amounts_updated", + "summary": "Update transaction amounts", + "description": "Update amount_out and fee_details values", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_amounts_updatedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_amounts_updatedExample", + "description": "Example request to the `notify_amounts_updated` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Amounts updated" + }, + { + "name": "amount_out", + "value": { + "amount": 1 + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_customer_info_updated", + "summary": "Customer info updated", + "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "customer_id", + "description": "The SEP-12 ID of the customer", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "customer_type", + "description": "The SEP-12 type of the customer", + "required": false, + "schema": { + "type": "string" + } + } + ], + "result": { + "name": "notify_customer_info_updatedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_customer_info_updatedExample", + "description": "Example request to the `notify_customer_info_updated` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Customer info updated" + }, + { + "name": "customer_id", + "value": "45f8884d-d6e1-477f-a680-503179263359" + }, + { + "name": "customer_type", + "value": "sep31-receiver" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_interactive_flow_completed", + "summary": "Interactive flow completed", + "description": "Platform has collected the transaction amounts and fees from the business", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_interactive_flow_completedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_interactive_flow_completedExample", + "description": "Example request to the `notify_interactive_flow_completed` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Interactive flow completed successfully." + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_available", + "summary": "Offchain funds are available", + "description": "Funds are ready for the user / recipient to pick up.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_availableResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_availableExample", + "description": "Example request to the `notify_offchain_funds_available` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds available" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_pending", + "summary": "Offchain funds pending", + "description": "Payment has been submitted to external network, but is not yet confirmed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_pendingResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_pendingExample", + "description": "Example request to the `notify_offchain_funds_pending` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds pending" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_received", + "summary": "Offchain funds received", + "description": "Payment is being processed internally by anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "funds_received_at", + "description": "The date and time of receiving funds.", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_offchain_funds_receivedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_receivedExample", + "description": "Example request to the `notify_offchain_funds_received` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Funds received successfully" + }, + { + "name": "funds_received_at", + "value": "2023-07-04T12:34:56Z" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + }, + { + "name": "amount_in", + "value": { + "amount": 1 + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9 + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_sent", + "summary": "Offchain funds sent", + "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "funds_sent_at", + "description": "The date and time of sending funds.", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_sentExample", + "description": "Example request to the `notify_offchain_funds_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds sent" + }, + { + "name": "funds_sent_at", + "value": "2023-07-04T12:34:38Z" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_onchain_funds_received", + "summary": "Onchain funds received", + "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "stellar_transaction_id", + "summary": "Transaction ID on Stellar", + "description": "The unique transaction identifier for this transfer on the Stellar network.", + "required": true, + "schema": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_onchain_funds_receivedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_onchain_funds_receivedExample", + "description": "Example request to the `notify_onchain_funds_received` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Onchain funds received" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + }, + { + "name": "amount_in", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_onchain_funds_sent", + "summary": "Onchain funds sent", + "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "stellar_transaction_id", + "summary": "Transaction ID on Stellar", + "description": "The unique transaction identifier for this transfer on the Stellar network.", + "required": true, + "schema": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + ], + "result": { + "name": "notify_onchain_funds_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_onchain_funds_sentExample", + "description": "Example request to the `notify_onchain_funds_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Onchain funds sent" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_refund_pending", + "summary": "Refund pending", + "description": "Refund has been submitted, but is not yet confirmed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee", + "id" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + }, + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + } + } + ], + "result": { + "name": "notify_refund_pendingResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_refund_pendingExample", + "description": "Example request to the `notify_refund_pending` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Refund pending" + }, + { + "name": "refund", + "value": { + "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_refund_sent", + "summary": "Payment refunded", + "description": "Refund payment completed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee", + "id" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + }, + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + } + } + ], + "result": { + "name": "notify_refund_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_refund_sentExample", + "description": "Example request to the `notify_refund_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Refund sent" + }, + { + "name": "refund", + "value": { + "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_error", + "summary": "Transaction processing error", + "description": "There was an error processing transaction", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_errorResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_errorExample", + "description": "Example request to the `notify_transaction_error` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction error" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_expired", + "summary": "Transaction has expired", + "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_expiredResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_expiredExample", + "description": "Example request to the `notify_transaction_expired` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction expired" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_on_hold", + "summary": "Transaction transaction is on hold", + "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_on_holdResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_on_holdExample", + "description": "Example request to the `notify_transaction_on_hold` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction on hold, please contact customer service to lift the hold." + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_recovery ", + "summary": "Transaction recovery", + "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_recoveryResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_recoveryExample", + "description": "Example request to the `notify_transaction_recovery` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction recovered" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_trust_set", + "summary": "Asset trustline set", + "description": "The user has added a trustline for the asset", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "success", + "description": "Flag which indicates if trustline was configured by user.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "result": { + "name": "notify_trust_setResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_trust_setExample", + "description": "Example request to the `notify_trust_set` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Trustline set" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_offchain_funds", + "summary": "Request offchain funds", + "description": "The user has to initiate transfer to the anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "instructions", + "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", + "required": false, + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The SEP-9 field name" + }, + "field": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value of the field" + }, + "description": { + "type": "string", + "description": "A human readable description of the field" + } + } + } + } + } + } + } + ], + "result": { + "name": "request_offchain_fundsResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_offchain_fundsExample", + "description": "Example request to the `request_offchain_funds` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Request offchain funds" + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + }, + { + "name": "instructions", + "value": { + "organization.bank_number": { + "value": "123456789", + "description": "US Bank routing number" + }, + "organization.bank_account_number": { + "value": "123456789", + "description": "US Bank account number" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_onchain_funds", + "summary": "Request onchain funds", + "description": "The user has to initiate transfer to the anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "destination_account", + "description": "Destination account", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "memo", + "description": "Value of memo to attach to transaction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "memo_type", + "description": "Type of memo that anchor should attach to the transaction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "request_onchain_fundsResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_onchain_fundsExample", + "description": "Example request to the `request_onchain_funds` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Requesting onchain funds" + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "iso4217:USD" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_trust", + "summary": "A trustline to the asset isn't set", + "description": "The user must add a trustline for the asset to complete", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "request_trustResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_trustExample", + "description": "Example request to the `request_trust` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Request trust" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + } + ], + "components": {} +} \ No newline at end of file diff --git a/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx new file mode 100644 index 0000000000..2b0cdd403c --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx @@ -0,0 +1,41 @@ +--- +title: JSON-RPC Methods +order: 20 +sidebar_label: Methods +--- + +This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. + +The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). + +Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) + + + +| | | +| --- | --- | +| | [do_stellar_payment](./do_stellar_payment.mdx) | +| | [do_stellar_refund](./do_stellar_refund.mdx) | +| | [get_transaction](./get_transaction.mdx) | +| | [get_transactions](./get_transactions.mdx) | +| | [notify_amounts_updated](./notify_amounts_updated.mdx) | +| | [notify_customer_info_updated](./notify_customer_info_updated.mdx) | +| | [notify_interactive_flow_completed](./notify_interactive_flow_completed.mdx) | +| | [notify_offchain_funds_available](./notify_offchain_funds_available.mdx) | +| | [notify_offchain_funds_pending](./notify_offchain_funds_pending.mdx) | +| | [notify_offchain_funds_received](./notify_offchain_funds_received.mdx) | +| | [notify_offchain_funds_sent](./notify_offchain_funds_sent.mdx) | +| | [notify_onchain_funds_received](./notify_onchain_funds_received.mdx) | +| | [notify_onchain_funds_sent](./notify_onchain_funds_sent.mdx) | +| | [notify_refund_pending](./notify_refund_pending.mdx) | +| | [notify_refund_sent](./notify_refund_sent.mdx) | +| | [notify_transaction_error](./notify_transaction_error.mdx) | +| | [notify_transaction_expired](./notify_transaction_expired.mdx) | +| | [notify_transaction_on_hold](./notify_transaction_on_hold.mdx) | +| | [notify_transaction_recovery](./notify_transaction_recovery.mdx) | +| | [notify_trust_set](./notify_trust_set.mdx) | +| | [request_offchain_funds](./request_offchain_funds.mdx) | +| | [request_onchain_funds](./request_onchain_funds.mdx) | +| | [request_trust](./request_trust.mdx) | + + diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/do_stellar_payment.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/do_stellar_refund.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/get_transaction.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx similarity index 100% rename from ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/get_transaction.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx diff --git a/ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/get_transactions.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx similarity index 100% rename from ap_versioned_docs/version-3.0/api-reference/platform/rpc/methods/get_transactions.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_amounts_updated.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_refund_pending.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_refund_sent.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_error.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_expired.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_trust_set.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/notify_trust_set.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_offchain_funds.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_onchain_funds.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_trust.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/methods/request_trust.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx diff --git a/ap_versioned_docs/version-2.10/api-reference/platform/rpc/overview.mdx b/docs/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/api-reference/platform/rpc/overview.mdx rename to docs/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx diff --git a/docs/platforms/anchor-platform/api-reference/platform/transactions/README.mdx b/docs/platforms/anchor-platform/api-reference/platform/transactions/README.mdx new file mode 100644 index 0000000000..8bedab7d16 --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/platform/transactions/README.mdx @@ -0,0 +1,17 @@ +--- +title: Transactions +sidebar_position: 10 +--- + +Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). + +Should not be confused with stellar [transactions](../../../../../learn/glossary.mdx#transaction). + + + +| | | +| --- | -------------------------------------------- | +| GET | [/transactions/:id](get-transaction.api.mdx) | +| GET | [/transactions/](./get-transactions.api.mdx) | + + diff --git a/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx b/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx new file mode 100644 index 0000000000..6254bd3bff --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx @@ -0,0 +1,75 @@ +--- +id: get-transaction +title: "Retrieve a Transaction" +description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." +sidebar_label: "Retrieve a Transaction" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/platform/transactions/platform-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx b/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx new file mode 100644 index 0000000000..105df4d8c2 --- /dev/null +++ b/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx @@ -0,0 +1,75 @@ +--- +id: get-transactions +title: "Retrieve a List of Transactions" +description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." +sidebar_label: "Retrieve a List of Transactions" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/platform/transactions/platform-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/anchor-platform/sep-guide/README.mdx b/docs/platforms/anchor-platform/sep-guide/README.mdx new file mode 100644 index 0000000000..a723d99de3 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: SEP Guides +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +Guides for implementing Stellar Ecosystem Proposals (SEPs) with the Anchor Platform. + + diff --git a/docs/platforms/anchor-platform/sep-guide/_category_.json b/docs/platforms/anchor-platform/sep-guide/_category_.json new file mode 100644 index 0000000000..aa65b42d31 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "SEP Guides", + "collapsed": false +} + diff --git a/docs/platforms/anchor-platform/sep-guide/sep1/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep1/README.mdx new file mode 100644 index 0000000000..22a8beebdd --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep1/README.mdx @@ -0,0 +1,198 @@ +--- +title: Stellar Info File (SEP-1) +sidebar_position: 50 +--- + +## Overview + +SEP-1 (Stellar Info File) allows wallets and other Stellar applications to discover information about your anchor service. By hosting a `stellar.toml` file at `/.well-known/stellar.toml`, you enable applications to automatically find: + +- Your organization's information +- Supported assets and currencies +- Authentication endpoints (SEP-10) +- SEP endpoints for SEP-6, SEP-24, SEP-31, SEP-38, SEP-45 + +For details, please refer to the [SEP-1 specification][sep-1]. + +## Creating Your stellar.toml File + +Create a `stellar.toml` file with your service information. Here's a minimal example to get started: + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["GD...G"] # Your distribution account public keys +SIGNING_KEY = "GD...G" # Your signing key (public key) for SEP-10 authentication +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" # Use "Public Global Stellar Network ; September 2015" for mainnet + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "https://your-website.com" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +:::tip + +For a complete list of all available `stellar.toml` attributes, see the [SEP-1 specification][sep-1]. You'll need to add additional sections like `[[CURRENCIES]]`, `TRANSFER_SERVER`, `TRANSFER_SERVER_SEP0024`, `WEB_AUTH_ENDPOINT`, `WEB_AUTH_FOR_CONTRACTS_ENDPOINT`, `DIRECT_PAYMENT_SERVER` etc., as you configure the supported assets and other SEPs. + +::: + +:::important + +**Production vs. Development**: You'll need separate `stellar.toml` files for testnet and mainnet: + +- **Testnet**: Use `NETWORK_PASSPHRASE = "Test SDF Network ; September 2015"` +- **Mainnet**: Use `NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015"` + +Make sure your production file includes your actual Mainnet distribution accounts, signing keys, and production service URLs. + +::: + +## Configuration + +To enable SEP-1, you need to configure how the Anchor Platform should access your `stellar.toml` file. The platform supports three methods: + +| Type | Use Case | Description | +| --- | --- | --- | +| `file` | **Recommended for most cases** | Read from a local file on the server | +| `string` | Quick testing or simple configs | Provide the TOML content directly in the config | +| `url` | External hosting | Fetch from a remote URL (useful for dynamic content) | + +### Environment Variables + +Configure SEP-1 using the following environment variables: + +- `SEP1_ENABLED`: Set to `true` to enable SEP-1 +- `SEP1_TOML_TYPE`: One of `file`, `string`, or `url` +- `SEP1_TOML_VALUE`: The value depends on the type (see examples below) + +### Method 1: File (Recommended) + +Best for: Production deployments where you manage the file on disk. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/path/to/your/stellar.toml +``` + + + +:::tip + +When using Docker, mount your `stellar.toml` file as a volume and reference the path inside the container. For example: + +```yaml +# docker-compose.yaml +volumes: + - ./config/stellar.toml:/config/stellar.toml:ro +``` + +Then set `SEP1_TOML_VALUE=/config/stellar.toml` in your environment. + +::: + +### Method 2: String + +Best for: Quick testing, development, or when managing config via environment variables. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=string +SEP1_TOML_VALUE="ACCOUNTS = [\"GD...G\"] +SIGNING_KEY = \"GD...G\" +NETWORK_PASSPHRASE = \"Test SDF Network ; September 2015\" +[DOCUMENTATION] +ORG_NAME = \"Your organization\" +ORG_URL = \"https://your-website.com\"" +``` + + + +:::caution + +When using the `string` type, ensure your TOML content is properly escaped for your environment file format. For complex configurations, the `file` type is easier to manage. + +::: + +### Method 3: URL + +Best for: Dynamic content or when hosting the file externally. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=url +SEP1_TOML_VALUE=https://example.com/stellar.toml +``` + + + +:::note + +When using the `url` type, the Anchor Platform will fetch the file on each request. Make sure the URL is accessible from your Anchor Platform server and returns valid TOML content. + +::: + +## Accessing Your stellar.toml File + +Once configured and enabled, the Anchor Platform automatically serves your `stellar.toml` file at the standard SEP-1 endpoint: + +- **`/.well-known/stellar.toml`** - The primary endpoint (served with `Content-Type: text/plain`) +- **`/`** - Redirects to `/.well-known/stellar.toml` when SEP-1 is enabled + +### Testing Your Configuration + +After starting the Anchor Platform, verify your configuration: + +```bash +# Test the endpoint +curl http://localhost:8080/.well-known/stellar.toml + +# Or test the redirect +curl -L http://localhost:8080/ +``` + +You should see your `stellar.toml` content returned as plain text. + +### Alternative: External Hosting + +You can also host your `stellar.toml` file using a static file server like [nginx] or a CDN. If you choose this approach: + +1. Host the file at `https://your-domain.com/.well-known/stellar.toml` +2. Ensure it's publicly accessible +3. Make sure your `stellar.toml` file includes the correct URLs pointing to your Anchor Platform endpoints + +The Anchor Platform's SEP-1 service is optional if you're hosting the file externally, but it provides a convenient way to manage everything in one place. + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/docs/platforms/anchor-platform/sep-guide/sep10/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep10/README.mdx new file mode 100644 index 0000000000..55981438fe --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep10/README.mdx @@ -0,0 +1,291 @@ +--- +title: Stellar Authentication (SEP-10) +sidebar_position: 60 +--- + +## Overview + +SEP-10 (Stellar Web Authentication) enables wallet applications to create authenticated sessions with Stellar anchors by proving control over a Stellar account. Once authenticated, wallets receive a JSON Web Token (JWT) that they use in subsequent requests to the anchor's standardized services. + +For the complete specification, see [SEP-0010: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md). + +The Anchor Platform implements SEP-10 with support for: + +- **Challenge/Response Flow**: GET `/auth` to request a challenge, POST `/auth` to validate and receive a JWT +- **Client Attribution**: Optional verification of client application identity for noncustodial wallets +- **Custodial Wallet Support**: Support for custodial wallets that manage user accounts +- **Multiple Home Domains**: Support for multiple domains and wildcard patterns + +## Typical Authentication Flow + +1. The **Client** requests a unique challenge from the **Server** +2. The **Client** verifies and signs the challenge +3. The **Client** submits the signed challenge to the **Server** +4. The **Server** verifies the challenge and responds with a JWT session token + +## Enable SEP-10 + +To enable SEP-10, set the following environment variables in your `dev.env` file. + + + +```bash +# dev.env +SEP10_ENABLED=true +SEP10_HOME_DOMAINS=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" +``` + + + +### Required Configuration (If Enabled) + +| Variable | Default | Description | +| --- | --- | --- | +| `SEP10_ENABLED` | `false` | Set to `true` to enable SEP-10 authentication | +| `SEP10_HOME_DOMAINS` | `localhost:8080` | List of home domains (comma-separated). Supports wildcard patterns like `*.stellar.org`. The `home_domain` must match the host where your `stellar.toml` file is served. | +| `SECRET_SEP10_SIGNING_SEED` | _Required_ | The private key corresponding to the `SIGNING_KEY` in your `stellar.toml` file. Used to sign authentication challenges. Wallets verify this signature before signing and returning the challenge. | +| `SECRET_SEP10_JWT_SECRET` | _Required_ | The encryption key used to sign and verify JWT tokens issued to authenticated wallets. | + +:::important + +The `SIGNING_KEY` in your `stellar.toml` file must be the public key derived from `SECRET_SEP10_SIGNING_SEED`. Wallets will verify that challenge transactions are signed by this key. + +::: + +### Optional Configuration + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP10_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge transaction timeout in seconds (default: 900) +SEP10_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP10_JWT_TIMEOUT=86400 + +# Optional: Require Authorization header in GET /auth requests (default: false) +SEP10_REQUIRE_AUTH_HEADER=false + +# Optional: Client attribution requirement (default: false) +SEP10_CLIENT_ATTRIBUTION_REQUIRED=false + +# Optional: Client allow list (default: empty, all configured clients allowed) +# Comma-separated list of client names that are allowed to authenticate +SEP10_CLIENT_ALLOW_LIST=client1,client2 +``` + + + +| Variable | Default | Description | +| --- | --- | --- | +| `SEP10_WEB_AUTH_DOMAIN` | First `home_domain` if only one is specified, otherwise empty | The `web_auth_domain` property used in SEP-10 responses. Required if you have multiple `home_domains` or use wildcard patterns. Must match the host of the SEP server. | +| `SEP10_AUTH_TIMEOUT` | `900` | Time in seconds that a challenge transaction remains valid. Clients must sign and submit the challenge within this window. | +| `SEP10_JWT_TIMEOUT` | `86400` | Time in seconds that an issued JWT token remains valid. After expiration, clients must re-authenticate. | +| `SEP10_REQUIRE_AUTH_HEADER` | `false` | If `true`, requires a valid Authorization header (Bearer JWT) in GET `/auth` challenge requests. This prevents unauthorized access to the endpoint and is useful for re-authentication flows where clients need to refresh their JWT tokens. | +| `SEP10_CLIENT_ATTRIBUTION_REQUIRED` | `false` | If `true`, noncustodial wallets must provide a `client_domain` in challenge requests. Requires client configuration (see below). | +| `SEP10_CLIENT_ALLOW_LIST` | Empty (all configured clients allowed) | Comma-separated list of client names that are allowed to authenticate. Only relevant when `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`. If empty, all configured clients are allowed. | + +:::tip + +**Multiple Home Domains**: If you specify multiple `home_domains` (e.g., `ap.stellar.org,*.sdp.stellar.org`), you must also set `SEP10_WEB_AUTH_DOMAIN` to specify which domain hosts the authentication endpoint. + +::: + +## Client Attribution + +Client attribution allows you to restrict authentication to specific wallet applications and verify their identity. This is an optional feature that should only be enabled if it's a business requirement. + +:::info + +By default, the Anchor Platform allows anyone with a Stellar account to authenticate. Client attribution is only needed if you want to: + +- Restrict authentication to specific wallet applications +- Verify the identity of noncustodial wallet applications +- Track which wallet applications your users are using + +::: + +### Enabling Client Attribution + + + +```bash +# dev.env +SEP10_CLIENT_ATTRIBUTION_REQUIRED=true +``` + + + +When `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`, noncustodial wallets must: + +1. Provide a `client_domain` parameter in the challenge request +2. Sign the challenge transaction with the `SIGNING_KEY` from that domain's `stellar.toml` file +3. Have their domain listed in your client configuration + +### Client Configuration + +Configure allowed clients in your YAML configuration file: + + + +```yaml +clients: + # Each item in the list may contain the following fields: + # - name: (required) the name of the client + # - type: (required) `custodial` or `noncustodial` + # + # If the type is `custodial`, + # - signing_keys: (required) the custodial SEP-10 signing key(s) of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. + # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. + # If allow_any_destination is set to true, this configuration option is ignored. + # + # If the type is `noncustodial`, + # - domains: (required) the domains of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + + # custodial client + - name: bluecorp + type: custodial + signing_keys: "the signing key 1 of bluecorp","the signing key 2 of bluecorp" + callback_urls: + sep6: https://callback.bluecorp.com/api/v1/anchor/callback/sep6 + sep12: https://callback.bluecorp.com/api/v1/anchor/callback/sep12 + allow_any_destination: false + destination_accounts: GA... + + # noncustodial client + - name: pinkcorp + type: noncustodial + domains: pinkcorp.com + callback_urls: + sep6: https://callback.pinkcorp.com/api/v2/anchor/callback/sep6 + sep12: https://callback.pinkcorp.com/api/v2/anchor/callback/sep12 + + - name: redcorp + type: custodial + signing_keys: "the signing key of redcorp", + +``` + + + +Or configure via environment variables: + + + +```bash +# dev.env +# custodial client +CLIENTS[0]_NAME=bluecorp +CLIENTS[0]_TYPE=custodial +CLIENTS[0]_SIGNING_KEYS="the signing key 1 of bluecorp","the signing key 2 of bluecorp" +CLIENTS[0]_ALLOW_ANY_DESTINATION=false +CLIENTS[0]_DESTINATION_ACCOUNTS=GA... + +# noncustodial client +CLIENTS[1]_NAME=pinkcorp +CLIENTS[1]_TYPE=noncustodial +CLIENTS[1]_DOMAINS=pinkcorp.com + +# custodial client +CLIENTS[2]_NAME=redcorp +CLIENTS[2]_TYPE=custodial +CLIENTS[2]_SIGNING_KEYS="the signing key of redcorp" +``` + + + +## Configure stellar.toml + +Update your `stellar.toml` file to advertise SEP-10 support. Wallets discover your authentication endpoint through this file. + + + +```toml +# dev.stellar.toml +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +``` + + + +These fields should match the configuration options set in the [Enable SEP-10](#enable-sep-10) section above. + +`WEB_AUTH_ENDPOINT` - The URL where the authentication service is running. This is the URL that clients will use to authenticate with the anchor. The endpoint must support: + +- `GET ` - Request a challenge +- `POST ` - Exchange signed challenge for session JWT + +`SIGNING_KEY` - The public key corresponding to the private key specified in `SECRET_SEP10_SIGNING_SEED`. This key is used to sign authentication challenges presented to wallet applications. + +:::important + +- **`SIGNING_KEY`**: Must be the public key derived from `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_ENDPOINT`**: Use `https://` in production. The path `/auth` is the standard SEP-10 endpoint. +- **Host Matching**: The host in `WEB_AUTH_ENDPOINT` should match one of your `SEP10_HOME_DOMAINS` (or the `SEP10_WEB_AUTH_DOMAIN` if specified). + +::: + +## How to Test the Authentication Flow + +The SEP-10 authentication flow consists of two steps: + +1. **GET `/auth`** - Request a challenge transaction + - Parameters: `account` (required), `memo` (optional), `home_domain` (optional), `client_domain` (optional) + - Returns: A challenge transaction in XDR format + +2. **POST `/auth`** - Validate the signed challenge and receive a JWT + - Body: `{ "transaction": "" }` + - Returns: `{ "token": "" }` + +The JWT token should be included in subsequent API requests as a Bearer token in the `Authorization` header. + +:::tip + +**Testing Your Configuration**: You can test SEP-10 authentication using curl and Stellar CLI. For more information about Stellar CLI, see the [Stellar CLI documentation](../../../../tools/cli/README.mdx). + +```bash +# Verify if `stellar` command line is installed +stellar --version + +# List your Stellar keys/identities +stellar keys ls + +# Get your account ID (public key) and secret seed +# Replace 'alice' with your identity name from `stellar keys ls` +IDENTITY_NAME="alice" +ACCOUNT_ID=$(stellar keys public-key "$IDENTITY_NAME") +SECRET_SEED=$(stellar keys secret "$IDENTITY_NAME") + +# Step 1: Request challenge and save the transaction XDR +CHALLENGE_RESPONSE=$(curl -s "http://localhost:8080/auth?account=$ACCOUNT_ID") +CHALLENGE_XDR=$(echo "$CHALLENGE_RESPONSE" | jq -r '.transaction') + +# Step 2: Sign the challenge transaction using Stellar CLI +# Note: The output includes info messages; the signed XDR is on the last line +SIGNED_CHALLENGE_XDR=$(echo "$CHALLENGE_XDR" | stellar tx sign --sign-with-key "$SECRET_SEED" 2>&1 | tail -1) + +# Step 3: Submit the signed challenge and receive JWT token +curl -X POST "http://localhost:8080/auth" \ + -H "Content-Type: application/json" \ + -d "{\"transaction\": \"$SIGNED_CHALLENGE_XDR\"}" +``` + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md diff --git a/docs/platforms/anchor-platform/sep-guide/sep24/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/README.mdx new file mode 100644 index 0000000000..89e4dc5d61 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep24/README.mdx @@ -0,0 +1,10 @@ +--- +title: Hosted Deposits and Withdrawals (SEP-24) +sidebar_position: 90 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. + + diff --git a/docs/platforms/anchor-platform/sep-guide/sep24/configuration.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/configuration.mdx new file mode 100644 index 0000000000..05ba291088 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep24/configuration.mdx @@ -0,0 +1,211 @@ +--- +title: "Configuration" +sidebar_position: 20 +--- + +## Modify a Stellar Info File + +Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "Your web auth contract id" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +# Optionally, add support for XLM +[[CURRENCIES]] +code = "native" +status = "test" +is_asset_anchored = false +anchor_asset_type = "crypto" +desc = "XLM, the native token of the Stellar network." + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. + +## Enable Hosted Deposits & Withdrawals + +Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + - id: iso4217:USD + significant_decimals: 2 + # Optional support for XLM + - id: stellar:native + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 7 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash +``` + + + +The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. + +Add the following variables to your environment file. + + + +```bash +# dev.env +// Required +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://example.com +SEP24_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +// Optional +SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. + +`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. + +`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. + +`SEP24_INITIAL_USER_DEADLINE_SECONDS` is an optional param that defines the time in seconds a user has to act before the transaction moves to the next status. It determines the `user_action_required_by` field, which indicates the deadline. Check [JSON-RPC Methods][json-rpc-methods] for usage examples. + +## Test With the Demo Wallet + +Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Your environment should now look like the following. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" + +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. + +[![demo wallet connected to the anchor platform](/assets/ap/anchor-platform-sep24-demo-wallet.png)](/assets/ap/anchor-platform-sep24-demo-wallet.png) + +Initiate a transaction by doing the following: + +- Create a new keypair +- Click the "Add Asset" button and enter + - the code of the Stellar asset on your `stellar.toml` file + - your home domain, `localhost:8080` +- Select the dropdown and click "SEP-24 Deposit", then click "Start" + +The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. + +[![demo wallet after initiating a transaction](/assets/ap/anchor-platform-sep24-demo-wallet-widget.png)](/assets/ap/anchor-platform-sep24-demo-wallet-widget.png) + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server +[sep1-ap]: ../sep1/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/example.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/example.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/example.mdx rename to docs/platforms/anchor-platform/sep-guide/sep24/example.mdx diff --git a/ap_versioned_docs/version-2.10/admin-guide/sep24/faq.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/faq.mdx similarity index 100% rename from ap_versioned_docs/version-2.10/admin-guide/sep24/faq.mdx rename to docs/platforms/anchor-platform/sep-guide/sep24/faq.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/getting-started.mdx rename to docs/platforms/anchor-platform/sep-guide/sep24/getting-started.mdx diff --git a/docs/platforms/anchor-platform/sep-guide/sep24/integration.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/integration.mdx new file mode 100644 index 0000000000..3e514f5f8a --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep24/integration.mdx @@ -0,0 +1,927 @@ +--- +title: "Integration" +sidebar_position: 30 +--- + +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. + +In general, you'll want to provide updates for the following events: + +- Your business is processing the KYC information provided by the user +- Your business is ready to receive funds from the user +- Your business has received funds from the user +- Your business has sent funds to the user +- Your business has processed a refund for the user's transaction +- Your business experienced an unexpected error + +This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. + +The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. + +Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. + +You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] + +## Callbacks + +The Anchor Platform relies on the business server to provide and store information about quotes. + +### Quotes and Fees + +To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. + +## Securing Platform API + + + +### Using API Key + + + +### Using JWT + + + +## Making JSON-RPC Requests + + + +### JSON-RPC Request + + + +### JSON-RPC Response + + + +### Error Codes + + + +## Updating Deposit Transaction Via JSON-RPC + +SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. + +[![sep24 deposit flow](/assets/ap/sep24-deposit-flow-diagram.png)](/assets/ap/sep24-deposit-flow-diagram.png) + +:::tip + +Statuses in green are mandatory and define the shortest way. + +Statuses in yellow are optional and can be skipped. + +Statuses in red mean the transaction is in an error status or it has expired. + +::: + +### Ready to Receive Funds + +The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `amount_in` is the amount the user has to sent to the business. +- `amount_out` is the amount the user will receive. +- `fee_details` is the total amount of fees collected by the business. +- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. + +Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::tip + +When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. + +::: + +### Processing KYC Information + +:::tip + +This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). + +Using this status is recommended when KYC verification may need to be performed asynchronously. + +::: + +You **must** specify the `amount_x` fields. + + + +```json +// kyc-in-process.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_interactive_flow_completed", + "params": { + "transaction_id": "", + "message": "Interactive flow completed.", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh kyc-in-process.json +``` + + + +### Funds Received + +If offchain funds were received, you'll want to provide an updated transaction information. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` is the date and time of receiving funds +- `external_transaction_id` is the ID of transaction on external network + +The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Waiting For User Funds + +In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Sending Onchain Funds + +Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` is the transaction id on Stellar network of the transfer + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +After this JSON-RPC request, the transaction will be transferred to the `completed` status. + +### Pending Trust + +This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is when the business server detects that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +The business server periodically checks if the trustline was configured. If it was, it may send a payment and change the status of the transaction to `pending_stellar`. + +::: + +### Trust Set + +This status has to be set if the business has detected that the trustline was or wasn't configured by user. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- `success` flag which defines if trustline was or wasn't configured by user + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. + +::: + +### Sending Refund + +There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. + +::: + +### Refund Pending + +It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. + +### Transaction Error + +If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. + +::: + +### Expired Transaction + +Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. For example, to expire transaction business should change the transaction status to `expired`: + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +This JSON-RPC method can't be used after the user has made a transfer. + +::: + +### On-Hold Transaction + +In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. + + + +```json +// transaction-hold.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_on_hold", + "params": { + "transaction_id": "", + "message": "Transaction is on hold. Please contact customer support to resolve the hold." + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-hold.json +``` + + + +### Transaction Recovery + +Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Updating Withdrawal Transaction Via JSON-RPC + +This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. + +[![sep24 withdrawal flow](/assets/ap/sep24-withdrawal-flow-diagram.png)](/assets/ap/sep24-withdrawal-flow-diagram.png) + +:::tip + +Statuses in green are mandatory and define the shortest way. + +Statuses in yellow are optional and can be skipped. + +Statuses in red mean the transaction is in an error status or it has expired. + +::: + +Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. + +The starting point both for withdrawal and for deposit is the same. + +### Ready to Receive Funds + +Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- `memo` Value of memo to attach to the transaction +- `memo_type` Type of memo that the anchor should attach to the transaction +- `destination_account` Destination account + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::tip + +Setting `memo`, `memo_type`, and `destination_account` is optional. + +If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. + +If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). + +::: + +:::note + +The Stellar account that will be used to receive funds should be configured. + +::: + +### Processing KYC Information + +This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. + +### Funds Received + +If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +This method will be called automatically by the Stellar payment observer when it detects that onchain funds have been received. + +::: + +### Amount Updated + +If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. + +::: + +### Offchain Funds Sent + +To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Offchain Funds Available + +You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Offchain Funds Pending + +Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Refund Sent + +The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. + +### Transaction Error + +Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. + +### Expired Transaction + +Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. + +### On-Hold Transaction + +Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. + +### Transaction Recovery + +Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. + +## Tracking Stellar Transactions + + + +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[event-handling]: ../../admin-guide/events/README.mdx +[rate-callback]: ../../api-reference/callbacks/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/docs/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx b/docs/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx new file mode 100644 index 0000000000..149e81566c --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx @@ -0,0 +1,122 @@ +--- +title: Set Up a Production Server +sidebar_position: 60 +--- + +Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. + +## Deploying a Secure Environment + +Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. + +To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](../../../../networks/README.mdx#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). + +You can copy your existing development configs to create a production configuration. + +First, you need to change your info file (`stellar.toml`): + + + +```toml +# stellar.toml +NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" +``` + + + +Next, change your Anchor Platform configuration in `production.env` file: + +### For Horizon server connection: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_HORIZON_URL="https://horizon.stellar.org" +``` + + + +### For Stellar RPC server connection: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_RPC_URL="https://mainnet.sorobanrpc.com" +``` + + + +## Connecting to Real KYC + +Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. + +How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. + +Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. + +KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. + +Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. + +## Pre-Filling the KYC Form + +Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. + +All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. + +All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform + +## Connecting to Real Banking Rails + +Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. + +In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: + +- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account +- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds + +There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. + +Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. + +## Testing Edge Cases + +Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: + +### General Tests + +- Test the interactive flow usability +- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting + +### KYC Tests + +- Check that KYC appears with a new wallet SK +- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible +- Check that you can use the same KYC information (email, phone number, username, etc) multiple times +- Check that you can go through KYC multiple times with the same Stellar SK. + +### Interactive Test + +- Check that the deposit flow goes through, and that the banking rails are working +- Check that you cannot make a withdrawal with a value higher than the current balance +- Check that the withdrawal flow goes through, and that the banking rails are working + +### Security Tests + +- Make sure platform endpoints are secured + +## Polishing and Internationalization + +Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. + +You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. + +Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. + +## Connecting to Wallets + +All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. + +Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/docs/platforms/anchor-platform/sep-guide/sep31/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep31/README.mdx new file mode 100644 index 0000000000..cf9b2dda9f --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep31/README.mdx @@ -0,0 +1,10 @@ +--- +title: Cross-Border Payments (SEP-31) +sidebar_position: 100 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. + + diff --git a/docs/platforms/anchor-platform/sep-guide/sep31/configuration.mdx b/docs/platforms/anchor-platform/sep-guide/sep31/configuration.mdx new file mode 100644 index 0000000000..05dab1a9d6 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep31/configuration.mdx @@ -0,0 +1,344 @@ +--- +title: "Configuration" +sidebar_position: 20 +--- + +## Modify a Stellar Info File + +Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" + +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. + +## Enable Cross Border Payments + +Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH +``` + + + +The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. + +The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. + +Add the following variable to your environment file. + + + +```bash +# dev.env +SEP31_ENABLED=true +``` + + + +Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. + + + +```bash +docker compose up +``` + + + +Check that your API is live. + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +You should get the following. + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Enable the Customer KYC API + +Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. + +See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. + +To make this API available to clients, lets add the service URL to our Stellar Info File. + + + +```toml +# dev.stellar.toml +KYC_SERVER = "http://localhost:8080/sep12" +``` + + + +Lets enable it in our environment too. + + + +```bash +# dev.env +SEP12_ENABLED=true +``` + + + +Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. + +:::info + +Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. + +This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. + +::: + +In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. + + + +```yaml +# dev.assets.yaml +sep31: + sep12: + sender: + types: + sep31-sender: + description: customers sending to recipients + receiver: + types: + sep31-receiver: + description: customers receiving from senders +``` + + + +Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +You should get the following: + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Enable the RFQ API + +Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. + +The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. + +To make this API available to clients, lets add the service URL to our Stellar Info File. + + + +```toml +# dev.stellar.toml +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +QUOTE_SERVER = "http://localhost:8080/sep38" +``` + + + +Lets enable it in our environment too. + + + +```bash +# dev.env +SEP38_ENABLED=true +``` + + + +We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:BRL + country_codes: + - BR + - id: iso421:BRL + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + country_codes: + - BR + significant_decimals: 2 + buy_delivery_methods: + - name: PIX + description: Have BRL sent directly to your bank account. +``` + + + +Let's test that your RFQ API is live! Following `docker compose up`: + + + +```bash +curl http://localhost:8080/sep38/info | jq +``` + + + +You should get the following: + + + +```json +{ + "assets": [ + { + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + { + "asset": "iso4217:BRL", + "country_codes": ["BR"], + "buy_delivery_methods": [ + { + "name": "PIX", + "description": "Have BRL sent directly to your bank account." + } + ] + } + ] +} +``` + + + +## Configure Callback API Authentication + +Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://server:8081 +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +SECRET_CALLBACK_API_AUTH_SECRET= +``` + + + +`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. + +We'll define the server that implements the endpoints defined in the Callback API in the following section. + +[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info +[sep1-ap]: ../sep1/README.mdx +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx b/docs/platforms/anchor-platform/sep-guide/sep31/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/getting-started.mdx rename to docs/platforms/anchor-platform/sep-guide/sep31/getting-started.mdx diff --git a/docs/platforms/anchor-platform/sep-guide/sep31/integration.mdx b/docs/platforms/anchor-platform/sep-guide/sep31/integration.mdx new file mode 100644 index 0000000000..53b5c02a1d --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep31/integration.mdx @@ -0,0 +1,618 @@ +--- +title: "Integration" +sidebar_position: 30 +--- + +Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: + +- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data +- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported +- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) +- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses + +The following may also be required depending on your use case: + +- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data + +## Create a Business Server + +First, lets create a business server and add it to our docker compose file. + + + +```yaml +version: "3.8" + +services: + sep-server: + image: stellar/anchor-platform:latest + command: --sep-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8080:8080" + depends_on: + - db + platform-server: + image: stellar/anchor-platform:latest + command: --platform-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8085:8085" + depends_on: + - db + + server: + build: . + ports: + - "8081:8081" + env_file: + - ./dev.env + db: + image: postgres:14 + ports: + - "5432:5432" + env_file: + - ./dev.env +``` + + + +Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. + +This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. + +## Customer Callback Endpoints + +The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. + +### Identifying Customers + +Customers can be identified using two approaches. + +The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. + +The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: + + + +```json +{ + "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", + "memo": "780284017", + "type": "sep31-sender", + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" +} +``` + + + +In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. + + + +```json +{ + "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" +} +``` + + + +Your business server can use any identifer for customers as long as it is a string. + +Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: + + + +``` +/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender +``` + + + +Or, the sending organziation could use the identifier you returned when they originally registered the customer. + + + +``` +/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender +``` + + + +Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. + +### Customer Types + +Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. + +In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. + +### Test with the Demo Wallet + +You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. + +1. Select "Generate keypair for new account" +2. Select "Create account" +3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` +4. Select "Add trustline" +5. Fund your account with a balance of the asset +6. Select "SEP-31 Send" in the dropdown menu + +You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. + +[![demo wallet after initiating a transaction](/assets/ap/anchor-platform-sep31-demo-wallet-widget.png)](/assets/ap/anchor-platform-sep31-demo-wallet-widget.png) + +Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. + +## Rate Callback Endpoint + +Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. + +### Firm vs. Indicative Quotes + +Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. + +Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. + +### Using the Client ID + +Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. + +### Delivery Methods + +It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. + +Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. + +## Fetching Transaction Status Updates + +To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. + +The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. + +### Running the Stellar Observer + +The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. + + + +```yaml +services: + ... + observer: + image: stellar/anchor-platform:latest + command: --stellar-observer + env_file: + - ./dev.env + volumes: + - ./config:/home +``` + + + +### Polling for Received Payments + +The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. + +Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: + + + +```bash +curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc +``` + + + +The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). + +## Updating Transaction Via JSON-RPC + +SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. + +[![sep31 flow](/assets/ap/sep31-transition-diagram.png)](/assets/ap/sep31-transition-diagram.png) + +:::tip + +Statuses in green are mandatory and define the shortest flow. + +Statuses in yellow are optional and can be skipped. + +Statuses in red mean the transaction is in an error status or it has expired. + +::: + +You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. + +This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. + +### Ready to Receive Funds + +SEP-31 Transactions should initially be in the `pending_receiver` status. To request funds from the Sending Anchor, the Receiving Anchor should change the transaction status to `pending_sender` by making the following RPC request: + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +The transaction status will be changed to `pending_sender`. + +### Funds Received + +If the Sending Anchor has sent the funds, the Receiving Anchor should change the transaction status to `pending_receiver` by making the following JSON-RPC request: + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +The transaction status will be changed to `pending_receiver`. + +### Offchain Funds Sent + +To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Offchain Funds Pending + +Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Verifying Customer Information + +In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. + +After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep31-receiver" // or sep31-sender + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Refund Sent + +There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::note + +You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. + +::: + +### Transaction Error + +If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. + +::: + +### Expired Transaction + +Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +This JSON-RPC method can't be used after the user has made a transfer. + +::: + +### Transaction Recovery + +The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +### Configuration + +You can enable these types of transactions by updating your `assets.yaml` file configuration: + + + +```yaml +items: + - ... + sep31: + quotes_required: false +``` + + + +[ap-api]: ../../README.mdx +[ap-sep10]: ../sep10/README.mdx +[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[demo-wallet]: https://demo-wallet.stellar.org +[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp +[firm]: https://www.investopedia.com/terms/f/firmquote.asp +[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx +[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx +[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx +[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx +[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx +[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests +[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request +[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response +[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/docs/platforms/anchor-platform/sep-guide/sep45/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep45/README.mdx new file mode 100644 index 0000000000..4800dc9fff --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep45/README.mdx @@ -0,0 +1,142 @@ +--- +title: Stellar Authentication for Contract Accounts (SEP-45) +sidebar_position: 70 +--- + +## Overview + +SEP-45 (Stellar Web Authentication for Contract Accounts) enables smart wallet applications to create authenticated sessions with Stellar anchors by proving control over a contract account (`C...`). Once authenticated, wallets receive a JSON Web Token (JWT) that they use in subsequent requests to the anchor's standardized services. + +For the complete specification, see [SEP-0045: Stellar Web Authentication for Contract Accounts][sep-45]. + +The Anchor Platform implements SEP-45 with support for: + +- **Challenge/Response Flow**: GET `/sep45/auth` to request authorization entries, POST `/sep45/auth` to validate and receive a JWT +- **Contract Account Authentication**: Support for contract accounts (`C...`) using Soroban authorization entries +- **Transaction Simulation**: Automatic simulation of transactions to verify authorization entries +- **Multiple Home Domains**: Support for multiple domains and wildcard patterns + +:::info + +**SEP-45 vs SEP-10**: SEP-45 does not replace SEP-10. SEP-45 supports contract accounts (`C...`), while SEP-10 supports classic accounts (`G...`) and muxed accounts (`M...`). Services wishing to support all account types should implement both SEPs. + +::: + +## Typical Authentication Flow + +1. The **Client** requests a unique challenge from the **Server** +2. The **Client** verifies and signs the challenge +3. The **Client** submits the signed challenge to the **Server** +4. The **Server** verifies the challenge and responds with a JWT session token + +An implementation of the SEP-45 contract is provided in the [Anchor Platform repository][sep-45-contract]. An instance of this contract is deployed at `CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX` on testnet. + +## Enable SEP-45 + +SEP-45 requires integration with Stellar RPC to simulate transactions. The Anchor Platform can connect to the Stellar RPC server of your choice. You can use a public Stellar RPC provider, or you can run your own. A list of public providers can be found [here][rpc-providers]. + +To enable SEP-45, set the following environment variables in your `dev.env` file. + + + +```bash +# dev.env +STELLAR_NETWORK_TYPE=rpc +STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org +SEP45_ENABLED=true +SEP45_HOME_DOMAINS=localhost:8080 +SEP45_WEB_AUTH_CONTRACT_ID="CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP45_JWT_SECRET="a secret encryption key" +``` + + + +### Required Configuration (If Enabled) + +| Variable | Default | Description | +| --- | --- | --- | +| `STELLAR_NETWORK_TYPE` | _Required_ | Must be set to `rpc` for SEP-45. This enables RPC mode for the Anchor Platform. | +| `STELLAR_NETWORK_RPC_URL` | _Required_ | The URL of the Stellar RPC server used to simulate transactions. You can use a public provider or run your own. A list of public providers can be found [here][rpc-providers]. | +| `SEP45_ENABLED` | `false` | Set to `true` to enable SEP-45 authentication | +| `SEP45_HOME_DOMAINS` | _Required_ | List of home domains (comma-separated). Supports wildcard patterns like `*.stellar.org`. The `home_domain` must match the host where your `stellar.toml` file is served. | +| `SEP45_WEB_AUTH_CONTRACT_ID` | _Required_ | The contract ID of the SEP-45 contract. This contract must implement the `web_auth_verify` function as described in the [SEP-45 specification][sep-45]. | +| `SECRET_SEP10_SIGNING_SEED` | _Required_ | The private key corresponding to the `SIGNING_KEY` in your `stellar.toml` file. SEP-45 uses the same signing key as SEP-10. Used to sign authentication challenges. | +| `SECRET_SEP45_JWT_SECRET` | _Required_ | The encryption key used to sign and verify JWT tokens issued to authenticated wallets. | + +:::important + +- **RPC Requirement**: SEP-45 requires Stellar RPC to simulate transactions. You must set `STELLAR_NETWORK_TYPE=rpc` and provide a valid `STELLAR_NETWORK_RPC_URL`. +- **Contract ID**: The `SEP45_WEB_AUTH_CONTRACT_ID` must match the contract deployed at the address specified in your `stellar.toml` file's `WEB_AUTH_CONTRACT_ID` field. +- **Signing Key**: The `SIGNING_KEY` in your `stellar.toml` file must be the public key derived from `SECRET_SEP10_SIGNING_SEED`. + +::: + +### Optional Configuration + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP45_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge timeout in seconds (default: 900) +SEP45_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP45_JWT_TIMEOUT=86400 +``` + + + +| Variable | Default | Description | +| --- | --- | --- | +| `SEP45_WEB_AUTH_DOMAIN` | First `home_domain` if only one is specified, otherwise empty | The `web_auth_domain` property used in SEP-45 responses. Required if you have multiple `home_domains` or use wildcard patterns. Must match the host of the SEP server. | +| `SEP45_AUTH_TIMEOUT` | `900` | Time in seconds that a challenge remains valid. Clients must sign and submit the authorization entries within this window. | +| `SEP45_JWT_TIMEOUT` | `86400` | Time in seconds that an issued JWT token remains valid. After expiration, clients must re-authenticate. | + +:::tip + +**Multiple Home Domains**: If you specify multiple `home_domains` (e.g., `ap.stellar.org,*.sdp.stellar.org`), you must also set `SEP45_WEB_AUTH_DOMAIN` to specify which domain hosts the authentication endpoint. + +::: + +## Configure stellar.toml + +Update your `stellar.toml` file to advertise SEP-45 support. Wallets discover your authentication endpoint through this file. + + + +```toml +# dev.stellar.toml + +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +``` + + + +These fields should match the configuration options set in the [Enable SEP-45](#enable-sep-45) section above. + +`WEB_AUTH_FOR_CONTRACTS_ENDPOINT` - The URL where the authentication service is running. This is the URL that clients will use to authenticate with the anchor. The endpoint must support: + +- `GET ` - Request authorization entries +- `POST ` - Exchange signed authorization entries for session JWT + +`WEB_AUTH_CONTRACT_ID` - The contract ID of the SEP-45 contract. This is the contract that will be used to construct the challenge. The contract must implement the `web_auth_verify` function as described in the [SEP-45 specification][sep-45]. This should match `SEP45_WEB_AUTH_CONTRACT_ID`. + +:::important + +- **`SIGNING_KEY`**: Must be the public key derived from `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_FOR_CONTRACTS_ENDPOINT`**: Use `https://` in production. The path `/sep45/auth` is the standard SEP-45 endpoint. +- **Host Matching**: The host in `WEB_AUTH_FOR_CONTRACTS_ENDPOINT` should match one of your `SEP45_HOME_DOMAINS` (or the `SEP45_WEB_AUTH_DOMAIN` if specified). + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[sep-45-contract]: https://github.com/stellar/anchor-platform/tree/main/soroban/contracts/web-auth +[rpc-providers]: /docs/data/apis/rpc/providers diff --git a/docs/platforms/anchor-platform/sep-guide/sep6/README.mdx b/docs/platforms/anchor-platform/sep-guide/sep6/README.mdx new file mode 100644 index 0000000000..dbe79e701d --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep6/README.mdx @@ -0,0 +1,10 @@ +--- +title: Programmatic Deposits and Withdrawals (SEP-6) +sidebar_position: 80 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. + + diff --git a/docs/platforms/anchor-platform/sep-guide/sep6/configuration.mdx b/docs/platforms/anchor-platform/sep-guide/sep6/configuration.mdx new file mode 100644 index 0000000000..57252eb139 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep6/configuration.mdx @@ -0,0 +1,254 @@ +--- +title: "Configuration" +sidebar_position: 20 +--- + +# Configuration + +To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: + +- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file +- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints +- Support the endpoints and callbacks required to request KYC information and provide exchange rates + +## Enable Programmatic Deposits & Withdrawals + +Add the following variables to your environment file. + + + +```bash +# dev.env +SEP6_ENABLED=true +SEP12_ENABLED=true +SEP38_ENABLED=true +``` + + + +### Modify a Stellar Info File + +Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER = "http://localhost:8080/sep6" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. + +### Modify the Assets Configuration File + +Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. + +The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. + +The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. + +Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. + + + +```yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD + - id: iso4217:USD + significant_decimals: 2 + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + buy_delivery_methods: + - name: ACH + description: ACH debits for US bank accounts + sell_delivery_methods: + - name: ACH + description: ACH credit for US bank accounts +``` + + + +### Managing Distribution Accounts + +Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. + +If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. + +To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. + + + +```bash +# dev.env +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +``` + + + +### Enable Callbacks to the Business Server + +Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. + +Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. + +To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. + +See the [KYC API][platform-api-kyc] and [Rates API][get-rates-api] for details on the endpoints that must be implemented on your business server. + +### Additional Optional Configuration + +`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. + + + +```bash +# dev.env +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +Businesses can set a deadline for user actions on transactions using the `user_action_required_by` field. For examples, see [JSON-RPC Methods][json-rpc-methods]. In addition, the `initial_user_deadline_seconds` parameter sets a default time (in seconds) a user has to act before the transaction moves into the `EXPIRED` status. + + + +```bash +# dev.env +SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +## Test With the Demo Wallet + +Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Your environment should now look something like the following. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP6_ENABLED=true +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" + +SEP12_ENABLED=true + +SEP38_ENABLED=true + +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. + +Initiate a deposit transaction by doing the following: + +- Create a new keypair +- Click the "Add Asset" button and enter + - the code of the Stellar asset on your `stellar.toml` file + - your home domain, `localhost:8080` +- Select the dropdown and click "SEP-6 Deposit", then click "Start" + +The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep1-ap]: ../sep1/README.mdx +[stellar-demo-wallet]: https://demo-wallet.stellar.org/ +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx +[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx +[how-to-use-jwt]: ../sep24/faq.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx b/docs/platforms/anchor-platform/sep-guide/sep6/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/getting-started.mdx rename to docs/platforms/anchor-platform/sep-guide/sep6/getting-started.mdx diff --git a/docs/platforms/anchor-platform/sep-guide/sep6/integration.mdx b/docs/platforms/anchor-platform/sep-guide/sep6/integration.mdx new file mode 100644 index 0000000000..8e621ee803 --- /dev/null +++ b/docs/platforms/anchor-platform/sep-guide/sep6/integration.mdx @@ -0,0 +1,897 @@ +--- +title: "Integration" +sidebar_position: 30 +--- + +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. + +In general, you will want to provide updates for the following events. + +- Your business requires the user to submit KYC information to process a transaction +- Your business updated the in/out/fee amounts for a transaction +- Your business is ready to receive funds from the user +- Your business has received funds from the user +- Your business has sent funds to the user +- Your business has a processed a refund for the user's transaction +- Your business experienced an unexpected error + +This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. + +The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. + +Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. + +You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. + +## Callbacks + +The Anchor Platform relies on the business server to provide and store information about customers and quotes. + +### Customer Information + +The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. + +### Quotes and Fees + +To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. + +## Securing Platform API + + + +### Using API Key + + + +### Using JWT + + + +## Making JSON-RPC Requests + + + +### JSON-RPC Request + + + +### JSON-RPC Response + + + +### Error Codes + + + +## Updating Deposit (Exchange) Transaction Via JSON-RPC + +SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. + +The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. + +[![sep6 deposit flow](/assets/ap/sep6-deposit-flow-diagram.png)](/assets/ap/sep6-deposit-flow-diagram.png) + +:::tip + +Statuses in green are mandatory and define the shortest way. + +Statuses in yellow are optional and can be skipped. + +Statuses in red mean the transaction is in an error status or it has expired. + +::: + +### Verifying KYC Information + +Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. + +After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep6-deposit" // or sep6-withdrawal + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Ready to Receive Funds + +After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + }, + "instructions": { + "organization.bank_number": { + "value": "123456789", + "description": "US Bank routing number" + }, + "organization.bank_account_number": { + "value": "123456789", + "description": "US Bank account number" + } + } + } + } +] +``` + + + +- `amount_in` is the amount the user has to send to the business. +- `amount_out` is the amount the user will receive. +- `fee_details` is the total amount of fees collected by the business. +- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. +- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. + +Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::caution + +For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. + +::: + +### Funds Received + +If offchain funds were received, you'll want to provide updated transaction information. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` is the date and time of receiving funds. +- `external_transaction_id` is the ID of transaction on external network. + +The amount fields are optional. If skipped, the values prior to this request will be used. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Waiting For User Funds + +In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Sending Onchain Funds + +Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +After this JSON-RPC request, the transaction will be transferred to the `completed` status. + +### Pending Trust + +This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is when the business server detects that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +The payment processing system periodically checks if the trustline was configured. If it was, it will automatically send a payment and change the status of the transaction to `pending_stellar`. + +::: + +### Trust Set + +This status has to be set if the business has detected that the trustline was or wasn't configured by user. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- `success` flag which defines if trustline was or wasn't configured by user + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. + +::: + +### Refund Sent + +Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. + +::: + +### Refund Pending + +This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. + +### Transaction Error + +If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. + +::: + +### Expired Transaction + +Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +This JSON-RPC method can't be used after the user has made a transfer. + +::: + +### Transaction Recovery + +Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Updating Withdrawal (Exchange) Transaction Via JSON-RPC + +The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. + +The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. + +[![sep6 withdrawal flow](/assets/ap/sep6-withdrawal-flow-diagram.png)](/assets/ap/sep6-withdrawal-flow-diagram.png) + +:::tip + +Statuses in green are mandatory and define the shortest way. + +Statuses in yellow are optional and can be skipped. + +Statuses in red mean the transaction is in an error status or it has expired. + +::: + +Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. + +The starting point both for withdrawal and for deposit is the same. + +### Ready to Receive Funds + +Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- `amount_in` is the amount the user has to send to the business. +- `amount_out` is the amount the user will receive. +- `fee_details` is the total amount of fees collected by the business. +- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. +- `memo` is the memo the user should use when sending their onchain funds to the anchor. +- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. +- `destination_account` is the account the user should send the funds to. + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::caution + +For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. + +::: + +:::tip + +Setting `memo`, `memo_type`, and `destination_account` is optional. + +If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. + +If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). + +::: + +:::note + +The Stellar account that will be used to receive funds should be configured. + +::: + +### Funds Received + +If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +This method will be called by the Stellar payment observer when it detects that onchain funds have been received. + +::: + +### Amount Updated + +If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. + +::: + +### Offchain Funds Available + +You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Offchain Funds Pending + +Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Offchain Funds Sent + +To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +To execute this, you need to run: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Refund Sent + +The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. + +### Transaction Error + +Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. + +### Expired Transaction + +Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. + +### Transaction Recovery + +Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. + +## Tracking Stellar Transactions + + + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[event-handling]: ../../admin-guide/events/README.mdx +[customer-callback]: ../../api-reference/callbacks/README.mdx +[rate-callback]: ../../api-reference/callbacks/README.mdx +[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/docs/platforms/stellar-disbursement-platform/README.mdx b/docs/platforms/stellar-disbursement-platform/README.mdx new file mode 100644 index 0000000000..6269a748de --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/README.mdx @@ -0,0 +1,19 @@ +--- +title: Stellar Disbursement Platform Introduction +sidebar_label: Introduction +pagination_label: Stellar Disbursement Platform Introduction +sidebar_position: 10 +pagination_next: platforms/stellar-disbursement-platform/admin-guide/overview +--- + +# Stellar Disbursement Platform + +The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. + +This is an open-source project that is built on top of the Stellar network, and the code can be found on the following repositories: + +- [stellar/stellar-disbursement-platform-backend](https://github.com/stellar/stellar-disbursement-platform-backend): This repository contains the backend and infrastructure code for the Stellar Disbursement Platform. +- [stellar/stellar-disbursement-platform-frontend](https://github.com/stellar/stellar-disbursement-platform-frontend): This repository contains the web frontend code for the Stellar Disbursement Platform. +- [stellar/helm-charts](https://github.com/stellar/helm-charts/tree/main/charts/stellar-disbursement-platform): This repository contains the Helm chart for deploying the Stellar Disbursement Platform using kubernetes. + +In this section, you'll find an [Admin Guide](./stellar-disbursement-platform/admin-guide/) that will teach you how to run the Stellar Disbursement Platform as well as an [API Reference](./api-reference/admin.tag.mdx). diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/advanced-configuration.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/advanced-configuration.mdx new file mode 100644 index 0000000000..3c66726455 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/advanced-configuration.mdx @@ -0,0 +1,279 @@ +--- +title: Advanced Configuration +description: Understand how to configure the SDP for various scenarios. This includes multi-tenancy, testnet vs. mainnet, etc. +keywords: [SDP, configuration] +sidebar_position: 45 +--- + +In this guide, you will learn about advanced configuration options for the Stellar Disbursement Platform (SDP). These configurations allow you to tailor the SDP to meet specific requirements, such as multi-tenancy, network selection, and performance tuning. + +## Testnet to Mainnet Configuration + +Upon provisioning a new SDP instance, it is configured to operate either in Mainnet or Testnet mode based on the environment variables set during setup. Most users will start with Testnet for development and testing purposes before transitioning to Mainnet for production use. + +:::caution + +An SDP instance is designed to operate on either Testnet or Mainnet. Switching between these networks on an existing instance is not supported and may lead to unexpected behavior. If you need to change the network, it is recommended to set up a new SDP instance with the desired configuration. + +::: + +Once you validated your setup on Testnet, you can deploy a new instance configured for Mainnet by setting the appropriate environment variables during the provisioning process. + +### Environment Variables + +When switching from Testnet to Mainnet, you need to update the following environment variables for each service to point to the public network resources. + +#### SDP Core Service + +| Variable | Testnet Value | Mainnet Value | Description | +| :-- | :-- | :-- | :-- | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | The passphrase for the Stellar network. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | The URL of the Horizon server. | +| `DISABLE_MFA` | x | `false` | Disables Multi-Factor Authentication. **Must be `false` for Mainnet.** | + +#### Transaction Submission Service (TSS) + +| Variable | Testnet Value | Mainnet Value | Description | +| :-- | :-- | :-- | :-- | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | The passphrase for the Stellar network. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | The URL of the Horizon server. | + +#### Dashboard + +| Variable | Testnet Value | Mainnet Value | Description | +| :-- | :-- | :-- | :-- | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | The URL of the Horizon server used by the frontend. | +| `STELLAR_EXPERT_URL` | `https://stellar.expert/explorer/testnet` | `https://stellar.expert/explorer/public` | The URL for the Stellar Expert explorer. | + +### Critical Considerations + +Before deploying to Mainnet, you must address the following critical requirements to ensure your instance operates correctly. + +You **must** generate a new, secure keypair for your Mainnet Distribution Account. Do not reuse Testnet keys. + +- **Generate Keys**: Create a new keypair and set `DISTRIBUTION_PUBLIC_KEY` and `DISTRIBUTION_SEED`. +- **Generate Encryption Passphrase**: You should generate new encryption passphrases for your tenant distribution accounts and channel accounts by setting `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` and `CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE`. +- **Fund the Account**: The Distribution Account requires an initial balance of XLM to function. It is responsible for: + 1. **Creating Channel Accounts**: The system will automatically create `NUM_CHANNEL_ACCOUNTS` (default: 2). + 2. **Bootstrapping Tenants**: When a new tenant is provisioned, the system transfers a bootstrap amount of XLM from the Distribution Account to the Tenant's Distribution Account. This is controlled by `TENANT_XLM_BOOTSTRAP_AMOUNT` (default: 5 XLM). + +### Configuration Methods + +You can configure the SDP for Mainnet using either Helm Charts (for Kubernetes deployments) or Docker Compose (for local or simple deployments). + +#### Helm Charts + +If you are deploying via Helm, the chart provides a global setting that automatically configures the necessary network parameters. + +In your `values.yaml` file, set `global.isPubnet` to `true`. This will automatically set the correct `NETWORK_PASSPHRASE`, `HORIZON_URL` and `STELLAR_EXPERT_URL` for all services. + +```yaml +global: + # Set to true for Mainnet + isPubnet: true +``` + +#### Docker Compose + +Update your `.env` file with the following values: + +```bash +# Network Configuration +NETWORK_TYPE="pubnet" +NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015" +HORIZON_URL="https://horizon.stellar.org" + +# Security +DISABLE_MFA=false + +# Distribution Account (Mainnet Keys) +DISTRIBUTION_PUBLIC_KEY="G..." +DISTRIBUTION_SEED="S..." + +# Encryption Passphrases +DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE="S..." +CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE="S..." +``` + +## Single Tenant to Multi-Tenant Configuration + +The Stellar Disbursement Platform (SDP) supports multi-tenancy, allowing a single instance to serve multiple organizations (tenants). Each tenant has its own isolated data, users, and distribution account (source of funds). + +### Configuration + +To enable multi-tenancy, you must update your configuration to disable single-tenant mode and ensure the Admin API is accessible. + +1. **Disable Single Tenant Mode**: Set the `SINGLE_TENANT_MODE` environment variable to `false`. +2. **Expose Admin Port**: Ensure the Admin API port (default `8003`) is exposed in the sdp backend service. + +### Routing and Ingress + +The SDP identifies the tenant for each request using one of the following methods, in order of precedence: + +1. **HTTP Header**: The `SDP-Tenant-Name` header. +2. **Subdomain**: The prefix of the hostname (e.g., `tenant1` in `tenant1.sdp.stellar.org`). + +#### HTTP Header + +You can explicitly specify the tenant by setting the `SDP-Tenant-Name` header in your HTTP requests. + +```bash +curl -H "SDP-Tenant-Name: tenant1" https://sdp.stellar.org/ ... +``` + +#### Subdomain Routing + +In a production environment, it is common to use subdomain routing. For example, `tenant1.sdp.stellar.org` and `tenant2.sdp.stellar.org` will both point to the same SDP instance. + +#### Helm Charts + +When deploying via Helm, you configure the wildcard domain using the `sdp.route.mtnDomain` value. This creates an Ingress rule that matches all subdomains. + +In your `values.yaml`: + +```yaml +sdp: + route: + # The wildcard domain for multi-tenancy + mtnDomain: "*.sdp.stellar.org" +``` + +:::note + +Ensure your DNS provider has a wildcard A record (e.g., `*.sdp.stellar.org`) pointing to your Ingress Controller's Load Balancer IP. + +::: + +#### Docker Compose (Local Development) + +For local development with Docker Compose you must map specific tenant subdomains to `127.0.0.1` in your machine's `/etc/hosts` file (For Windows users, the file is located at `C:\Windows\System32\drivers\etc\hosts`). + +**Example `/etc/hosts`:** + +```text +127.0.0.1 localhost +127.0.0.1 sdp.local # Default/Admin domain +127.0.0.1 tenant1.sdp.local # First tenant +127.0.0.1 tenant2.sdp.local # Second tenant +``` + +### Provisioning Tenants + +In multi-tenant mode, you provision new tenants using the Admin API (port `8003` by default). Each tenant will have its own isolated data. + +**Endpoint**: [POST /tenants](../api-reference/create-tenant.api.mdx) **Example Request:** + +```bash +curl --location 'http://localhost:8003/tenants' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Basic ' \ +--data '{ + "name": "tenant1", + "organization_name": "Tenant One Organization", + "base_url": "https://tenant1.sdp-api.stellar.org", + "sdp_ui_base_url": "https://tenant1.sdp-dashboard.stellar.org", + "owner_email": "owner@tenant1.com", + "owner_first_name": "Jane", + "owner_last_name": "Doe", + "distribution_account_type": "DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT" +}' +``` + +#### Multi-tenant Distribution Accounts + +This is by far the most important field, as it determines the source of funds (distribution account) for the tenant, as well as how the secret for this distribution account is stored. + +This is determined by the field `distribution_account_type` in the API call above. The possible values are described below: + +- `DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT` +- **Platform**: Stellar +- **Secret Storage Location**: Database, encrypted with `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` +- **Assets Supported**: Any Stellar asset +- **Key/Secret Isolation**: Segregated per tenant +- **Appropriate for**: Multi-tenant and single-tenant +- **How is it configured?**: The distribution account is randomly generated and funded during the provisioning process, and the secret is encrypted and safely stored in the database. The account is funded from the HOST distribution account by an amount defined in `TENANT_XLM_BOOTSTRAP_AMOUNT`. + +- `DISTRIBUTION_ACCOUNT.CIRCLE.DB_VAULT` +- **Platform**: [Circle](https://www.circle.com) +- **Secret Storage Location**: Database, encrypted with `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` +- **Assets Supported**: [USDC](https://www.circle.com/en/usdc)/[EURC](https://www.circle.com/en/eurc) +- **Key/Secret Isolation**: Segregated per tenant +- **Appropriate for**: Multi-tenant and single-tenant +- **How is it configured?**: The Circle API key is provided by the tenant themselves once they have access to the dashboard. The secret is encrypted and safely stored in the database. + +- 🔴 `DISTRIBUTION_ACCOUNT.STELLAR.ENV` +- **Platform**: Stellar +- **Secret Storage Location**: Environment variable `DISTRIBUTION_SEED` +- **Assets Supported**: Any Stellar asset +- **Key/Secret Isolation**: 🚨 Same distribution account as the HOST +- **Appropriate for**: Single-tenant only +- **How is it configured?**: The tenant will use the HOST account **as is**. The host is responsible for creating the account and configuring it with the `DISTRIBUTION_SEED` secret. + +:::warning + +Once a tenant is created, the `distribution_account_type` cannot be changed. If you wish to use a different distribution account type, you will need to create a new tenant. + +::: + +## Embedded Wallets Configuration + +Embedded Wallets allow receivers to receive disbursements without downloading a separate wallet application. Instead, the SDP creates lightweight, passkey-secured smart contract wallets on the Stellar network. This feature requires configuration across the SDP backend, Transaction Submission Service (TSS), and frontend dashboard. + +For a complete guide on using Embedded Wallets, see the [Embedded Wallets](./embedded-wallets) documentation. + +### Overview + +To enable Embedded Wallets, you need to: + +1. Make sure the SEP-10 account exists on the Stellar network by funding it +2. Configure the backend with the RPC endpoint +3. Configure TSS with the same RPC endpoint +4. Enable RPC features in the frontend dashboard + +:::caution HTTPS Requirement + +**The frontend dashboard MUST be served over HTTPS for Embedded Wallets to work.** Passkeys use the WebAuthn standard, which requires a secure context. + +::: + +### Backend (SDP Core Service) Configuration + +The following environment variables configure the SDP backend for Embedded Wallets: + +| Variable | Description | Default | Required | +| :-- | :-- | :-- | :-- | +| `ENABLE_EMBEDDED_WALLETS` | Enable embedded wallet features. Set to `true` to activate. | `false` | Yes | +| `EMBEDDED_WALLETS_WASM_HASH` | The WASM hash of the deployed smart contract for embedded wallets. This is network-specific. | - | Yes (when enabled) | +| `RPC_URL` | The URL of the Stellar RPC server. Required for interacting with smart contracts. | - | Yes (when enabled) | +| `RPC_REQUEST_AUTH_HEADER_KEY` | The HTTP header name for authenticating requests to a protected RPC server (e.g., `X-API-Key`). Optional. | - | No | +| `RPC_REQUEST_AUTH_HEADER_VALUE` | The value of the authentication header for protected RPC servers. Optional. | - | No | +| `ENABLE_SEP45` | Enable SEP-45 web authentication for smart contracts. Recommended for Embedded Wallets. | `false` | No | +| `SEP45_CONTRACT_ID` | The contract ID for SEP-45 authentication. Required when SEP-45 is enabled. | - | When SEP45 enabled | + +### Transaction Submission Service (TSS) Configuration + +The TSS also requires RPC configuration to submit smart contract transactions: + +| Variable | Description | Default | Required | +| :-- | :-- | :-- | :-- | +| `RPC_URL` | The URL of the Stellar RPC server. Must match the backend RPC_URL. | - | Yes (when embedded wallets enabled) | +| `RPC_REQUEST_AUTH_HEADER_KEY` | The HTTP header name for RPC authentication. Optional. | - | No | +| `RPC_REQUEST_AUTH_HEADER_VALUE` | The authentication header value. Optional. | - | No | + +### Frontend (Dashboard) Configuration + +The frontend dashboard requires a single environment variable to enable embedded wallet features: + +| Variable | Description | Default | Required | +| :-- | :-- | :-- | :-- | +| `RPC_ENABLED` | Enable RPC-dependent features including Embedded Wallets. Set to `true`. | `false` | Yes | + +### HTTPS Requirement for Passkeys + +:::danger Critical: HTTPS Required + +Embedded Wallets use passkeys (WebAuthn) for authentication. **Passkeys only work in secure contexts**. + +If your frontend is not served over HTTPS, receivers will not be able to create passkeys or authenticate with their embedded wallets. + +::: diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx new file mode 100644 index 0000000000..016657074a --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx @@ -0,0 +1,653 @@ +--- +title: CLI Manual +description: Guide to using the Stellar Disbursement Platform CLI +keywords: [SDP, CLI] +sidebar_position: 50 +--- + +## Root Command + +The `stellar-disbursement-platform` is the main entry point for the application. It provides various subcommands to manage the service, database, and other utilities. + +### Usage + +```bash +stellar-disbursement-platform [command] [flags] +``` + +:::tip + +For all the following commands, you can use the `--help` flag to get more information about the command and its options. For example: + +```bash +stellar-disbursement-platform serve --help +``` + +::: + +## Global Flags + +The following flags are available for all commands: + +| Flag | Description | +| :-- | :-- | +| `--base-url` | The SDP backend server's base URL. Defaults to `http://localhost:8000`. | +| `--database-url` | Postgres DB URL. Defaults to `postgres://localhost:5432/sdp?sslmode=disable`. | +| `--environment` | The environment where the application is running. Example: `development`, `staging`, `production`. Defaults to `development`. | +| `--log-level` | The log level used in this project. Options: `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, or `PANIC`. Defaults to `TRACE`. | +| `--network-passphrase` | The Stellar network passphrase. Defaults to `Test SDF Network ; September 2015`. | +| `--sdp-ui-base-url` | The SDP UI server's base URL. Defaults to `http://localhost:3000`. | +| `--sentry-dsn` | The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. | + +## Serve Command + +The `serve` command starts the Stellar Disbursement Platform backend server. This server handles API requests, processes disbursements, and manages tenant operations. + +### Usage + +```bash +stellar-disbursement-platform serve [flags] +``` + +### Flags + +| Flag | Description | +| :-- | :-- | +| `--admin-account` | ID of the admin account. To use, add to the request header as 'Authorization', formatted as Base64-encoded 'ADMIN_ACCOUNT:ADMIN_API_KEY'. | +| `--admin-api-key` | API key for the admin account. To use, add to the request header as 'Authorization', formatted as Base64-encoded 'ADMIN_ACCOUNT:ADMIN_API_KEY'. | +| `--admin-port` | Port where the admin tenant server will be listening on. Defaults to `8003`. | +| `--aws-access-key-id` | The AWS access key ID. | +| `--aws-region` | The AWS region. | +| `--aws-secret-access-key` | The AWS secret access key. | +| `--aws-ses-sender-id` | The email address that AWS will use to send emails. Uses AWS SES. | +| `--aws-sns-sender-id` | The sender ID of the AWS account sending the SMS message. Uses AWS SNS. | +| `--bridge-api-key` | Bridge API key. This needs to be configured only if the Bridge integration is enabled. | +| `--bridge-base-url` | Bridge Base URL. This needs to be configured only if the Bridge integration is enabled. Defaults to `https://api.bridge.xyz`. | +| `--captcha-type` | The type of CAPTCHA to use. Options: `GOOGLE_RECAPTCHA_V2`, `GOOGLE_RECAPTCHA_V3`. Defaults to `GOOGLE_RECAPTCHA_V2`. | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--circle-api-type` | The Circle API type. Options: `TRANSFERS`, `PAYOUTS`. Defaults to `TRANSFERS`. | +| `--cors-allowed-origins` | Cors URLs that are allowed to access the endpoints, separated by ",". | +| `--crash-tracker-type` | Crash tracker type. Options: `SENTRY`, `DRY_RUN`. Defaults to `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Maximum idle time in seconds before a connection is closed. Defaults to `10`. | +| `--db-conn-max-lifetime-seconds` | Maximum lifetime in seconds for a single connection. Defaults to `300`. | +| `--db-max-idle-conns` | Maximum number of idle DB connections retained per pool. Defaults to `2`. | +| `--db-max-open-conns` | Maximum number of open DB connections per pool. Defaults to `20`. | +| `--disable-mfa` | Disables the email Multi-Factor Authentication (MFA). | +| `--disable-recaptcha` | Disables ReCAPTCHA for login and forgot password. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-public-key` | The public key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--ec256-private-key` | The EC256 Private Key used to sign the authentication token. This EC key needs to be at least as strong as prime256v1 (P-256). | +| `--email-sender-type` | Email Sender Type. Options: `DRY_RUN`, `TWILIO_EMAIL`, `AWS_EMAIL`. Defaults to `DRY_RUN`. | +| `--enable-bridge-integration` | Enable Bridge integration for Liquidity Sourcing. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--instance-name` | Name of the SDP instance. Example: `SDP Testnet`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | +| `--max-invitation-resend-attempts` | The maximum number of attempts to resend the invitation to the Receiver Wallets. Defaults to `3`. | +| `--metrics-port` | Port where the metrics server will be listening on. Defaults to `8002`. | +| `--metrics-type` | Metric monitor type. Options: `PROMETHEUS`. Defaults to `PROMETHEUS`. | +| `--port` | Port where the server will be listening on. Defaults to `8000`. | +| `--recaptcha-site-key` | The Google 'reCAPTCHA v2 - I'm not a robot' site key. | +| `--recaptcha-site-secret-key` | The Google 'reCAPTCHA v2 - I'm not a robot' site SECRET key. | +| `--recaptcha-v3-min-score` | The minimum score threshold for reCAPTCHA v3 (0.0 to 1.0, where 1.0 is very likely a good interaction). Only used when captcha-type is GOOGLE_RECAPTCHA_V3. Defaults to `0.5`. | +| `--reset-token-expiration-hours` | The expiration time in hours of the Reset Token. Defaults to `24`. | +| `--scheduler-payment-job-seconds` | The interval in seconds for the payment jobs that synchronize transactions between SDP and TSS. Must be greater than 5 seconds. Defaults to `30`. | +| `--scheduler-receiver-invitation-job-seconds` | The interval in seconds for the receiver invitation job that sends invitations to new receivers. Must be greater than 5 seconds. Defaults to `30`. | +| `--sep10-client-attribution-required` | If true, SEP-10 authentication requires client_domain to be provided and validated. If false, client_domain is optional. Defaults to `true`. | +| `--sep10-signing-private-key` | The private key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. | +| `--sep10-signing-public-key` | The public key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. | +| `--sep24-jwt-secret` | The JWT secret that's used to sign the SEP-24 JWT token. | +| `--single-tenant-mode` | This option enables the Single Tenant Mode feature. In the case where multi-tenancy is not required, this options bypasses the tenant resolution by always resolving to the default tenant configured in the database. | +| `--sms-sender-type` | SMS Sender Type. Options: `DRY_RUN`, `TWILIO_SMS`, `TWILIO_WHATSAPP`, `AWS_SMS`. Defaults to `DRY_RUN`. | +| `--tenant-xlm-bootstrap-amount` | The amount of the native asset that will be sent to the tenant distribution account from the host distribution account when it's created if applicable. Defaults to `5`. | +| `--twilio-account-sid` | The SID of the Twilio account. | +| `--twilio-auth-token` | The Auth Token of the Twilio account. | +| `--twilio-sendgrid-api-key` | The API key of the Twilio SendGrid account. | +| `--twilio-sendgrid-sender-address` | The email address that Twilio SendGrid will use to send emails. | +| `--twilio-service-sid` | The service ID used within Twilio to send messages. | +| `--twilio-whatsapp-from-number` | The WhatsApp Business number used to send messages (with whatsapp: prefix). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | The Twilio Content SID for WhatsApp receiver invitation template (starts with HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | The Twilio Content SID for WhatsApp receiver OTP template (starts with HX). | + +## TSS Command + +The `tss` command runs the Transaction Submission Service, which is responsible for submitting transactions to the Stellar network. + +### Usage + +```bash +stellar-disbursement-platform tss [flags] +``` + +### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--crash-tracker-type` | Crash tracker type. Options: `SENTRY`, `DRY_RUN`. Defaults to `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Maximum idle time in seconds before a connection is closed. Defaults to `10`. | +| `--db-conn-max-lifetime-seconds` | Maximum lifetime in seconds for a single connection. Defaults to `300`. | +| `--db-max-idle-conns` | Maximum number of idle DB connections retained per pool. Defaults to `2`. | +| `--db-max-open-conns` | Maximum number of open DB connections per pool. Defaults to `20`. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-public-key` | The public key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | +| `--num-channel-accounts` | Number of channel accounts to utilize for transaction submission. Defaults to `2`. | +| `--queue-polling-interval` | Polling interval (seconds) to query the database for pending transactions to process. Defaults to `6`. | +| `--tss-metrics-port` | Port where the metrics server will be listening on. Defaults to `9002`. | +| `--tss-metrics-type` | Metric monitor type. Options: `TSS_PROMETHEUS`. Defaults to `TSS_PROMETHEUS`. | + +## DB Command + +The `db` command provides utilities for database management and migrations. It performs two main functions: + +1. Running database migrations for various schemas (admin, auth, sdp, tss). +2. Setting up assets and wallets based on the network passphrase. + +### Usage + +```bash +stellar-disbursement-platform db [command] [flags] +``` + +### Subcommands + +| Command | Description | +| :------------------ | :----------------------------------------------------- | +| `admin` | Admin migrations for multi-tenant module. | +| `auth` | Authentication schema migrations. | +| `sdp` | SDP schema migrations. | +| `setup-for-network` | Set up assets and wallets based on network passphrase. | +| `tss` | TSS schema migrations. | + +--- + +### DB Admin + +The `db admin` command manages the migrations for the admin schema, which handles multi-tenancy configuration. + +#### Usage + +```bash +stellar-disbursement-platform db admin [command] [flags] +``` + +#### Subcommands + +| Command | Description | +| :-------- | :------------------------ | +| `migrate` | Schema migration helpers. | + +#### DB Admin Migrate + +The `migrate` command allows you to run migrations up or down. + +**Usage** + +```bash +stellar-disbursement-platform db admin migrate [command] [flags] +``` + +**Subcommands** + +| Command | Description | +| :------ | :---------------------------------------- | +| `up` | Migrates database up [count] migrations | +| `down` | Migrates database down [count] migrations | + +**Examples** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db admin migrate up + +# Apply the next 2 migrations +stellar-disbursement-platform db admin migrate up 2 + +# Revert the last migration +stellar-disbursement-platform db admin migrate down 1 +``` + +--- + +### DB Auth + +The `db auth` command manages the migrations for the authentication schema. + +#### Usage + +```bash +stellar-disbursement-platform db auth [command] [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--all` | Apply the command to all tenants. Either `--tenant-id` or `--all` must be set, but the `--all` option will be ignored if `--tenant-id` is set. | +| `--tenant-id` | The tenant ID where the command will be applied. | + +#### Subcommands + +| Command | Description | +| :-------- | :------------------------ | +| `migrate` | Schema migration helpers. | + +#### DB Auth Migrate + +Similar to `admin migrate`, this command accepts `up` and `down` subcommands. + +**Examples** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db auth migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db auth migrate up --all +``` + +--- + +### DB SDP + +The `db sdp` command manages the migrations for the SDP (Stellar Disbursement Platform) schema, which contains the core business logic tables. + +#### Usage + +```bash +stellar-disbursement-platform db sdp [command] [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--all` | Apply the command to all tenants. Either `--tenant-id` or `--all` must be set, but the `--all` option will be ignored if `--tenant-id` is set. | +| `--tenant-id` | The tenant ID where the command will be applied. | + +#### Subcommands + +| Command | Description | +| :-------- | :------------------------ | +| `migrate` | Schema migration helpers. | + +#### DB SDP Migrate + +Similar to `admin migrate`, this command accepts `up` and `down` subcommands. + +**Examples** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db sdp migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db sdp migrate up --all +``` + +--- + +### DB TSS + +The `db tss` command manages the migrations for the TSS (Transaction Submission Service) schema. + +#### Usage + +```bash +stellar-disbursement-platform db tss [command] [flags] +``` + +#### Subcommands + +| Command | Description | +| :-------- | :------------------------ | +| `migrate` | Schema migration helpers. | + +#### DB TSS Migrate + +Similar to `admin migrate`, this command accepts `up` and `down` subcommands. + +**Examples** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db tss migrate up +``` + +--- + +### DB Setup For Network + +The `db setup-for-network` command sets up the assets and wallets registered in the database based on the network passphrase. It inserts or updates the entries of these tables according to the configured Network Passphrase. + +#### Usage + +```bash +stellar-disbursement-platform db setup-for-network [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--all` | Apply the command to all tenants. Either `--tenant-id` or `--all` must be set, but the `--all` option will be ignored if `--tenant-id` is set. | +| `--tenant-id` | The tenant ID where the command will be applied. | + +#### Example + +```bash +# Setup for a specific tenant +stellar-disbursement-platform db setup-for-network --tenant-id + +# Setup for all tenants +stellar-disbursement-platform db setup-for-network --all +``` + +## Auth Command + +The `auth` command provides helpers for authentication management, specifically for adding users to the system. + +### Usage + +```bash +stellar-disbursement-platform auth [command] [flags] +``` + +### Subcommands + +| Command | Description | +| :--------- | :---------------------- | +| `add-user` | Add user to the system. | + +--- + +### Auth Add User + +The `auth add-user` command adds a new user to the system. The email must be unique, and the password must be at least 12 characters long. + +#### Usage + +```bash +stellar-disbursement-platform auth add-user [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--owner` | Set the user as Owner (superuser). Defaults to "false". | +| `--password` | Sets the user password. It should be at least 12 characters long. If omitted, the command will generate a random one. | +| `--roles` | Set the user roles. It should be comma-separated. Example: `role1, role2`. Available roles: `owner`, `financial_controller`, `developer`, `business`, `initiator`, `approver`. | +| `--tenant-id` | The tenant ID to which the user will be added. | + +#### Example + +To add a new user with specific roles and a password: + +```bash +stellar-disbursement-platform auth add-user mary.jane@stellar.org Mary Jane \ +--roles approver,initiator --password \ +--tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Channel Accounts Command + +The `channel-accounts` command manages channel accounts used for transaction submission. + +### Usage + +```bash +stellar-disbursement-platform channel-accounts [command] [flags] +``` + +### Flags + +| Flag | Description | +| :-- | :-- | +| `--crash-tracker-type` | Crash tracker type. Options: `SENTRY`, `DRY_RUN`. Defaults to `DRY_RUN`. | +| `--distribution-public-key` | The public key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--tss-metrics-port` | Port where the metrics server will be listening on. Defaults to `9002`. | +| `--tss-metrics-type` | Metric monitor type. Options: `TSS_PROMETHEUS`. Defaults to `TSS_PROMETHEUS`. | + +### Subcommands + +| Command | Description | +| :------- | :-------------------------------------------------- | +| `create` | Create channel accounts. | +| `delete` | Delete a specified channel account. | +| `ensure` | Ensure a specific number of channel accounts exist. | +| `verify` | Verify channel accounts exist on the network. | +| `view` | List public keys of all channel accounts. | + +--- + +### Channel Accounts Create + +The `create` command creates channel accounts. + +#### Usage + +```bash +stellar-disbursement-platform channel-accounts create [count] [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | + +--- + +### Channel Accounts Delete + +The `delete` command deletes a specified channel account from storage and on the network. + +#### Usage + +```bash +stellar-disbursement-platform channel-accounts delete [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--channel-account-id` | The ID of the channel account to delete. | +| `--delete-all-accounts` | Delete all managed channel accounts in the database and on the network. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | + +--- + +### Channel Accounts Ensure + +The `ensure` command ensures that the specified number of channel accounts exist. If they do not exist, it will create them. If more channel accounts exist than specified, it will delete the excess accounts. + +#### Usage + +```bash +stellar-disbursement-platform channel-accounts ensure [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | + +#### Example + +```bash +stellar-disbursement-platform channel-accounts ensure 5 +``` + +--- + +### Channel Accounts Verify + +The `verify` command verifies that all the channel accounts in the database exist on the Stellar network. + +#### Usage + +```bash +stellar-disbursement-platform channel-accounts verify [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--delete-invalid-accounts` | Delete channel accounts from storage that are verified to be invalid on the network. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | + +--- + +### Channel Accounts View + +The `view` command lists public keys of all channel accounts currently stored in the database. + +#### Usage + +```bash +stellar-disbursement-platform channel-accounts view [flags] +``` + +## Distribution Account Command + +The `distribution-account` command manages the distribution account. + +### Usage + +```bash +stellar-disbursement-platform distribution-account [command] [flags] +``` + +### Flags + +| Flag | Description | +| :-- | :-- | +| `--crash-tracker-type` | Crash tracker type. Options: `SENTRY`, `DRY_RUN`. Defaults to `DRY_RUN`. | +| `--distribution-public-key` | The public key of the HOST's Stellar distribution account, used to create channel accounts. | + +### Subcommands + +| Command | Description | +| :------- | :-------------------------------------------- | +| `rotate` | Rotate the distribution account for a tenant. | + +--- + +### Distribution Account Rotate + +The `rotate` command rotates the distribution account for a tenant. + +#### Usage + +```bash +stellar-disbursement-platform distribution-account rotate [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--channel-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the `distribution-seed` option. | +| `--distribution-account-encryption-passphrase` | A Stellar-compliant ed25519 private key used to encrypt and decrypt the private keys of tenants' distribution accounts. | +| `--distribution-seed` | The private key of the HOST's Stellar distribution account, used to create channel accounts. | +| `--horizon-url` | The URL of the Stellar Horizon server where this application will communicate with. Defaults to `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | The max base fee for submitting a Stellar transaction. Defaults to `10000`. | +| `--tenant-id` | The tenant ID where the command will be applied. | +| `--tenant-xlm-bootstrap-amount` | The amount of the native asset that will be sent to the tenant distribution account from the host distribution account when it's created if applicable. Defaults to `5`. | + +#### Example + +To rotate the distribution account for a specific tenant: + +```bash +stellar-disbursement-platform distribution-account rotate --tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Message Command + +The `message` command provides messenger related commands. + +### Usage + +```bash +stellar-disbursement-platform message [command] [flags] +``` + +### Flags + +| Flag | Description | +| :-- | :-- | +| `--aws-access-key-id` | The AWS access key ID. | +| `--aws-region` | The AWS region. | +| `--aws-secret-access-key` | The AWS secret access key. | +| `--aws-ses-sender-id` | The email address that AWS will use to send emails. Uses AWS SES. | +| `--aws-sns-sender-id` | The sender ID of the aws account sending the SMS message. Uses AWS SNS. | +| `--message-sender-type` | Message Sender Type. Options: `TWILIO_SMS`, `TWILIO_WHATSAPP`, `TWILIO_EMAIL`, `AWS_SMS`, `AWS_EMAIL`, `DRY_RUN`. | +| `--twilio-account-sid` | The SID of the Twilio account. | +| `--twilio-auth-token` | The Auth Token of the Twilio account. | +| `--twilio-sendgrid-api-key` | The API key of the Twilio SendGrid account. | +| `--twilio-sendgrid-sender-address` | The email address that Twilio SendGrid will use to send emails. | +| `--twilio-service-sid` | The service ID used within Twilio to send messages. | +| `--twilio-whatsapp-from-number` | The WhatsApp Business number used to send messages (with `whatsapp:` prefix). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | The Twilio Content SID for WhatsApp receiver invitation template (starts with HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | The Twilio Content SID for WhatsApp receiver OTP template (starts with HX). | + +### Subcommands + +| Command | Description | +| :------ | :-------------- | +| `send` | Send a message. | + +--- + +### Message Send + +The `send` command sends a message to a recipient. + +#### Usage + +```bash +stellar-disbursement-platform message send [flags] +``` + +#### Flags + +| Flag | Description | +| :-- | :-- | +| `--email` | The email to send the message to. Mandatory if sending an email. | +| `--message` | The text of the message to be sent. | +| `--phone-number` | The phone number to send the message to, in E.164. Mandatory if sending an SMS. | +| `--title` | The title to be set in the email. Mandatory if sending an email. | + +#### Example + +```bash +# Send an SMS +stellar-disbursement-platform message send --phone-number "+1234567890" --message "Hello World" --message-sender-type TWILIO_SMS + +# Send an Email +stellar-disbursement-platform message send --email "user@example.com" --title "Hello" --message "Hello World" --message-sender-type AWS_EMAIL +``` diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx new file mode 100644 index 0000000000..3badcf6961 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx @@ -0,0 +1,239 @@ +--- +title: Configuration +description: Understand the configuration options available for the Stellar Disbursement Platform (SDP) +keywords: [SDP, configuration] +sidebar_position: 40 +--- + +Stellar Disbursement Platform services can be configured using a set of configuration options that are passed to the command line or set as environment variables. Depending on how you're using and deploying the SDP, these configurations can be set in a ConfigMap in Kubernetes, as environment variables in a Docker container, passed in as command line arguments, etc. + +In this section we will discuss the different configuration options available for the SDP. + +:::tip[Notes] + +- Configurations that are tagged with 🔑 are sensitive and should be stored securely. +- All configurations can be passed in as either environment variables or CLI flags. For instance, the env var `BASE_URL` could be passed in through the `--base-url` flag. CLI flags take priority over env vars, even though env vars are more convenient. + +::: + +## SDP Core Service + +For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform serve --help +``` + + + +### Operational Configuration + +Operational Configuration allows controlling metrics, logging, and other operational aspects of the SDP Core Service. + +- `PORT` - The port on which the SDP Core Service will listen for incoming HTTP requests. Default: 8000. +- `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". +- `METRICS_PORT` - The port on which the SDP Core Service will expose its metrics. Default: 8002. +- `METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". +- `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". +- `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. +- `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". +- `BASE_URL` - The SDP backend server's base URL. Default: "http://localhost:8000". Tenant-specific URLs will be configured during the [tenant provisioning process](./advanced-configuration#provisioning-tenants). +- `SDP_UI_BASE_URL` - The SDP UI/dashboard Base URL used to send the invitation link when a new user is created. Tenant-specific URLs will be configured during the [tenant provisioning process](./advanced-configuration#provisioning-tenants). + +### Database Configuration + +The following configurations are related to the PostgreSQL database used by the SDP Core Service. + +- `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". +- `DB_MAX_OPEN_CONNS` - Maximum open connections per pool to the database. Default: 20. +- `DB_MAX_IDLE_CONNS` - Maximum idle connections retained in the pool. Default: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Close idle connections after N seconds. Default: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recycle connections after N seconds. Default: 300. + +### Messaging Configuration + +Messaging Configuration allows configuring the messaging service used to send messages to recipients and sdp dashboard users. The default configuration is set to "DRY_RUN" which means no messages will be sent and the messages will be logged to the console. This is recommended for testing purposes only. + +- `EMAIL_SENDER_TYPE`: The messenger type used to send invitations to new dashboard users. Options: "DRY_RUN", "TWILIO_EMAIL", "AWS_EMAIL". Default: "DRY_RUN". +- `SMS_SENDER_TYPE`: The messenger type used to send SMS messages to recipients. Options: "DRY_RUN", "TWILIO_SMS", "TWILIO_WHATSAPP", "AWS_SMS". Default: "DRY_RUN". + +#### AWS Configuration + +The following configurations are required when using AWS SES or SNS to send emails or SMS messages. + +- `AWS_ACCESS_KEY_ID` - 🔑 The AWS access key ID. +- `AWS_REGION` - The AWS region where the SES service is available. +- `AWS_SECRET_ACCESS_KEY` - 🔑 The AWS secret access key. +- `AWS_SES_SENDER_ID` - The email that AWS SES will use as the sender when sending emails. Required when `EMAIL_SENDER_TYPE` is set to "AWS_EMAIL". +- `AWS_SNS_SENDER_ID` - The sender ID to use when sending SMS messages using AWS SNS. Required when `SMS_SENDER_TYPE` is set to "AWS_SMS". + +#### Twilio Configuration + +The following configurations are required when `SMS_SENDER_TYPE=TWILIO_SMS`. + +- `TWILIO_ACCOUNT_SID` - 🔑 The Twilio account SID. +- `TWILIO_AUTH_TOKEN` - 🔑 The Twilio auth token. +- `TWILIO_SERVICE_SID` - The Twilio service SID. + +The following configurations are required when `SMS_SENDER_TYPE=TWILIO_WHATSAPP`. + +- `TWILIO_ACCOUNT_SID` - 🔑 The Twilio account SID. +- `TWILIO_AUTH_TOKEN` - 🔑 The Twilio auth token. +- `TWILIO_SERVICE_SID` - The Twilio service SID. +- `TWILIO_WHATSAPP_FROM_NUMBER` - The WhatsApp Business number used to send messages (with whatsapp: prefix). +- `TWILIO_WHATSAPP_RECEIVER_INVITATION_TEMPLATE_SID` - The Twilio Content SID for WhatsApp receiver invitation template (starts with HX). +- `TWILIO_WHATSAPP_RECEIVER_OTP_TEMPLATE_SID` - The Twilio Content SID for WhatsApp receiver OTP template (starts with HX). + +The following configurations are required when `EMAIL_SENDER_TYPE=TWILIO_EMAIL`. + +- `TWILIO_SENDGRID_API_KEY` - 🔑 The API key for the Twilio SendGrid (email) service. +- `TWILIO_SENDGRID_SENDER_ADDRESS` - The email address used to send emails via Twilio SendGrid. + +#### General Messaging Configuration + +- `MAX_INVITATION_RESEND_ATTEMPTS` - The maximum number of attempts to (auto) resend the invitation to the Receiver Wallets. Default: 3. + +### Stellar Configuration + +Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. + +- `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". +- `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". +- `SEP10_SIGNING_PUBLIC_KEY` - The public key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. +- `SEP10_SIGNING_PRIVATE_KEY` - 🔑 The private key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. +- `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. +- `SEP10_CLIENT_ATTRIBUTION_REQUIRED` - Determines if the SEP-10 client attribution is required. Default: true. + +#### Channel Accounts Configuration + +The following configuration is required for using the [channel-accounts CLI](./cli-manual#channel-accounts-command) to manage channel accounts. + +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar ed25519 secret key (starting with `S`) used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of `DISTRIBUTION_SEED`. + +#### Distribution Accounts Configuration + +The following configurations are related to the distribution accounts used to send funds to recipients. This configuration should match the configuration in the SDP Core Service. + +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar ed25519 secret key (starting with `S`) used to encrypt/decrypt the in-memory distribution accounts' private keys. +- `DISTRIBUTION_PUBLIC_KEY` - The public key of the HOST's Stellar distribution account. Used to disburse funds, create channel accounts and tenant distribution accounts. +- `DISTRIBUTION_SEED` - 🔑 The private key of the HOST's Stellar distribution account. Used to disburse funds, create channel accounts and tenant distribution accounts. + +### Security Configuration + +Security Configuration allows configuring the security aspects of the SDP Core Service. + +- `CORS_ALLOWED_ORIGINS` - Specifies the domains allowed to make cross-origin requests. "_" means all domains are allowed. Domains can contain wildcards, e.g., "https://_.example.com". +- `SEP24_JWT_SECRET` - 🔑 The secret used to sign the JWT token for SEP-24 transactions. This secret is used during the receiver wallet registration flow. + +#### Dashboard Authentication Configuration + +The following configurations are related to dashboard user authentication and authorization. + +- `RESET_TOKEN_EXPIRATION_HOURS` - The expiration time in hours of the Reset Password Token. Default: 24 (hours). +- `EC256_PUBLIC_KEY` - The EC256 Public Key used to validate the token signature. This EC key needs to be at least as strong as prime256v1 (P-256). +- `EC256_PRIVATE_KEY` - 🔑 The EC256 Private Key used to sign the authentication token. This EC key needs to be at least as strong as prime256v1 (P-256). +- `DISABLE_MFA` - Disables Multi-Factor Authentication (MFA) for the SDP dashboard users. +- `DISABLE_RECAPTCHA` - Disables Google reCAPTCHA v2 for the SDP dashboard users. This flag doesn't affect the reCAPTCHA used during the SEP-24 flow. + +#### Recaptcha Configuration + +The following configurations are required when using Google reCAPTCHA v2 to protect the SDP Core Service from bots. ReCaptcha is used both for dashboard users and receivers of funds during the SEP-24 flow. + +- `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. +- `RECAPTCHA_SITE_SECRET_KEY` - 🔑 The reCAPTCHA site secret key used to validate reCAPTCHA responses. + +### Background Jobs Configuration + +- `SCHEDULER_PAYMENT_JOB_SECONDS`: Interval in seconds for the job that synchronizes payments between SDP and TSS. Minimum is 5s. +- `SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS`: Interval in seconds for the job that submits receiver invitations. Minimum is 5s. + +### Multi-tenancy Configuration + +- `ADMIN_ACCOUNT`: The username of the admin account used to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_API_KEY`: The api key of the admin accountused to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_PORT`: the port of the Admin server used to create and manage tenants. Default is 8003. +- `INSTANCE_NAME`: the name of the SDP instance to be displayed in the `stellar.toml` file. Example: "SDP Testnet". +- `SINGLE_TENANT_MODE`: When set to `"true"`, it enables the single-tenant mode, which is useful for local development or single-tenant setups. In addition to set it to true, you'll need to configure the default tenant by calling the [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx) request. +- `TENANT_XLM_BOOTSTRAP_AMOUNT`: The amount of XLM that the HOST Stellar account will deposit deposited to the tenant distribution account for tenant bootstrap. + +### Bridge Integration Configuration + +The following configurations are required when using the Bridge Integration. + +- `ENABLE_BRIDGE_INTEGRATION` - Determines if the bridge integration is enabled. +- `BRIDGE_BASE_URL` - The base URL of the bridge API. Default: `"https://api.bridge.xyz"`. +- `BRIDGE_API_KEY` - 🔑 The API key for the bridge integration. Required if `ENABLE_BRIDGE_INTEGRATION` is set to true. + +## Transaction Submission Service (TSS) + +For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform tss --help +``` + + + +### General Configuration + +- `QUEUE_POLLING_INTERVAL` - Polling interval (seconds) to query the database for pending transactions to process. Default: 6. + +### Operational Configuration + +Operational Configuration allows controlling metrics, logging, and other operational aspects of the Transaction Submission Servic (TSS) + +- `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". +- `TSS_METRICS_PORT` - The port on which the TSS will expose its metrics. Default: 9002. +- `TSS_METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". +- `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". +- `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. +- `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". + +### Database Configuration + +The following configurations are related to the PostgreSQL database used by the SDP Core Service. + +- `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". +- `DB_MAX_OPEN_CONNS` - Maximum open connections per pool to the database. Default: 20. +- `DB_MAX_IDLE_CONNS` - Maximum idle connections retained in the pool. Default: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Close idle connections after N seconds. Default: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recycle connections after N seconds. Default: 300. + +### Stellar Configuration + +Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. + +- `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". +- `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". +- `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. + +#### Channel Accounts Configuration + +The following configurations are required for using channel accounts to submit transactions to the Stellar network. + +- `NUM_CHANNEL_ACCOUNTS` - Number of channel accounts to utilize for transaction submission. Default: 2. +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar ed25519 secret key (starting with `S`) used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the 'DISTRIBUTION_SEED' option. + +#### Distribution Accounts Configuration + +The following configurations are related to the distribution accounts used to send funds to recipients. This configuration should match the configuration in the SDP Core Service. + +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar ed25519 secret key (starting with `S`) used to encrypt/decrypt the in-memory distribution accounts' private keys. +- `DISTRIBUTION_PUBLIC_KEY` - The public key of the HOST's Stellar distribution account. Used to disburse funds, create channel accounts and tenant distribution accounts. +- `DISTRIBUTION_SEED` - 🔑 The private key of the HOST's Stellar distribution account. Used to disburse funds, create channel accounts and tenant distribution accounts. + +## Dashboard + +The SDP Dashboard is a web application that allows users to manage their accounts, view transaction history, and more. Environment variables can be set either on a global `window._env_` object or as `process.env` variables. All environment variables used in this repo are in `src/constants/envVariables.ts` file, including types. The default location of the `window._env_` object is `public/settings/env-config.js`. + +### General Configuration + +- `API_URL` - The base URL of the SDP Core Service. Default: "http://localhost:8000". +- `STELLAR_EXPERT_URL` - The base URL of the Stellar Expert explorer. Default: "https://stellar.expert/explorer/testnet". +- `HORIZON_URL` - The base URL of the Horizon server. Default: "https://horizon-testnet.stellar.org". +- `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. This key needs to match the key used in the SDP Core Service. +- `SINGLE_TENANT_MODE` - When set to `"true"`, it enables the single-tenant mode, which is useful for local development or single-tenant setups. In addition to set it to true, you'll need to configure the default tenant by calling the [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx) request. Default: "false". diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx new file mode 100644 index 0000000000..98ece2b292 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx @@ -0,0 +1,112 @@ +--- +title: Deployment +sidebar_position: 30 +--- + +## Deployment via Helm Charts + +### Minimum System Requirements + +- **Stellar Accounts**: You will need a **Distribution Account** (funded) and a **SEP-10 Signing Account**. +- **Certificates**: When running the SDP in a multi-tenant configuration, you will need to acquire wildcard TLS certificates to facilitate tenant provisioning as the SDP relies on subdomains to differentiate between tenants. This will allow you to provision tenants without having to manually configure TLS certificates for each tenant. You can use a service like [Let's Encrypt](https://letsencrypt.org/) or [Namecheap](https://www.namecheap.com/security/ssl-certificates/) to acquire these certificates. + +| Component | Requirement | Notes | +| :-- | :-- | :-- | +| **Kubernetes** | v1.19+ | For Helm deployment | +| **Helm** | v3.14.0+ | For Helm deployment | +| **PostgreSQL** | v14.0+ | Required for both deployment methods | +| **RAM** | 4GB+ | Minimum memory recommended for running the full stack in single tenant mode | + +### Installing the Chart + +#### 1. Add the Stellar Helm Repository + +Add the official Stellar Helm chart repository to your local Helm client: + +```shell +helm repo add stellar https://helm.stellar.org/charts +``` + +#### 2. Prepare Configuration + +Download the minimal configuration file to serve as a baseline: + +```shell +curl -LJO https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/main/helmchart/sdp/minimal-values.yaml +``` + +The following parameters can be set in the `minimal-values.yaml` file or overridden directly via the CLI during installation: + +- `global.distributionPublicKey`: Public key of the distribution account. +- `global.distributionPrivateKey`: Private key of the distribution account. +- `global.sep10PublicKey`: Public key for SEP-10 authentication. +- `global.sep10PrivateKey`: Private key for SEP-10 authentication. +- `global.isPubnet`: Set to `true` for Mainnet. + +Refer to the [Helm Chart README](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#parameters) for a complete list of parameters. + +:::tip + +There is a more detailed explanation of how to configure the SDP in the [Configuration Guide](configuring-sdp). + +::: + +#### 3. Install the Chart + +Install the chart using your customized values file. You can override values directly via the CLI or modify the `minimal-values.yaml` file. + +```shell +helm install sdp -f minimal-values.yaml stellar/stellar-disbursement-platform \ + --set "global.distributionPublicKey=" \ + --set "global.distributionPrivateKey=" \ + --set "global.sep10PublicKey=" \ + --set "global.sep10PrivateKey=" +``` + +## Deployment via Docker Compose + +This section outlines how to deploy the SDP using Docker Compose for a production-like environment. Unlike the development setup, this configuration uses pre-built production images and requires explicit configuration of environment variables and secrets. + +### Minimum System Requirements + +- **Stellar Accounts**: You will need a **Distribution Account** (funded) and a **SEP-10 Signing Account**. +- **Network Access**: Outbound access to the Stellar network (Horizon/Soroban) and any third-party integrations (Twilio, AWS SES, etc.). + +| Component | Requirement | Notes | +| :-- | :-- | :-- | +| **Docker** | v20.10+ | Required for container orchestration | +| **RAM** | 4GB+ | Minimum memory recommended for running the full stack | + +### Deployment Steps + +#### 1. Clone the Repository + +```shell +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend +``` + +#### 2. Create Environment File + +Copy the example environment file. + +```shell +cp dev/.env.example dev/.env +``` + +#### 3. Configure Environment Variables + +Edit `dev/.env` and populate the following variables with your Stellar account keys: + +- `DISTRIBUTION_PUBLIC_KEY` +- `DISTRIBUTION_SEED` +- `SEP10_SIGNING_PUBLIC_KEY` +- `SEP10_SIGNING_PRIVATE_KEY` + +For mainnet deployment, set: _ `NETWORK_TYPE=pubnet` _ `NETWORK_PASSPHRASE=Public Global Stellar Network ; September 2015` _ `HORIZON_URL=https://horizon.stellar.org` _ `DISABLE_MFA=false` (Enforced for security) + +#### 4. Start the Services + +```shell +docker compose -f dev/docker-compose.yml up -d +``` diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx new file mode 100644 index 0000000000..7fee372d04 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx @@ -0,0 +1,78 @@ +--- +title: Architecture +sidebar_position: 20 +--- + +The Stellar Disbursement Platform consists of three services deployed together: + +- **Dashboard**: the user interface administrators use to initiate and track the progress of disbursements +- **SDP Core Service**: the core backend service that performs several functions: + - **Dashboard API**: the API used by the front-end UI for all disbursement requests. The API is documented [here](../api-reference) + - **Admin API**: the API used by the host organization to manage tenant provisioning and configuration. The API is documented [here](../api-reference/admin) + - **Messaging Service**: a recurring process that sends text messages to users prompting them to download the wallet selected for a particular disbursement and verify their phone with an OTP + - **Wallet Registration**: a web application registers a recipient by collecting and verifying their OTP code and verification information via Stellar’s [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) protocol +- **Transaction Submission Service**: the service that submits all payment transactions to the Stellar network. This service is designed to maximize payment throughput, handle queuing, and graceful resubmission/error handling + +## Dependencies {#dependencies} + +- **Container Orchestration**: the SDP is packaged as Docker containers and can be deployed to Kubernetes or AWS Fargate. SDF provides a Helm Chart for Kubernetes +- **Postgres**: the SDP uses a Postgres database server for all of its services +- **Twilio or AWS SNS and SES**: the SDP’s messaging service uses SMS/WhatsApp messages via Twilio or AWS SNS and administrative emails for organization account setup and recovery via AWS SES or Twilio SendGrid +- **Stellar Accounts**: + - Distribution Account: the SDP requires access to at least one funded Stellar account to make payments to the recipient + - SEP-10 Auth Account: the SDP requires a Stellar account for the mutual authentication protocol [SEP-10: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md) used to connect to wallet applications + +## Architecture Diagram + +![Architecture Diagram](/assets/SDP/SDP2-2.png) + +### User Roles {#user-roles} + +The SDP defines the following user roles: + +- **Host Admin**: the organization that hosts the SDP instance and manages tenant provisioning and configuration via the `Tenant Admin` API +- **Dashboard User**: a user that belongs to a tenant and uses the SDP Dashboard to create and manage disbursements, recipients, and other tenant-specific data. +- **API User**: a user that belongs to a tenant and uses the `Dashboard API` to create and manage disbursements, recipients, and other tenant-specific data programmatically +- **Receivers**: the end users that receive the funds sent via the SDP. Receivers can either use a wallet application that supports SEP-24 for automatic registration, or they can receive funds directly to their Stellar account. + +### Workflow {#workflow} + +1. Host admin uses the `Tenant Admin` API to provision and manage tenants. +2. `Dashboard User` and `API User` use the SDP Core Service to send disbursements and manage / invite other users. This can be done via the Dashboard UI or directly via the `Dashboard API`. +3. For payments that require SEP-24 registration, the `SDP Core Service` sends a message to notify the receivers. The message contains a deeplink that launches the target wallet, which in turn triggers the **SEP-24 deposit flow** and registers the receivers. +4. The TSS pulls payments that ready to be processed then submits them to the Stellar Network through Channel Accounts. + +## Database & Schemas {#database} + +The SDP uses a Postgres database for all of its services. The database schema is managed by the SDP Core Service and is versioned in the codebase. The database schema is designed to be tenant-aware, meaning that each tenant has its own set of tables and data. This allows the SDP to be multi-tenant and support multiple organizations using the same instance. + +There are 3 types of schemas in the database: + +- **Admin Schema**: contains tables for managing tenants. This schema is used by the Admin API to manage tenant configuration and provisioning. +- **TSS Schema**: contains tables for managing transactions. This schema is used by the Transaction Submission Service to manage the state of payment transactions. +- **Tenant Schemas**: each tenant has its own schema that contains tables for managing disbursements, recipients, and other tenant-specific data. These schemas are prefixed with `sdp_`. + +## Multi-tenancy {#multi-tenancy} + +The SDP can be deployed in a multi-tenant configuration, where multiple organizations share the same instance of the SDP. Each organization is referred to as a tenant and has its own set of data and configuration. A host organization can manage multiple tenants and manage their configuration through the Admin API. + +### Tenant Resolution {#tenant-resolution} + +The SDP uses a tenant resolution strategy to determine which tenant a request belongs to. Tenant resolution is only required for unauthenticated requests, as authenticated requests include the tenant information already in the JWT token. + +- **Header**: the `SDP-Tenant-Name` header is used to specify the tenant name in the request. When present, this header is used to attempt resolving the tenant. +- **Subdomain**: the SDP can use the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. + +Resolution priority goes as follows: JWT token (authenticated requests) > Header > Subdomain. + +#### Single Tenant Mode {#single-tenant-mode} + +When single tenant mode is enabled using the `SINGLE_TENANT_MODE` environment variable, all tenants will automatically resolve to the default tenant. A default tenant is set by calling the API [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). + +Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. + +#### Subdomain Resolution {#subdomain-resolution} + +When running the SDP in multi-tenant mode, the SDP uses the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. This allows the SDP to differentiate between tenants without requiring the tenant name to be specified in the request. + +The subdomain resolution is particularly important for the Wallet Registration process, as the SDP relies on subdomains to differentiate between tenants during the SEP-24 deposit flow. Home domains, which contain the tenant name as a subdomain, are used during the registration process by the SDP to identify the tenant and route the wallet-registration request to the correct tenant context. diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets.mdx new file mode 100644 index 0000000000..f6f4b3e8df --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets.mdx @@ -0,0 +1,250 @@ +--- +title: Embedded Wallets +description: Learn how to use Embedded Wallets to enable receivers without existing Stellar wallets to receive disbursements using passkey authentication. +keywords: [embedded wallets, passkeys, WebAuthn, smart contracts, disbursements] +sidebar_position: 50 +--- + +# Embedded Wallets + +## Introduction + +Embedded Wallets allow receivers to receive disbursements without needing to download or manage a separate wallet application. When you create a disbursement with Embedded Wallets as the target wallet provider, the SDP automatically creates a lightweight, passkey-secured smart contract wallet for each receiver. + +### Why Use Embedded Wallets? + +Embedded Wallets significantly reduce friction for receivers who don't have an existing Stellar wallet: + +- **No App Download Required**: Receivers don't need to download a separate wallet application +- **Passwordless Authentication**: Uses passkeys (biometric or device-based authentication) instead of passwords +- **Phishing-Resistant**: Built on WebAuthn standards that prevent credential theft +- **Simple User Experience**: Receivers can claim their funds with just a few clicks + +### Limitations + +Before enabling Embedded Wallets, note the current limitations: + +- **No exchange transfers**: Embedded wallets cannot send directly to exchanges. +- **No built-in offramp**: Offramping must be handled out-of-band (for example, a direct transfer to a user-provided address). +- **Single wallet per receiver**: Each receiver can create only one embedded wallet + +### Key Concepts + +**Smart Contract Wallets**: Embedded Wallets are Stellar smart contract accounts that are deployed on-chain when a receiver creates their passkey. These contracts are controlled by the receiver's passkey credential. + +**Passkeys**: A modern authentication method that replaces passwords with cryptographic keys stored securely on the user's device, unlocked with biometrics (fingerprint, Face ID, etc.) or device PIN. + +**SEP-45**: A Stellar web authentication protocol for contract accounts (`C...`) that lets wallets prove control of a smart contract wallet and obtain a JWT session token from a service. The SDP uses SEP-45 during SEP-24 flows to verify that receivers control their embedded wallets. + +--- + +## What are Passkeys? + +Passkeys are a replacement for passwords that provide stronger security and a better user experience. Instead of remembering and typing a password, users authenticate with biometrics (like fingerprint or facial recognition) or their device's PIN/pattern. + +### How Passkeys Work + +When a receiver creates an embedded wallet: + +1. The browser or device generates a **cryptographic key pair** (public key and private key) +2. The **private key** is stored securely on the receiver's device and never leaves it +3. The **public key** is sent to the SDP and used to create the smart contract wallet +4. When signing in later, the receiver uses biometrics to unlock their private key + +### Why Passkeys are More Secure + +**Phishing-Resistant**: Unlike passwords, passkeys are cryptographically bound to your domain. Even if a receiver visits a fake website, their passkey won't work there. + +**Automatically Unique**: Each passkey is unique per service. There's no risk of password reuse across sites. + +**Breach-Resistant**: The SDP only stores public keys. Even if the database is compromised, attackers cannot use public keys to authenticate. + +**No Weak Passwords**: Users can't create weak or easily-guessed credentials. All passkeys use strong cryptography. + +:::info Learn More About Passkeys + +For more details about passkey technology, visit [passkeys.dev](https://passkeys.dev/docs/intro/what-are-passkeys/) or read about the [WebAuthn specification](https://www.w3.org/TR/webauthn/). + +::: + +--- + +## How It Works + +The Embedded Wallet flow includes the following steps: + +1. **Disbursement Creation**: An administrator creates a disbursement and selects "Embedded Wallet" as the wallet provider +2. **Invitation Sent**: The SDP sends an invitation link to each receiver via SMS or email. The link is unique per receiver. +3. **Passkey Creation**: The receiver clicks the link and creates a passkey using their device's biometric authentication +4. **Wallet Deployment**: The SDP deploys a smart contract wallet on the Stellar network, controlled by the receiver's passkey +5. **Verification**: The receiver completes identity verification (e.g., entering an OTP or date of birth) +6. **Payment Transfer**: Once verified, the SDP automatically transfers the disbursement funds to the receiver's contract wallet + +:::danger + +Each link is unique per receiver. Treat it as sensitive: if a link is leaked and you have **no verification** enabled, an attacker could create the receiver’s wallet and claim the funds. Skipping verification should only be done in low-risk scenarios and with small disbursement amounts. + +::: + +### Behind the Scenes + +When a receiver logs in with their passkey, several things happen: + +- The frontend uses **WebAuthn** to authenticate the receiver with their biometric or device PIN +- The backend verifies the authentication using the stored public key +- A **wallet-auth JWT** is generated for SDP APIs (e.g., profile and RPC access) +- The SDP **sponsors transactions** on behalf of the receiver, covering all network fees +- Payments are made using **Stellar Asset Contract (SAC)** transfers to the smart contract address + +--- + +## Prerequisites + +Before using Embedded Wallets, ensure your SDP instance is properly configured: + +1. **Backend Configuration**: Embedded Wallets require specific environment variables to be set. See the [Embedded Wallets Configuration](./advanced-configuration#embedded-wallets-configuration) section in the Advanced Configuration guide. + +2. **Frontend HTTPS Requirement**: The frontend dashboard **must** be served over HTTPS for passkeys to work. WebAuthn requires a secure context and will not function over plain HTTP. + +3. **Network Selection**: Deploy the SEP-45 contract and the embedded wallet Wasm. + +For detailed configuration instructions, see the [Embedded Wallets Configuration](./advanced-configuration#embedded-wallets-configuration) section. + +--- + +## Using Embedded Wallets + +### Step 1: Create a Disbursement with Embedded Wallet + +When creating a new disbursement, select **"Embedded Wallet"** as the wallet provider in the disbursement details form. + +![Creating a disbursement with Embedded Wallet selected](/assets/SDP/SDP46.png) + +**What to configure:** + +- **Registration Contact Type**: Choose how receivers will be contacted (Email or SMS) +- **Wallet Provider**: Select "Embedded Wallet" from the dropdown +- **Asset**: Choose the asset to disburse (e.g., USDC, XLM) +- **Verification Type**: Select what information receivers must verify (e.g., PIN, date of birth) + +:::note + +There is also a "None" option, but using it is only recommended for low-risk scenarios due to security concerns (e.g. disbursing small amounts). + +::: + +Once you've uploaded your disbursement CSV file and submitted the disbursement, the SDP will begin sending invitations to all receivers in the list. + +--- + +### Step 2: Receiver Creates Passkey + +Receivers will receive an invitation message (via SMS or email) with a secure link to create their embedded wallet. The link format looks like this: + +```j +https://your-tenant.sdp.stellar.org/wallet?asset=native&token=c09bd254-b77a-4685-bc18-377231484267&signature=26b48d7ce... +``` + +:::danger Reminder + +Each link is unique per receiver. Treat it as sensitive: if a link is leaked and you have **no verification** enabled, an attacker could create the receiver’s wallet and claim the funds. Skipping verification should only be done in low-risk scenarios and with small disbursement amounts. + +We also recommend enabling verification because it requires users to authenticate via SEP-45 before receiving funds. This confirms their passkey works correctly. This helps avoid cases where accounts are created and funds disbursed, but users are prevented from accessing the wallet due to passkey issues that would have been caught during verification. + +::: + +When the receiver clicks the link, they'll see a page inviting them to create their wallet account: + +![Invitation to create an embedded wallet with passkey](/assets/SDP/SDP47.png) + +**The passkey creation process:** + +1. The receiver clicks **"Log in with passkey"** +2. Their browser or device prompts them to create a passkey (first-time users) or authenticate with an existing passkey (returning users) +3. For new users, they'll scan their fingerprint, face, or enter their device PIN +4. The browser generates a cryptographic key pair securely on the device + +**What happens behind the scenes:** + +- The frontend calls `POST /embedded-wallets/passkey/registration/start` with the invitation token +- The backend validates the token and initiates a WebAuthn registration ceremony +- After biometric authentication, the frontend calls `POST /embedded-wallets/passkey/registration/finish` with the credential +- The backend queues a smart contract wallet deployment transaction with the public key +- The Transaction Submission Service (TSS) deploys the contract to the Stellar network +- Once deployed, the receiver's wallet is ready to receive funds + +:::tip Returning Users + +If a receiver already has a passkey for a different disbursement, they can simply authenticate with their existing passkey instead of creating a new one. The same passkey can be used across multiple disbursements. + +::: + +--- + +### Step 3: Complete Verification + +After creating their passkey, receivers are prompted to complete verification before they can receive funds: + +![Verification prompt after wallet creation](/assets/SDP/SDP48.png) + +The verification step ensures that the receiver is who they claim to be. Depending on how you configured the disbursement, receivers may need to: + +- Enter an **OTP (One-Time Password)** sent to their email or phone +- Provide their **date of birth** +- Enter a **PIN** that was shared with them +- Provide **national ID** information + +**What happens after verification:** + +1. The receiver submits their verification information +2. The SDP validates the information against the receiver record +3. If verification succeeds, the receiver wallet status changes from `READY` to `REGISTERED` +4. The SDP automatically initiates the payment to the receiver's contract wallet address + +:::info Verification Flow + +The verification process uses the SDP's native SEP-24 implementation. The receiver authenticates with a SEP-24 JWT token that's generated during the passkey authentication flow. + +For background on SEP-45 (contract-account web authentication), see [SEP-0045](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md). + +::: + +--- + +### Step 4: Receiving Funds + +Once verification is complete, the SDP automatically transfers the disbursement amount to the receiver's smart contract wallet address. + +**Payment Process:** + +1. The SDP queues a payment transaction to the receiver's contract address +2. The payment uses a **Stellar Asset Contract (SAC) transfer** to move funds from the distribution account to the contract wallet +3. The transaction is **fee-sponsored** by the distribution account, so the receiver pays nothing +4. Once confirmed on the network, the funds are available in the receiver's embedded wallet + +**What receivers see:** + +- The embedded wallet interface displays their asset balance +- They can view their wallet address (a Stellar C-address starting with "C") +- They can initiate transactions to send funds or withdraw to fiat + +## External Resources + +To learn more about the technologies behind Embedded Wallets, check out these resources: + +### Passkeys & WebAuthn + +- [passkeys.dev](https://passkeys.dev/) - Comprehensive guide to passkeys +- [WebAuthn Specification](https://www.w3.org/TR/webauthn/) - W3C standard for web authentication +- [FIDO Alliance](https://fidoalliance.org/) - The organization behind passkey standards + +### Stellar Protocols + +- [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) - Interactive deposit/withdrawal flow +- [SEP-45: Smart Contract Domain Verification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md) - Web authentication for smart contracts +- [Stellar Asset Contract (SAC)](https://developers.stellar.org/docs/learn/smart-contract-internals/stellar-asset-contract) - Token standard for Stellar smart contracts + +### Smart Contracts + +- [Soroban Documentation](https://soroban.stellar.org/) - Stellar's smart contract platform +- [Contract Address Format](https://developers.stellar.org/docs/learn/encyclopedia/contract-development/types/custom-types#addresses) - Understanding C-addresses vs G-addresses diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx new file mode 100644 index 0000000000..0f33ed189c --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx @@ -0,0 +1,110 @@ +--- +title: Getting Started +sidebar_position: 10 +--- + +This guide covers running the Stellar Disbursement Platform locally, sending a sample disbursement, and claiming it through the demo wallet on Testnet. Treat this walkthrough as a learning environment rather than the path for production deployments. + +### Prerequisites + +- **Docker:** Make sure you have Docker installed on your system. If not, you can download it from [here](https://www.docker.com/products/docker-desktop) and start it once installed. +- **Git:** You will need Git to clone the repository. You can download it from [here](https://git-scm.com/downloads). +- **Go:** Required to generate your environment file. Install from [here](https://golang.org/dl/). +- **jq:** Useful for optional scripts and diagnostics. You can download it from [here](https://jqlang.org/download/) + +For macOS, Linux, you can install with Homebrew: + +```bash +brew install --cask docker +brew install git go jq +``` + +### Clone the repository + +```bash +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend +``` + +### Run the wizard + +```bash +make setup +``` + +At the prompts, choose according to below. The wizard generates and funds the SEP-10 signer and distribution accounts (testnet), starts Docker, and prints tenant credentials. + +``` +? Select an existing run configuration or create new: +▸ Create new configuration +✔ Setup name (optional): +? Select network: +▸ testnet +? Select tenant mode: +▸ single-tenant +? Account setup: +▸ Generate new accounts +? Launch local environment now (project=sdp-sdp-test, setup=)? [Y/n] Y +? Initialize tenants and users? [y/N] Y +``` + +After completion you should see: + +``` +🎉🎉🎉🎉 SUCCESS! 🎉🎉🎉🎉 +Single tenant mode - Login URL: +🔗Default tenant: http://localhost:3000 + username: owner@default.local password: Password123! +``` + +### Log into the SDP + +Open http://localhost:3000 and log in using the admin credentials generated by the setup wizard (organization: default). ![Login](/assets/SDP/SDP32.png) + +### Send a test disbursement + +Click `New Disbursement +` on the dashboard; you’ll see a funded distribution account ready to use: + +- Choose phone number as the Registration Contact Type. This is the channel recipients will use to receive messages. +- Select XLM as the asset to disburse. +- Pick Demo Wallet as the recipient wallet. +- Choose Date of Birth as the verification method; recipients will enter it to confirm their identity. +- Give disbursement a name. ![Disbursement Details](/assets/SDP/SDP33.png) + +Create and Upload a Disbursement File: + +- Download the sample via `Download CSV Template`; it includes all required columns. +- Update the placeholder/invalid phone numbers before using it. +- The verification column holds the identity data recipients must match. ![Disbursement CSV](/assets/SDP/SDP34.png) + +Click the Review button. When you are ready to start the disbursement, click the "Confirm disbursement" button. In Disbursement Details you’ll see the payment in `Ready` status, meaning the receiver has yet to accept the invitation and payment. ![Disbursement Dashboard](/assets/SDP/SDP35.png) + +### Receive Payment + +:::note + +This section shows the Testnet-only Demo Wallet flow so you can observe the receiver experience while running SDP locally. For production or real wallet integrations, follow the guidance in [Making Your Wallet SDP-Ready](./making-your-wallet-sdp-ready.mdx). + +::: + +Claim the payment in the demo wallet by first creating a wallet: + +- Open the demo wallet: http://localhost:4000. +- Click `Generate Keypair for new account` to create a keypair; save the public and secret keys if you plan to reuse the account. +- Click `Create account` to create the account on the Stellar testnet (the account starts with 10,000 XLM). ![Demo Wallet Creation](/assets/SDP/SDP36.png) + +To receive your payment, initialize a SEP-24 deposit: + +- Under Asset XLM, click `Add Home Domain`, enter `localhost:8000`, and click `Override`. +- In the `Select action` dropdown, choose `SEP-24 Deposit`, then click `Start`. ![SEP-24 Deposit](/assets/SDP/SDP37.png) + +Verify your identity: + +- When prompted, enter the same phone number used in the disbursement CSV. +- Complete the OTP and Date of Birth verification. The OTP appears in the `sdp-api` container logs (e.g., “Here is the 6-digit verification code you requested ...”). ![OTP Code](/assets/SDP/SDP38.png) ![PII Verification](/assets/SDP/SDP39.png) + +### Monitoring + +- In the SDP dashboard, the payment moves from `Ready` to `PENDING` during the wallet flow, then to `Success` when funds are deposited. ![SDP Dashboard](/assets/SDP/SDP40.png) + +- In the demo wallet, the balance updates to reflect the new amount. ![Demo Wallet Balance](/assets/SDP/SDP41.png) diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx new file mode 100644 index 0000000000..1e5547e9b4 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx @@ -0,0 +1,174 @@ +--- +title: Making Your Wallet SDP-Ready +sidebar_position: 80 +--- + +Remember that any SDP instance will need an agreement with a wallet provider before sending disbursements into that wallet. This ensures the wallets are comfortable receiving funds from your organization and governs any commercial arrangement between the organizations. The wallet will need to allowlist the SDP domain before the SDP can send disbursements to that wallet. When the wallet domain is added to a SDP, it's effectively being allowlisted by the SDP. Both sides listing the other allows them to retrieve the stellar.toml file and check the signing key needed for the [SEP-10] handshake. + +In this page, we will cover the technical aspects of the SDP-Wallet integration, including how to add a Wallet in the SDP database, how to validate and support the registration links using mobile app's [deep linking], how to start the user registration flow in the wallet using [SEP-24], and a recommended approach for handling [deferred deep linking]. + +## Adding a Wallet to an SDP + +The default list of SDP wallets depends on which network is being used (testnet or pubnet). The network is passed as an environment variable and then the list of wallets can be seeded appropriately on SDP startup through the CLI command `./stellar-disbursement-platform db setup-for-network`, according with a hardcoded list of known wallets. Alternatively, wallets can be inserted directly into the SDP database through a SQL command. Both methods require adding the wallet name, homepage, SEP-10 client domain, and deep link schema. + +To insert it directly into the database, update your values and run the following Postgres query. Make sure to check your database and namespace first. + + + +```sql +INSERT INTO wallets (name, homepage, deep_link_schema, sep_10_client_domain) +VALUES ('Vibrant Assist', 'https://vibrantapp.com', 'https://vibrantapp.com/sdp', 'api.vibrantapp.com'); +``` + + + +To configure a wallet through the code, add it to the testnet or pubnet section of `DefaultWalletsNetworkMap`. This will be used when you execute the `./stellar-disbursement-platform db setup-for-network` CLI command, which updates the SDP database and makes the wallet available for new disbursements. Add your new wallet following the same format already present in the code. + + + +```go +var DefaultWalletsNetworkMap = WalletsNetworkMapType{ + utils.PubnetNetworkType: { + { + Name: "Vibrant Assist", + Homepage: "https://vibrantapp.com/assist", + DeepLinkSchema: "https://vibrantapp.com/sdp", + SEP10ClientDomain: "api.vibrantapp.com", + }, + }, + utils.TestnetNetworkType: { + { + Name: "Vibrant Assist", + Homepage: "https://vibrantapp.com", + DeepLinkSchema: "https://vibrantapp.com/sdp-dev", + SEP10ClientDomain: "api-dev.vibrantapp.com", + }, + { + Name: "Demo Wallet", + Homepage: "https://demo-wallet.stellar.org", + DeepLinkSchema: "https://demo-wallet.stellar.org", + SEP10ClientDomain: "demo-wallet-server.stellar.org", + }, + }, +} +``` + + + +## Recipient Registration Experience + +The recipient registration experience is paramount to make this application smooth and easy to use. this requires the wallet to support [deferred deep linking], which will be discussed in a later section. A good description of the registration experience is as follows: + +1. The recipient receives an invitation message notifying them they have a payment waiting from the organization and prompts them to click a [deep link] to open or install&open a wallet application +1. When the recipient opens the wallet app, the wallet immediately onboards the recipient, creates a Stellar account and trustline for the desired asset, initiates a [SEP-24] deposit transaction with the SDP, and opens the SDP's registration webpage as an overlay screen/iframe inside the app. +1. The user confirms their phone number and date of birth directly with the SDP, without sharing any data with the wallet, and after the registration finishes, the user is sent back to the wallet application. Here are the screens demonstrating these steps: + + ![Registration Flow](/assets/SDP/SDP25.png) + +1. The user receives the payment within seconds + +## Registration Deep Link + +Once the user has installed the wallet application, the wallet should be able to interpret a [deep link] that follows the format registered in the SDP in order to kick off the [Wallet Registration Procedure](#wallet-registration-procedure). The deep link format supported by the SDP follows this format: + +```url +https://?asset=&domain=&name=&signature= +``` + +- `asset`: the Stellar asset. +- `domain`: the domain hosting the SDP's `stellar.toml` file. The wallet will need to use it to both fetch the `stellar.toml` file, and to populate the `home_domain` field in the [SEP-10] GET challenge transaction. +- `name`: the name of the organization sending payments. +- `signature`: a signature from the SDP's [SEP-10] signing key. + +:::info + +Note that the deep link is specific to each SDP, payer org, and asset. It is not specific per individual receiver. There is no risk in sharing the link with receivers who are part of the same disbursement. The link will be the same for multiple receivers and they will prove their identity as part of the [SEP-24] deposit flow. + +::: + +Below is an example of a registration link (signed) + +```url +https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test&signature=fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a +``` + +In this example, the host is `https://vibrantapp.com/sdp-dev` and the signature is the result of signing the below (unsigned) url using the [SEP-10] signing key `SBUSPEKAZKLZSWHRSJ2HWDZUK6I3IVDUWA7JJZSGBLZ2WZIUJI7FPNB5`, with the public key being `GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F`: + +```url +https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test +``` + +In this example, the signature is `fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a`. + +Below is a JavaScript snippet demonstrating how to verify the signature: + +```js +#!/usr/bin/env node + +const { Keypair } = require("stellar-sdk"); + +// The SDP's stellar.toml SIGNING_KEY +// +// For security, this should ideally be fetched from +// https:///.well-known/stellar.toml on demand +const keypair = Keypair.fromPublicKey( + "GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F", +); +console.log("public key:", keypair.publicKey()); + +let url = + "https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar%20Test"; +let signature = + "fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a"; + +console.log( + "verified:", + keypair.verify( + Buffer.from(url.toString(), "utf8"), + Buffer.from(signature, "hex"), + ), +); +``` + +### Wallet Registration Procedure + +When opening registration [deep link], these are the steps the wallet should follow in order to enforce the security and privacy measures expected in this flow, and to allow the user to input their information directly with the SDP: + +1. 🚨 Confirm that the `domain` of the deep link is on the wallet's allowlist. This is crucial for authenticating from a trusted wallet.🚨 +1. Fetch the SDP's toml file at `{domain}/.well-known/stellar.toml` and confirm the `SIGNING_KEY` variable is populated. +1. Verify that the registration link signature was made using `SIGNING_KEY` similar to the `keypairPk.verify(...)` function in the snippet above, and that the signature is valid with the content of the link. +1. Check the `asset` from the link and confirm that the recipient user has a trustline for that asset. Create one if it doesn't exist. +1. (Optional) Use the `name` from the link to update the wallet user interface. +1. Initiate the [SEP-24] deposit flow with that asset using the `TRANSFER_SERVER_SEP0024` value from the SDP's toml file. + - This includes using [SEP-10] to authenticate the user with the SDP server. Please notice that the SDP requires both the `client_domain` and `home_domain` fields to be provided in the `GET ` request, and they should be set as follows: + - `client_domain`: the domain of the wallet server that exposes the wallet server's `stellar.toml` file. + - `home_domain`: the domain of the SDP's server that was present in the registration link. + - `account`: the Stellar account of the receiver's wallet. +1. Launch the deposit flow interactive _in-app browser_ within your mobile app, following the instructions in the [SEP-24] spec. + - ATTENTION: the wallet should not, in any circumstances, scrape or attempt to scrape the content from the _in-app browser_ for the recipient's information. + - NOTE: it's highly recommended to use an _in-app browser_ rather than a webview. +1. 🎉 Congratulations! The recipient user can now fill out the forms in the _in-app browser_ and register to receive their payment 🎉. + +Additionally, the wallet should save the link and/or link attributes and associate it with the individual receiving user for these reasons: + +1. This is how the wallet will know that the user is associated with a certain org or SDP. +1. Saving the data is useful for reporting and troubleshooting, especially if the wallet needs to justify the source of funds for regulatory or tax purposes. +1. If the payer org wants to pay any cashout fees charged by the wallet or offramp, the wallet will need to know which users and transactions should be invoiced upstream. + +### Deferred Deep Links + +Most likely, the intended recipient will not have the necessary wallet application installed on their device. For this reason, wallets should support the concept of [deferred deep linking], which enables the following flow: + +1. The recipient's initial action of clicking the deep link should redirect them to the appropriate app store to download the wallet application. +1. After installing and opening the application, the recipient should be rerouted to the wallet's typical onboarding flow. +1. Once the user has successfully onboarded, the wallet should use the information included in the deep link to kick off the [Wallet Registration Procedure](#wallet-registration-procedure). + +Deferred deep linking is a feature commonly supported by numerous mobile deep linking solutions, there are third-party services that can be used to implement this functionality, such as Singular, Branch, AppsFlyer, Adjust, and others. [Here](https://medium.com/bumble-tech/universal-links-for-android-and-ios-1ddb1e70cab0) is a blog post with more information on how to implement [deferred deep linking]. + +The SDP supports a basic link format, such as `https://`. If your wallet's deep linking system needs a more complex structure, you'll have to manage this with a web application. This application should be owned by the wallet provider, and it should be able to receive the deep link, interpret it, and direct the user to the correct location. + +[deferred deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking#Deferred_deep_linking +[deep link]: https://en.wikipedia.org/wiki/Mobile_deep_linking +[deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking +[sep-10]: https://stellar.org/protocol/sep-10 +[sep-24]: https://stellar.org/protocol/sep-24 diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx new file mode 100644 index 0000000000..98b4e9ef1d --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx @@ -0,0 +1,56 @@ +--- +title: Monitoring +description: Guide to using the Stellar Disbursement Platform CLI +keywords: [SDP, CLI] +sidebar_position: 70 +--- + +This guide explains how the Stellar Disbursement Platform (SDP) exposes runtime metrics and how to hook those metrics into the Prometheus + Grafana stack. + +### Metrics Endpoints + +Both the Dashboard API and the Transaction Submission Service (TSS) expose Prometheus-compatible `/metrics` endpoints. The HTTP server is defined in [serve_metrics.go](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/internal/serve/serve_metrics.go) and is controlled through the following environment variables: + +- `METRICS_PORT` – Port used by the Dashboard API metrics server (defaults to [8002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-sdp.yml)). +- `METRICS_TYPE` – Monitoring backend in use (currently `PROMETHEUS`). +- `TSS_METRICS_PORT` – Port used by the TSS metrics server (defaults to [9002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-tss.yml)). +- `TSS_METRICS_TYPE` – Monitoring backend for the TSS (defaults to `TSS_PROMETHEUS`). + +When the server starts, it mounts the `/metrics` route and surfaces request, database, and TSS-specific counters and histograms that align with the Grafana dashboards provided in [Grafana README](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). + +### Local Prometheus and Grafana Stack + +We provide a Docker Compose file that boots Prometheus and Grafana pre-wired to scrape the SDP metrics endpoints. + +1. From the [repository root](https://github.com/stellar/stellar-disbursement-platform-backend/), run: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml up -d +``` + +This launches Prometheus on port `9090` and Grafana on port `3002` by default [monitoring config](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-monitoring.yml). + +2. The Prometheus container loads its configuration from [prometheus config](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml), which targets `host.docker.internal:8002/metrics` by default. Adjust the `targets` list if you run the API on a different host or if you want to scrape the TSS metrics (`host.docker.internal:9002`). +3. Grafana uses the datasource configuration in [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml), which points to the Prometheus instance above. If you have an existing Prometheus deployment, update this URL accordingly. + +To tear down the monitoring stack, run: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml down +``` + +### Load the SDP Grafana Dashboard + +1. Navigate to [http://localhost:3002](http://localhost:3002) and sign in with the default `admin` / `admin` credentials. ![Grafana Login](/assets/SDP/SDP42.png) + +2. Click the `+` icon in the top navigation bar (next to the search input), choose `Import dashboard`, and paste the contents of [Grafana Dashboard Json](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/dashboard.json). ![Import Dashboard](/assets/SDP/SDP43.png) + +3. Select the `prometheus` datasource provided by [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml). ![Select Datasource](/assets/SDP/SDP44.png) + +This dashboard visualizes HTTP request volume/latency, database query timings, and TSS transaction statistics, details described in [Grafana README.md](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). All panels can be filtered by method, route, tenant, or instance so you can distinguish traffic between multiple deployments. + +### Integrating with External Prometheus Instances + +If you already operate a Prometheus cluster, add scrape jobs equivalent to the ones in [prometheus config](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml). Each subsystem exposes metrics at `http://:/metrics` (Dashboard API) and `http://:/metrics` (TSS). [Helm](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/values.yaml) deployments expose the same configuration knobs through `sdp.configMap.data.METRICS_*` and `tss.configMap.data.TSS_METRICS_*`. Once the new jobs are present, you can import the same dashboard JSON into your existing Grafana deployment or adapt the PromQL queries to your preferred observability suite. diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/overview.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/overview.mdx new file mode 100644 index 0000000000..e9378c6326 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/overview.mdx @@ -0,0 +1,20 @@ +--- +title: Overview +sidebar_position: 5 +pagination_label: "Admin Guide: Overview" +--- + +The entire SDP step-by-step process usually looks something like the following after the SDP is deployed and organizational users have been set up: + +1. The organization funds the SDP’s distribution account with a Stellar-based asset (e.g. USDC) +2. An administrator logs in to the SDP’s dashboard and uploads a CSV file containing the payment information to initiate a new disbursement +3. The SDP sends a text message to every first-time recipient in the CSV inviting them to download a Stellar-enabled wallet application +4. Meanwhile, the SDP immediately begins making payments to each recipient that already has a wallet registered to them +5. Each first-time recipient clicks a deep link to download the Stellar-enabled wallet application chosen by the organization for this disbursement, downloads the app, and goes through the wallet sign-up process +6. Once the recipient has signed up and their Stellar account has been created, the wallet immediately authenticates with the SDP using parameters from the deep link and opens the SDP registration web view for the recipient to complete verification +7. The user confirms their identity by providing an OTP code sent to their phone number and an additional piece of verification information for security purposes. The SDP supports three different types of verification information: Date of Birth, Personal PIN, and National ID. This information is input by the recipient in a web flow and passes directly to the SDP, meaning the wallet does not need to process or store this information. +8. The SDP verifies the recipient’s information. If it matches the information from the CSV, the SDP automatically makes the payment to the recipient’s Stellar account + +Graphic representation of flow of funds: + +![Flow of Funds](/assets/SDP/SDP1.png) diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/security.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/security.mdx new file mode 100644 index 0000000000..7e24f4813d --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/security.mdx @@ -0,0 +1,91 @@ +--- +title: Security +sidebar_position: 60 +--- + +This manual outlines the security measures implemented in the Stellar Disbursement Platform (SDP) to protect the integrity of the platform and its users. By adhering to these guidelines, you can ensure that your use of the SDP is as secure as possible. + +Security is a critical aspect of the SDP. The measures outlined in this document are designed to mitigate risks and enhance the security of the platform. Users are strongly encouraged to follow these guidelines to protect their accounts and operations. + +### Implementation of reCAPTCHA + +Google's reCAPTCHA has been integrated into the SDP to prevent automated attacks and ensure that interactions are performed by humans, not bots. + +ReCAPTCHA is enabled by default and can be disabled by setting the `DISABLE_RECAPTCHA` environment variable to `true`. + +Configuration is available at two levels: + +1. **Environment default** – Set `DISABLE_RECAPTCHA=true` to apply the setting globally across all tenants. +2. **Tenant override** – Each organization can enable or disable reCAPTCHA via its own settings (UI or API). When present, the tenant-level choice overrides the environment default. + +Use the following environment variables to control how reCAPTCHA behaves: + +- `CAPTCHA_TYPE` – `GOOGLE_RECAPTCHA_V2` (default) or `GOOGLE_RECAPTCHA_V3`. +- `RECAPTCHA_SITE_KEY` – Google site key issued for the chosen CAPTCHA type. +- `RECAPTCHA_SITE_SECRET_KEY` – Google secret key paired with the site key. +- `RECAPTCHA_V3_MIN_SCORE` – Minimum allowed score (0.0–1.0, default 0.5) when `CAPTCHA_TYPE=GOOGLE_RECAPTCHA_V3`. + +**Note:** Disabling reCAPTCHA in production (pubnet) deployments substantially reduces protection against automated abuse. This configuration should be used only when equivalent compensating controls are in place. + +### Enforcement of Multi-Factor Authentication + +Multi-Factor Authentication (MFA) provides an additional layer of security to user accounts. It is enforced by default on the SDP and it relies on OTPs sent to the account's email. + +MFA is enabled by default and can be disabled in the development environment by setting the `DISABLE_MFA` environment variable to `true`. + +**Note:** MFA cannot be disabled in production (pubnet) environments due to security risk. + +### Request Rate Limiting and Network Protections + +SDP enforces rate limiting at the HTTP layer to curb scripted abuse. Each unique `` pair is limited to 40 requests within 20 seconds (rolling window). Requests that exceed this threshold receive throttled responses until the window resets. + +### Authentication and Authorization Models + +All authenticated API routes require clients to present either an SDP-issued API key or a JWT derived from the SEP10/SEP24 flows. These two mechanisms run in parallel: JWTs are for interactive users, while API keys enable programmatic integrations with their own scoping model. + +#### JWT Roles + +JWTs represent human users that sign in through the UI. After authentication, the platform authorizes them based on the roles assigned to their user account. The primary roles are: + +- **Owner** – Full control, including creating users, assigning roles, and editing organization configuration. Owner is the only role that can grant or revoke access for others. +- **Financial Controller** – Can perform every operational task (wallets, assets, disbursements, statistics) except user management. This role is ideal for finance staff executing payouts. +- **Developer** – Manages technical configuration such as wallets, assets, and API keys, and can view statistics; it cannot modify users or financial workflows. +- **Business** – Read-only across business data (disbursements, recipients, statistics) but cannot access user management details. +- **Initiator** – Creates and saves disbursements but cannot submit them. Mutually exclusive with the Approver role to enforce separation of duties. +- **Approver** – Reviews and submits disbursements but cannot create new ones; mutually exclusive with Initiator. + +Each API endpoint specifies which JWT roles may access it—for example, API key management routes (`/api-keys`) require Owner or Developer, while disbursement creation requires Initiator or Financial Controller and submission requires Approver or Financial Controller. + +#### API Key Permissions + +API keys bypass JWT roles and instead embed their own permission scopes. When a request includes an API key, the middleware validates the key, confirms the caller’s IP address is allowed (if restricted), checks the expiration, and finally ensures the key contains the scopes required by the endpoint. API keys are typically used for automation and service-to-service integrations where precise read/write access is needed; creating or rotating them still requires a user with the appropriate JWT role (Owner or Developer) to hit the `/api-keys` endpoints. + +Available scopes map directly to the major SDP resources: + +- `read:all`, `write:all` +- `read:disbursements`, `write:disbursements` +- `read:receivers`, `write:receivers` +- `read:payments`, `write:payments` +- `read:organization`, `write:organization` +- `read:users`, `write:users` +- `read:wallets`, `write:wallets` +- `read:statistics` +- `read:exports` + +#### Recommended Configuration + +To enhance security, disbursement responsibilities should be distributed among multiple financial controller users. + +1. **Approval Flow**: Enable the approval flow on the organization page to require two users for the disbursement process. The owner can do that at _Profile > Organization > ... > Edit details > Approval flow > Confirm_. +2. **Financial Controller Role**: Create two users with the _Financial Controller_ role on the organization page to enforce separation of duties. The owner can do that at _Settings > Team Members_. +3. **Owner Account Management**: Use the Owner account solely for user management and organization configuration. Avoid using the Owner account for financial controller tasks to minimize the exposure of that account. + +### Best Practices for Wallet Management + +The SDP wallet should be used primarily as a hot wallet with a limited amount of funds to minimize potential losses. + +#### Hot and Cold Wallets + +- A hot wallet is connected to the internet and allows for quick transactions. +- A cold wallet is offline and used for storing funds securely. +- Learn more about these concepts at [Investopedia](https://www.investopedia.com/hot-wallet-vs-cold-wallet-7098461). diff --git a/docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting.mdx new file mode 100644 index 0000000000..3062227cd0 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting.mdx @@ -0,0 +1,299 @@ +--- +title: Troubleshooting +sidebar_position: 90 +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +This guide helps you diagnose and resolve common issues with the Stellar Disbursement Platform (SDP). + +## Quick Reference + +| Symptom | Likely Cause | Jump to | +| --- | --- | --- | +| Payment stuck in "Pending" | TSS issue, missing accounts, or insufficient funds | [Pending Payments](#payment-stuck-in-pending) | +| "Resource Missing" in logs | Account doesn't exist on network | [Pending Payments](#payment-stuck-in-pending) | +| Payment failed with `op_no_trust` | Receiver missing trustline for asset | [Operation Errors](#payment-failed-operation-error) | +| Payment failed with `op_underfunded` | Distribution account low on funds | [Operation Errors](#payment-failed-operation-error) | +| Payment failed with `op_no_destination` | Receiver account doesn't exist | [Operation Errors](#payment-failed-operation-error) | +| Receiver didn't get invitation | Scheduler config or messaging provider issue | [Invitation Issues](#receiver-not-receiving-invitation) | +| Receiver didn't get OTP | Mismatched contact info or provider issue | [OTP Issues](#receiver-not-receiving-otp) | +| Channel account errors after testnet reset | Channel accounts were wiped | [Recreating Channel Accounts](#recreating-channel-accounts) | +| Payments processing slowly | Not enough channel accounts | [Slow Payments](#slow-payments-due-to-insufficient-channel-accounts) | + +--- + +## Payments + +### Payment Stuck in "Pending" {#payment-stuck-in-pending} + +Payments can get stuck in "Pending" status for several reasons. Work through these checks in order. + +#### 1. Check TSS Service Health + +The Transaction Submission Service (TSS) must be running and reachable. + +```bash +# Check TSS container status +docker ps | grep tss + +# View recent TSS logs +docker logs --tail 100 +``` + +If TSS is down or unreachable, restart it and monitor the logs for errors. + +#### 2. Verify Distribution Account Funds + +The distribution account must have sufficient XLM to cover the payment amount plus transaction fees. + +Use [Stellar Expert](https://stellar.expert/explorer/public/) or the Stellar CLI to check the balance. + +#### 3. Validate Channel Accounts + +Channel accounts may become invalid after testnet resets. Look for errors like this in your logs: + +
+ Example error: "Resource Missing" + +``` +time="2025-12-19T18:43:37.017Z" level=error msg="[DRY_RUN Crash Reporter] unexpected TSS error: preparing bundle for processing: building transaction: horizon response error: getting account detail: horizon error: \"Resource Missing\" - check horizon.Error.Problem for more information" app_version=6.0.1 asset=XLM channel_account=GBKEVxxxx ... +``` + +
+ +**Diagnosis:** This error means either the **destination account** or the **channel account** doesn't exist on the network. Check both using [Stellar Expert](https://stellar.expert/explorer/public/). + +**Solution:** + + + + +The receiver's account hasn't been created on the Stellar network. The account must be funded with the minimum balance (currently 1 XLM on mainnet) before it can receive payments. + + + + +Channel accounts may disappear after testnet resets. See [Recreating Channel Accounts](#recreating-channel-accounts) below. + + + + +--- + +### Payment Failed with Operation Error {#payment-failed-operation-error} + +When a payment fails, the Status History shows a Horizon error with operation codes that explain why the transaction was rejected. + +![Payment Failed Error](/assets/SDP/SDP45.png) + +#### Reading the Error + +Look for the `operation codes` at the end of the error message: + +``` +Extras=transaction: tx_fee_bump_inner_failed - inner transaction: tx_failed - operation codes: [ op_no_trust ] +``` + +The operation code (e.g., `op_no_trust`) tells you exactly what went wrong. + +#### Common Operation Codes + +| Code | Meaning | Solution | +| --- | --- | --- | +| `op_no_trust` | Receiver hasn't established a trustline for this asset | Receiver must add a trustline for the asset (e.g., EURC) before they can receive it | +| `op_underfunded` | Source account doesn't have enough of the asset | Fund the distribution account with more of the asset | +| `op_no_destination` | Destination account doesn't exist | Receiver must create and fund their Stellar account first | + +:::info Trustlines explained + +On Stellar, accounts must explicitly "trust" an asset before receiving it. This is a security feature—it prevents spam tokens. The receiver needs to add a trustline for the specific asset (like EURC) using their wallet or a Stellar tool. + +::: + +#### Example: `op_no_trust` + +
+ Full error message + +``` +horizon response error: StatusCode=400, Type=https://stellar.org/horizon-errors/transaction_failed, +Title=Transaction Failed, Detail=The transaction failed when submitted to the stellar network. +The `extras.result_codes` field on this response contains further details. +Descriptions of each code can be found at: https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed/, +Extras=transaction: tx_fee_bump_inner_failed - inner transaction: tx_failed - operation codes: [ op_no_trust ] +``` + +
+ +**Diagnosis:** The receiver account exists but hasn't added a trustline for the asset you're trying to send (in this case, EURC). + +**Solution:** The receiver must add a trustline for the asset before the payment can succeed. Once they've done so, use the **Retry** button in the dashboard to resubmit the payment. + +For a complete list of operation result codes, see the [Stellar documentation](https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment). + +--- + +### Slow Payments Due to Insufficient Channel Accounts {#slow-payments-due-to-insufficient-channel-accounts} + +If payments are processing slower than expected, you may not have enough channel accounts. Channel accounts allow the SDP to submit multiple transactions in parallel. Without enough of them, transactions queue up and process sequentially. + +#### Symptoms + +- Large disbursements take longer than expected to complete +- Payments sit in "Pending" status longer than usual before being submitted + +#### 1. Check Current Channel Account Count + +View how many channel accounts are currently configured: + +```bash +./stellar-disbursement-platform channel-accounts view +``` + +#### 2. Add More Channel Accounts + +Use the `ensure` command to increase the number of channel accounts. This command is idempotent—it only creates new accounts if you have fewer than the specified number: + +```bash +# Ensure you have at least 10 channel accounts +./stellar-disbursement-platform channel-accounts ensure 10 +``` + +:::tip How many channel accounts do you need? + +The optimal number depends on your disbursement volume: + +- **Low volume** (< 100 payments/day): 2–5 accounts +- **Normal volume** (> 100 payments/day): 5–10 accounts + +Start with a conservative number and increase if you notice slow processing times. + +::: + +#### 3. Verify TSS Configuration + +The TSS service also has a configuration for how many channel accounts it should utilize. Check that your `--num-channel-accounts` flag (or `NUM_CHANNEL_ACCOUNTS` environment variable) matches or is less than the number of accounts you created: + +```bash +# In your TSS configuration +--num-channel-accounts=10 +``` + +If this value is higher than the actual number of channel accounts available, TSS will only use what exists. + +--- + +## Receiver Communications + +Issues with invitations, OTPs, and other messages sent to receivers. + +### Receiver Not Receiving the Invitation {#receiver-not-receiving-invitation} + +When you trigger a disbursement targeting an unregistered receiver (via email, SMS, or WhatsApp), they should receive an invitation link to register. If they haven't received it, work through these checks. + +#### 1. Verify Scheduler Configuration + +The invitation job runs on a schedule controlled by an environment variable: + +```bash +SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS=30 +``` + +**Check:** Is this set to a reasonable interval (10–60 seconds)? If it's set too high or missing, invitations may be significantly delayed. + +#### 2. Check SDP Logs for Submission Failures {#check-logs-submission-failures} + +The SDP logs will show whether the message was sent and if the messaging provider accepted or rejected it. + +```bash +# Look for messaging-related entries +docker logs 2>&1 | grep -iE "invitation|otp|message" +``` + +**Common provider issues:** + +| Provider | Typical Failure | What to Check | +| --- | --- | --- | +| AWS SES | Rate limiting, sandbox mode | Are you in production mode? Check sending limits in AWS console | +| Twilio (SMS) | Geofencing, unverified numbers | Is the destination country enabled? Is your sender ID verified? | +| Twilio (WhatsApp) | Template not approved, 24h window | Is your message template approved? Are you outside the 24h conversation window? | + +:::tip + +If you're testing, check spam/junk folders first—especially for email invitations. + +::: + +#### 3. Verify Receiver Contact Info + +Double-check that the receiver's contact information (email, phone number) in the disbursement file is: + +- Correctly formatted (e.g., phone numbers include country code) +- Valid and reachable +- Not a duplicate that was already processed + +--- + +### Receiver Not Receiving OTP During Registration {#receiver-not-receiving-otp} + +During registration, receivers enter the contact details (phone number or email) that the payer used when submitting the disbursement. The SDP sends an OTP to verify ownership of that contact method. + +#### 1. Check for Mismatched Contact Info (Most Common) + +The most frequent cause is the receiver entering a different email or phone number than what the payer submitted—often without realizing it. + +**How to verify:** Check the `receiver_registration_attempts` table, which logs attempts from contacts that couldn't be matched to any receiver in the system. + +```sql +SELECT * FROM sdp_.receiver_registration_attempts +ORDER BY created_at DESC +LIMIT 20; +``` + +If you see the receiver's attempted contact info here, it means: + +- They entered something different from what's on file +- You may need to coordinate with the receiver to confirm which contact info is correct +- If the payer made an error, you may need to update the receiver's contact info or create a new disbursement + +#### 2. Check for Provider Issues + +If the contact info matches but the OTP still isn't arriving, the issue is likely with the messaging provider. See [Check SDP Logs for Submission Failures](#check-logs-submission-failures) above for common provider issues and how to diagnose them. + +--- + +## Channel Accounts + +### Recreating Channel Accounts {#recreating-channel-accounts} + +After a testnet reset, your channel accounts no longer exist on-chain but are still referenced in the database. You need to clean up invalid accounts and create new ones. + +Run these commands inside the TSS container: + +```bash +# Step 1: Remove invalid accounts from the database +./stellar-disbursement-platform channel-account verify --delete-invalid-accounts + +# Step 2: Create new channel accounts (adjust the count as needed) +./stellar-disbursement-platform channel-account ensure 10 +``` + +:::tip + +The `ensure` command is idempotent—it only creates accounts if you have fewer than the specified number. Running `ensure 10` when you already have 10 valid accounts does nothing. + +::: + +--- + +## Still Stuck? + +If you've worked through the relevant sections and the issue persists: + +1. **Collect logs** from all relevant services (SDP, TSS, Anchor Platform) +2. **Note the exact error message** and when it started occurring +3. **Check for recent changes** to configuration, environment, or network (e.g., testnet reset) + +Contact us either by opening an issue on our [Backend GitHub repository](https://github.com/stellar/stellar-disbursement-platform-backend/issues) or [Frontend GitHub repository](https://github.com/stellar/stellar-disbursement-platform-frontend/issues) with the details above and the version of SDP you're running. We'll help you troubleshoot further! We're also available on Discord in the [#bulk-disbursements](https://discord.com/channels/897514728459468821/1310800776331006002) channel. diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx b/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx rename to docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx diff --git a/ap_versioned_docs/version-2.11/api-reference/_category_.json b/docs/platforms/stellar-disbursement-platform/api-reference/_category_.json similarity index 100% rename from ap_versioned_docs/version-2.11/api-reference/_category_.json rename to docs/platforms/stellar-disbursement-platform/api-reference/_category_.json diff --git a/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx diff --git a/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx new file mode 100644 index 0000000000..8fefaf9a45 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx @@ -0,0 +1,74 @@ +--- +id: authenticate-mfa +title: "Provide Multi-Factor Authentication" +description: "Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required." +sidebar_label: "Provide Multi-Factor Authentication" +hide_title: true +hide_table_of_contents: true +api: eJzNV0tz2zYQ/isYnOIMKdoetwfe5Ecat0mqRs704HicJbkUEYEAA4CWVQ3/e2cB0pJsR05aZya6SAIWH759YB8r7mBmeXrJx62rUDmRgxNa8auIF2hzIxr/N+W/6Rs0yjJXIatb6URcQu60YbB1kDVG52gtK7Vh09MJay0aJvVMqIgJlcu2EGrmUSATUrglc5oZrLHO0Pj1Am9Ejsxq9vbVmAnLlHYM5AKWlhn80gqDxYhHXDdo/J3nBU/5Bg18+2rMI96AgRodGtJvxRXUyFN+6tHj81MecUGKVQgFGn5f3/OC0EqBhulygxeP+ECCpyVIixG3bikJ24q6kSSBt43UBa4F8gpr4OmKu2XjJZ0Rasa77irAoXXHuliSxDYNMkEvwApwwCOea+VQOZJ9mbykrzX8mtolr0u4zonFVTRcq7PPmDuyjSHrOYGWTt1JPiB43ypvd3jeI3SkT3Dmdb0JmGktEdQDxOOwzkoJswehQMETIHNoXF7BtdNzVE/zvCAxH4MGT8aTi5PXY3YDUhSe6oi9v1v1gBRlg+lYqyQFMN3/6fR8Oj5+c3b9/qyX/8RyrUoxa0Po0UGLjog70+KId/TZDBFa9gu20coGex/u7z/09LTN6eGUrbxn2G2XQ9PIfiP5bLXa9v9uP3+j8bZTQbBQUKyL+NFj3I+hYO9DlD4fWzRGm6fZnqIDIS2DTLfOey0c7OgZOgP2yZu6tW4HD3X7oMgd2oh/sPjhyn07aW4duHZTTrX0bgiiRmth9shzDmriLfg8tabB31GK3VRzzWK452j/YAP5/okfCeyxb2PKLzNUcZ8O40wXy7jP6vQ7gKOyQquQ8ue45OnOkxG/AdneIVA6rtFVmipKo300N+AqnvKkLin5WjQ3Q0VpjeQp94cs5q0Rbjkl9wf/HCMYNPSWNvwAjfgDl4++ONI3PLhQkSjROBCKyiUoX0t///uCvTibHv7y6x6j/OtXr9l4cs7muKSa2JtjC+9eoesiPj2bHOw/EzM2PZvEB/uBW9CZrXzK6Pa+i9Hh0XMyOjx6DkZ/tWiW30bLi7K7nuNrjDYIhLzaX/yFjnMKdKFK7a8TzjcVU4dSgmGnwmatsVijcmwiwZXa1OR7CmI0NtA4HB2M9ilO27oGQ+F/USHbjfFiejrZo0oGzGktWdYK6Xzx1GYGqjeRpSJXwxxZ1so5a2BJKH4V2MzotqFGyWAuGuE3qGH0+Xi4XaFbaDMfPazWPx3Fj+qjuqiE9VcqphtUsdWtyZEaXMrHzFXgaDtQ8XWyGVrFe3ARA1X4DcpELAfFMmSlblXhD1b0R0q9oGgx2GgrnDYCbUo8YnZpA17Sf8fFhpHipjdSnEE+R1Vcvaica2yaJDPhqjYb5bpOvgthL2Ve+TsqyyGcQ1vUi3mthCoNWGfa3LWmV5D84p7y6eg7NCuNr7r/R7UB4indFpixQfY/a1OhrOO8AuPsTsobcokziEkNQiX9wk59nlLjNcqaeSDPv8BG6uUwee1+a60luXmboVHo0I4+UpZyaGr7ZzlF46eglA9q9TRH2swSLxTrMra9WMSlyFFZ3xMMibeBvEJ26PNUqKGElSbJYrEYgd/1aP1Rm7w5Pzl7Nz2LD0f7o8rV0udJKs81qA3gidE3okAWhpRXYUgZ3++lt1LPat3P/YQTbl9xHN66pJEgFBUmb7FV35b4KY8GvIqalfSSr1YZWPxgZNfRcigr6eUVNTpGQEYl5fKqi4ZKR31MISxtrOfZr5pox1D8KNfQgG2O3EO7xbto6M9OAnx8QQhrCZpt10LjPMfGbWw/aL63erfJn9MLHoWmjgZcP9xyAwsa32HhCXTdvxve+X4= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx diff --git a/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx diff --git a/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx new file mode 100644 index 0000000000..ccb5c1321d --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-api-key +title: "Create API Key" +description: "Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs." +sidebar_label: "Create API Key" +hide_title: true +hide_table_of_contents: true +api: eJzVWNtuGzcQ/RWCTzGwutbpRW9O7CJqi0aNHBSoYxij3ZGWMZfc8GJFFfbfiyF3pfX6ojh1gNYvWpPDw5nh8PCQW+5gZfnkgp/MpuxX3Fh+mfAMbWpE6YRWfMJfGwSHlgFTuGa1HXOaQZqitWx+OmOoslIL5Wx/Z5CCYgtkqVZLsfIGMxqSww0yYCsDykswzCBkg7URDmu0hIG0OoBc70EMWmdE6iKIy5HZElOxFCmbzpg2zIBaIdPL0Ded2T5PuC7RAMUwzXZRnMymv+KGJ9zgJ4/WvdLZhk+2PNXKoXL0CWUpRRoGDj5aysCW2zTHAujLbUrkE64XHzF1NY4wmFEKFRTIE16iKYS1QquQzNKQI06gpfHBZo9DYakV76b8jS9A9Sg5sJDIaBBbahOiq1PDq9sz7THBGNjcgfxNWEcJao0Jy7DLqbA76IQLh4W9z09UvqBYybcJSMkTHpav/g7NmbALbywWqJzdGXRbg6nBFMUNmr1ZuyWYlLC5DdRqCAbarECJv8OK7Yw6jcHQ2/ZEzX+haw1SYmuO/f+h2zpwwjqR7lrwc6mNs/yySngh1DTma1QlHD+XwmyuMnD3LvRSmwIcn3Ay6DkRSub2Ur0NHyBZgAohMLLulgB7UXjraH8IFdqX3nmDR1QaIKVeY3YlyrCMWuHbJZ9cHCq8uVArSTuIQZYZ2t3asNfT03dxh/EquVNmD5RK1YU+IXuqwD04duAtr+6wz3S22/2hZjs56LPpkintWGn0jcgwS0Jvizu8xYwtjS4YqA2bznhVJdwJJ7HDCu8iJfCKDPb72hmPocGWWtm4i8fDEf10Amw4K2BmzPrAaEsvJeXpqynmNoGI7DB9vFfik0cmMlROLAWa+8jjWZmIfg5inefE8s6D3FewVnLDDDpvFGZMqxQZuJhCodXRYZb70vJ7Cv/d3T//ctIa7fHSfw7qOOswRn0itgKrq/MK3FdO8WeO6hYLrcE2Nd+eYPEFFfHeomHrXO/2TMdZX2bfwFkJ1rEauj3Lkzxug3Tdpr4r4p1v4rglrx/ksMhSRGJVwo+Hw7s89QoyVssf1mM3IEUWKwaN0eFIfCaqCniHU3qKDoS0DBbauxBzHBg2hDNgD85UxT+K9x5efq/Au1wb8Tdm3zy4L3eak6jwbTvliwWGuAu0Flb3kEAdJ36GopTY8oP/rh27FefejWai4+GoBd0dsUvhd3dT+LM2C5FlqL59/h4Ib+9B7afF1BvhNkHUvEIwaE68y/nk4pJERIEu16T7S23D5EB9fACl6F3TNYcQTNCZBOCN5BMe5EcDPKdAoq9t+P1ZUIp4leiogDqjcUvlCBkaugQ5EEqoFQMVLky//HnOXpzNxy+/P6KDILZe7VQNb87n23h09NAkEZYqZX42Gw2fyTM2P5v1RsPoW4yZbZ2+RlUdPcmj8fFzejQ+fg6P/vBoNl/mVjBlJRgo0D3sUcuB4FIz8ScaHhia9sS7/UXzbF/W9bgdI97SOK3b1WVHFPDxcHzcG/7QG/90Pno5eTmajH/sD38Y/cU7kqXFR0ItdQi6Pi/mDiXdvU9bFzI2k+DoWKIK5AmnjRGTMe6P+kPaLb4owGxqGfc4xov56eyICXoycFpLtvBCuiAb29cyS7qrgGtkCy+vWXOtCy8LbGW0L0m+GExFKUKHvsEoPJvZFbq1Ntf9e5Xmf8vFD+qDOieNSVMqpktUPau9SZFuLsSQzOXgqDu6ohVzumwEXAcuYaCi6kh1hs1NZ6m9ysJAugtqKgeqWYOltsJpI9BOyI8eu7ARb1D/9tqX815ZJ6m3gPQaVXb5IneutJPBYCVc7hf9VBeDJyEcTVgIfufKptlUNjhbm4WohFoasM74lC6zMcDmxvHomvafENnShFPs34TWQByKbY0L1th+dTQ5yqKX5mCcfdTllt3AGcRBAUIN6oZH4zkUxhuUBQtAwf8MS6k3VF4HI2Hekt21X6BR6ND2PxBXOjSFfbuco7kRKfFSE1btZl+b1SAY9fSyZ2uzhEuRIincPYuelJDmyMaBp+JJTliTwWC9Xvch9Aa0eqgd/DZ9ffb7/Kw37g/7uStkYGtSCgWoFnBU1s2LZpdlWq+G/9s30vogdPjZDUoJQoX7EKVwW0umC76TTJcJz0lNTS74drsAi++NrCpqjkfe5OIy4TdgBD0VBCGWNKcwaazwRsBfx5z1zmlmMpc+HsUdKUkvTXHESZpi6R61bQu+2dv5OU/4on7ZLXRGYwys6ekO1iTz6G3YNe8JoW3LJaiVj8I4YlJJwB29EJ9H64/WexqoTcvDriCJgcTb4QNDttuoRqpqZx+7HhxRp7axprW7rKrqH37/S94= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx new file mode 100644 index 0000000000..71d8c17f70 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-asset +title: "Create Asset" +description: "This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement." +sidebar_label: "Create Asset" +hide_title: true +hide_table_of_contents: true +api: eJzVV1Fz2zYM/is4PjV3kuW4aXOnNyd216xZ6tZpc5vr29ESbLGWSI2k4mo6/fcdSClxmiZt1z5sfrBlEvjwAQQBqGGWbwyLF+y13nAp/uZWKMmWAUvRJFqU7m/MLjNhAGVaKiEtCAOVwRSsgkQjtwgcJO6AG4MWbMYtJFzCCr2YkMBhIsyq0gYLlHYAF8piDDZDUHt2oaiMhUzlKXBY8ZzLBL12ybUVSZVz3RtRhA3C+v10H50FTJWoHeRZymJ26kiOSZEFTONfFRp7otKaxc1njo579BV2vqUsYImSFqUlcV6WuUgcdvTRkE7DTJJhwemJsIXGlCKaqBRZwIQxFWoKqa1LZDFTq4+YEJFSE00r0JCqE4+bXspYLeSG3T8I7CLQweMnXpQ5abybT05Ze2Pwm6A62X2YX05OJkfHZy+en1+9Op4d/zaZvp+fXr09nszeXb1/evH708nlm+n7F+dHF+PLo/Gbl0//OD9/cT5+xlr6BHshsLpCt2BKJY33cjQ8fCjoXbjBVEmCxqyrPK/vxJ7Qj4bD+/onPIXuVAMQ8prn4mYBViqtQWmXbKVW1yLF1AUv8s5TNnc6g8/MtQEzmFRa2JrFi4adINeox5XNWLxYtsuAfQoJaYMy7MyFZC6UvKBQ0rOLrUVphJLGoWyxZvGjmgG75nl1g0CGCrSZolwulXG5w4kEi1wuGEZE9TVqb6HSOYuZ0+v5zylF/RHse3GTI7wUr7C+lyMkpXR/PTPkKWqgEHEhhdwAlzCfzODXq0t4Mp2Pnj0/oFD71T9hPDuDLdYU1i4id/DocpARD0upO5/ODoc/iRnMp7PwcOi5eZ+hsWqLsj34Lkajo5/JaHT0Mxi9qVDX30bLiVIB5QXahxntEXCUesN/kTqjq0DV7u1t7Zz2FaMvXb4A3dafH6gkZHutnG/Cuqo0t5hT9d9vIzDLuV0rXVCi0aVBbbzPo8HhYEiXoioKruuu2D2O8WQ+mR1QMeBglcphVYncwlrpOy3KUG8o+BZhVeVbKHlNKG6Vw0arqgS1Bo2JKIXbUNfoa09vXaLdKb0dfLEe/7cofpAfpOv8ZFKCKlGGRlU6cZWUuphv9sJ0VJQEqxz8F+AC4DJ1G5Qv/YSwVpVMnWJGf/Jc7Sg1NZbKCKu0QBMTjxAWxuNF3W+43/TDsgtSuOLJFmW6fJJZW5o4ijbCZtVqkKgi+i6Egxic8zdU6v7uGEe2E3NeCbnW3FhdJbbSnYNrdTeqXzzTwXd4ttauN/2Iaz3E13zb4Qp62X/tTYZ5ESYZ19Y8SnlPLrIaMSq4kFG38Kg/X3PjJeYFOCDHP8UyVzWl11c9gcqQ3LZaoZZo0Qw+UEm0qAvzej1HfS0Sqku9Wx3NgdKbyAmFah2aTixguUhQGlcs+ypf8iRDGLk65Rs2YcVRtNvtBtztOrRO1UTnZ6fTi/k0HA2Gg8wWuSvKNA4UXO4B+2EX+mn3To1pbseb/91I33U5i59sVOZcSGoTLnBNNw0tWDcNLQOW0ZgUL1jTrLjBdzpvW1r23SxeLGnE0oKvqLkslm3QN9jbAe3URyq8JLu3E9m9+f/OdDZ7Pb9kgR/b4oYVvjFqvqP3Dr6jqYxeTqwfBhu/1rCcy03FNyTrMelo+b32vnXtvXsgpv2WrPcYfj4/eHfouw0eUGkaPzy07Y2833pQowtXL02nsWzb9h/gaP1Y +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx new file mode 100644 index 0000000000..8f802dd9fe --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-direct-payment +title: "Create Direct Payment" +description: "Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly." +sidebar_label: "Create Direct Payment" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx new file mode 100644 index 0000000000..5b8c16b2ab --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-disbursement +title: "Create Disbursement" +description: "Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `." +sidebar_label: "Create Disbursement" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx new file mode 100644 index 0000000000..2ef31db80c --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-receiver +title: "Create Receiver" +description: "Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements." +sidebar_label: "Create Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx new file mode 100644 index 0000000000..f14201f94f --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-tenant +title: "Create Tenant" +description: "Create Tenant" +sidebar_label: "Create Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Create Tenant + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx new file mode 100644 index 0000000000..c29a0f86b2 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-user +title: "Create User" +description: "This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email." +sidebar_label: "Create User" +hide_title: true +hide_table_of_contents: true +api: eJzNWFlv2zgQ/isEn5pCsmzHzuGnTZssNt1Fm4UT7IMbBCNpZLGWSJWk4ngN/ffFUFIs53Cabgv0JVI01zcHZ4ZecwtzwyczfmVQG37t8RhNpEVhhZJ8wi9TYRjKuFBCWhZpBIuGAZO4ZNPTC1Ya1AwMsykyjabMLFMJA+mIaimJGsdCzolDaCZkonQOpJ0J6cSuznvs3DLIjGIpyDhDwwzKVogJeSssMsxBZD3ucVWgdgrOYz7h7x0kQs89rvFrica+U/GKT9Y8UtKitPT6NnhLDxOlmAO92VWBfMJV+AUjyz1eaNJrBRqiJkIbeyMhxw6vsVrIOa88nsEuqlZZraWhgNaw4h4XFnPzhETlcefcM6Q7yIsMH6LiH1Qq+RYUfqqQ35uf8bA0QqJxWW0M1M/f6lhGKudVRTYobkJjzCcJZAbdF1MoaWo/hv0BPbYrow58zL1umKEoMhG57ARfDPF1Y74xM2sAeV2fPC5InTA3EFlxi1vetX5dey+kTsSP49iJIh8c7h+EGO/7h+Hx0B8dHvT9oyQZ+uNBEvaPEPuHxwllcVcJdPW5POyuiS475WhHwr+rejYR25BDpTIEuV1Cszo8/BBG0cF4PPYHyeG+PzoO930YDgZ+cjwO42F4hNFxfzs3O+rtudLqVGKMt5hRkih9HbRWl1h5DahxMoqTQRz70dEo8UdHQ/CPRhD749EgSeLRAR6O4REokPi9oBIhQUYCshsqYK2y7BG++jRQyQnrsuf6TH1mRk8diisJpU2VFv++7mTsLmnUWukniwXvrAbzsgZjwZZdPlnmIbni8RyNgflTnax60H4aGPyjsmzLzQ2K1s6oP+hofijxMxXXqdl/nJrflQ5FHKP8+Xl52rsNgG9gcH4YjEot7Mod3HcIGvVJaVM+mV1TUd75kYpxjtJv5p4fqnjlN+eA3usQojRCSeO0LHDFJzslPX4LWXmvgQzlaFNFR7RQxkUBCAQPSrczEE59S29koNR07JxYC39K4awj1nVi0+EK8ScS1u2EnTR5rZeFFCFGzShzICTtBs2S8eGfS/bmbDocH+wxpZuvN+zk4pwtcEULQxOQLX3UUMlIrZbOwfTsYtD/QcjY9OzCH/RrbLXPbG3VAmW19ypEw9GPRDQc/QhEf5eoV98Gy7GyAjTkaJ9H1AHgILWGv5J4PeFkopy5pg9PLWYZaHYqTFhqgzlKyy4ysLRdUu6pjFGbGsawN+jRPDNlnoNeubUW2W4db6anF3tM0K5rlcpYWIrMskRppvQcZBMiw6xiOSyQhWW2YAWsSIv7CmyuVVnQOqwxEoVwBHWL2m21rXWJdqn0ovcodr8exM/ys3T3ATIpmSpQ+kaVOkJWaEUdktkULJFrKEoyq5z6J9R5DGTsCNSLWASShcgSVcrYCab0T5apJVWLxkIZYZUWaCaEw2czU+sLmqcfd4LkF02Q/BCiBcr4+k1qbWEmQTAXNi1DWgaCV2nYmzDn/D2UVVvO9e2nYXNeCZloMFaXkS114yDlxb6U094rPEu0m2L/x7VWxUu+LTFkLe93e5NilvtRCtqanZA7fIHViEEOQgbNh53+vOTGH5jlzCly+GMsMrVqr5m7zxpdpeZsUYaoJVo0vc/UpSzq3HxKpqhvRUR9qXWrgdlTeh44Jl8lvmnYPJ6JCKVxw79tvAVEKbKh61P1DCVdkyBYLpc9cFSnrRE1wV/n788+Ts/8Ya/fS22euT5JAzoH2VFcX9NYc0HeajGdC/KveM9vRovFOxsUGQh3y3KhWTcbyIyX7a8WKW0mkxlfr0MweKWzqqLP9QSZzK5pq9ECQncLuq68dqhtdqL3dSz8SzK7WYLohwO6otRMJ1GEhe2QH62PW/vSxafpJffqRWqy5rmKSUbDku4hsHSLksfh0SxduFnavBDEliRXHdsPh3UNkf4S4CdF1ut6UlfVPX9NelaiiVPLTVm4rqrqPxk5TOU= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx new file mode 100644 index 0000000000..7af37260c2 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-wallet +title: "Create Wallet" +description: "Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains." +sidebar_label: "Create Wallet" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx new file mode 100644 index 0000000000..1e862870f5 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx @@ -0,0 +1,77 @@ +--- +id: default-tenant +title: "Default Tenant" +description: "Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true." +sidebar_label: "Default Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true. + +Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx new file mode 100644 index 0000000000..366d7f670e --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-a-disbursement +title: "Deletes a Draft Disbursement" +description: "Deletes a Disbursement in Draft or Ready Status by `id`." +sidebar_label: "Deletes a Draft Disbursement" +hide_title: true +hide_table_of_contents: true +api: eJzdWVtz27gO/iscvrSdsWz5Fqd+c2PnNGfTJGu77XTbjEqLkM2NRKoklazXo/++A0p25Ni5tM12zpw+NIlIfPgAggQIrqhlc0P7n+lQmFmmDSQgraGXNcrBhFqkVihJ+3QIMVgwhJHqRCIkGWoWWaI0GQPjSzKxzGaGzJbkq+Bf67RGVQqaIcwJ3wANqii0RlOmWQIWNHJZUckSoH0qOK1RgepTZhf0LqeTIVERsQsgX6twTqmGb5nQwGnf6gxq1NhljJBGJGkMtEbhrzRWHGg/YrHBCeECEkb7K2qXqZtptZBzmueXiGZSJQ0YHG/5Pv7Y5x++7R0OlonY0BoNlbRoaX9FWZrGInQOafxpUHi1q1zN/oTQOUaj+6woVAu+S/CuV6YLIJkU3zIggoO0IhKg147i226Hv5hzR58eNF9zdtjteYe9VtfrhN1D73W7zb2w2fJZp3sIftSlea1cmadwwJmPqt1y1xli5+jtEMQ16EDDXBhbBE+QgDFsDoGFJI2ZfSKLMDNWJWQtRDIDnFhFDEhOhLwW1qEb/LbWa+oERb9yiFgW26+kVE2EkS8s0WAzLYHXyYl01pXDLwwpl5kI+8KQVBkjZjEgNOPcTY1UHKsbIee3jK6ZFmwWg+mT1ap+rudMir8dKfRHnpObhQgXRBgHUB13DkOdkZhnGjhhkiPGuOK2UyGv7mLEQl6ROUjclsBxq06GFxunWOUmrZ1BXgpJQmaA2IUwCCGVJakGU+7/igdqheEssyphVoQsjpeEpSlIjuysmwuSv6pvBcEnlZEFuwbCSMqWLhRumLDopUhpslQZibRK9runTo5iEV7dY7dbVfwKul6EViWicLVYaIMiinajCWSW4NE4ejc4OaU1evH2/GwUnL1/92Y0prXiczA4GwYfB6eno2kwGA7Ho8nkzsx9My5r1ArrjK+SPioITZFHXqM3LI7B/uipcOvfLuPsNfCu1+l2mdfpHbY85gN4zQO/d9ADn8Os+dDevkX6IGaaSUsGxghjUWahEkjZ/BG5hbWp6Tca14U8S9N6qBKUN5AGTT8IYwHSBlwlTMiHsVgqPA7X9V0sDpAGGNzBfYf545wahqcIj3ihBtwgAbP7kCKlExyhnFnwrEhgC77lt9qe3/PazWnL73f9fqdbP+gc/oHAWcr/DeD8Nqo+FqGT1ygz5jliKIoYhJ1Z2+sczHyvw2cdj3XCjncQtrv+od/t9XyXH0KXUx87mQdIiri5VSXvJ8MjBBHGZKCfClPMxiNWgzFbgP9582bY6Z0cH5x+/K130Xs3HH2YHH0c94YX7z9+aJ99ag+nv48+HJ92zgbTzuD3t+0/Tk+PTwfdZ1r9lue3p01coX63+VwrvwvKi9rjZ0APStBuCZrvy6UTC3HMNHEhRTaBtI45txpuT7sS8KETdTgeHE9pjY5Hg+EnWqOT6WA8HQ3x5By8n7hfjs7fXZyO8GPlsKyWC0WhifquQYuoLKmCSEC8P5bXugfTUXB+HLw5GU/f0hr9NBqMg3fnZ+6Pi5MzWqNng+nJ+dngNDgZro/7CokPFXXHTtvG5mAhjFV6WdHPtGZLLGMtJObxfZgZ0MFjm7EdtbvN2WvwgPuR1/Ej5rF2s+M1O71ub9ZpcVYc6L96ITC4jGVJ+mzBnT+k8m3h7JG0ekmfMhMnRSKG4PFMV61YvQhmnt/2kGI9NM+VG37R6WCVZXFQFlbVYBDSwhz0btmMAkRmyay4N2xEK9qa/g5yYMoLznfCmywMwZgoi/dqOtxVFDERA/8BVYXgfoN21WjAYgR9//2aNrL3KmOJyrDiKePsiRc7R5EUsptbFSdGkYjprXA49P26798GQCHzA1qsIrPbGxzfUtL0N1rYNWi8nn2PnlJmrSkFvXbXXS1OyT1bnOY5DnX2XcvfME7G8C0DY2vkiEm8uxTpkrCtWymxC2bJghliLNPW2flMl3bQWj2hmBkWzQLCZiorb0pOMEdXWM0eTx558Q9d0dx1xXvJMrtQWvz9C4x7OundJFXsIoQor5X7mjLOzk2IbHjQM2XJlp23NNaKOn6zAn1XYuPC9q4Lj5WeCc5B/vv+u8e8WwZrmp1dmmjRscrk//kyR6WJ+1a4U13hMRiV6RBc56KQWu8UA2GmhV26ruMbYBr0ILML2v98iX2/BOxCYdeyODNcoxJHaaN6dpjGSvCcIpq+XrcwMx3TPqWIslYyQWcX3qiqui0VU/EbLHdvOWVwFj2fBTAO2nWaygzDpOvf/PfjlLwcTVrdg1fYjS2+BmRwcUKuYIkdl7KruoW3brAWsLgak9FF038mZmQyuvCafsGtsJmsrLoCmb/6LkatznMyanWeg9HvGejl02i5qWTT5L6PUYWAo7RW/A3FXf4TMlJOXZkH11eyrT7qRcwsFou49tRdj0xBo1Vv1n2M0yxJGN5Stq51+zFeToYXr7Dtx4hVKiazTMTW9eVUpRfn+qcJuwIyy+KrTdHjWp9krlWWFlVRKFLhBhS2Fm1FuwR7o/RVfW+h8L9F8Yv8IqdlM5RJolKQXnnCpFrh6VdUE8KUVJQkVqXrZvgduJpr2+IA9kNIyCTWW+6YcoJbXWMNqTLCKi3A9JGHRz6bAq9R/vS2ri5p6SRvxsIrkPzy5brvNRd2kc2Kntf3ILzqE2f8hspyHc5Fd7mc5qwSMtLMWJ2FNtOlgbgu9rE1rX+HZZF2Oe5nTFtDPGbbDczIeu4PW7OAOPHCBdPWPEi5Mq9hNUADrxSN8sOD9jxmxluIE+KAHH8OaayW7lHi0b2WGZx3lc1AS3wQrH/BU8qCTsx5NAF9LcJqc7WkWVd63nCTPBV5ppxWo7EIQRqX2dcHb8rCBZCWO6eKHIpY/Ubj5uamztyoQytFTeP05Gh0Nhl5rbpfX9gkdudkqoxNmKwAVx4w3YPlnQfIrTNndVs2/czDZ5kTLPxlG2mMje28tGlV1hGft/oMeEfsC459loUyFodXqxkz8F7HeY6fi0TQ/3xZo+tnI1dscGHwd755zbzXnJfj8mH0FXno+XQv9XWOk5jgrlmc4V+0Rq9gWTzW5pf4IlBkSaRVDAzCEFJbEdkpRLdKreEIu020RtlOar1yqbX8BRXsZXQ3dxcs8P+8do/IalUk7jzfzC+G7pUordwYj0bkef4Pyku5yA== +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Deletes a Disbursement in Draft or Ready Status by `id`. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx new file mode 100644 index 0000000000..26bd899f50 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-api-key +title: "Delete API Key" +description: "Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests." +sidebar_label: "Delete API Key" +hide_title: true +hide_table_of_contents: true +api: eJzdV01v4zYQ/SsETwkgW47r9qBb2rhouotdd51FD9mgoKSxxTVFKsNRvKqh/14MJXmd76ZNgUUv/hBn3rw3pGaGO0lq7WVyKU8X5+INNF5eRTIHn6GuSDsrE7kALJUFS6YRORgg8EJZwQ4baMbiotBeqIytRaasdSRSELXNnYWxeG8z6N3ySFABg6PYamOEdcI4uwZkH5UaEOSEqqkASzpT1JkjXNfgyY9lJF0FqDjYeS4TeRaQTxfnb6CRkawUqhIIkDXtpFUlyETqXEZSs5ZKUSHvCrwomK6+rkHonOOuNKBwq1tsyfUqZCSZjkbIZUJYQyR9VkCpZLKT1FQc0BNqu5Zte8XGvnLWg+f16WTGX7fjDyH6LAlfZxl4v6qNaWQbydnk5L7TR8tZcqj/BFaXOUtgie1UVRlOnXY2/uzZeHefoUs/Q0acMeSEku74AaLDB4REEr4QKv88gidF9aGdrcsUkCFK8F6t4aE8tW0IocrKwAEP+c6RuKXzK40h0GxycgB916OHnk2+u5/Cnx2mOs/B/vf5e0TeVwYDzSeOB79YK1fb//l2DxIf2unZ4U5/AO9qzOAgMW0P7SGrUVMTisCPoBDwtKZCJpdX/EqWQIXj6rF/o0NdSGSsKj3aQOPjnc5byUB4MxSTGo1MpGSAAX/Jee4ScRhlL1hVuqtLd3a0P59h00QBKgcUvKVKW23XXF2XZwvx6+8X4mi+nH7/w7Fw2D/9Y194ZTTUt1t4Q6nrYHkjlvPFyeSVmInlfDE6mXTcOs1iR24Dtj1+EaPp7DUZTWevwei3GrD5e7SCqdi3m8cYHRAIlIbA1+wu+ahqu3IhnCZ+F+SSwBiF4kz7tEYPJVgSC6No5bDkvZeR5CPZ0ZiOT8YTPqd1WSps+mb2NMbR8mxxLLhnC3LOiLTWhl8gFA7XyvYp8tzxSrUBkdZmIyrVMEp4qsQaXV1xh0TIdKXDgrsBDB1ziG6Btg434wf77bdF8ZP9ZMMYo8No4yqwo764VOi48AkqFPFyR8VZQa4aZoQ7cJFQNg8LmcuBZyIebkKFCo4F/zHGbfm0IFTOa3KowSfMYyQufYcX99+j/CBJo6pP0ihV2QZsfnVUEFU+ieO1pqJOx5kr4xchHCfdDLen0gzH2QeyvVlQpe0KlSesM6qxF8j7Qs/t6fgFylYY2tu/kTZAPKdtC6kYbP+xmgJMOcoKheSfpHxgFxMCxKXSNu4fPKnnORm/gClFAAr8c6iMa/h4PatE1J7tNnUKaHm2H3/iKkWApX+/WgLe6Izr0iCrpzl2uI6D0citRr43i6TRGVgfmvpQeCuVFSCmoU51PZSxkjjebrdjFVYDWu/q47fnP83fLeej6XgyLqg0oU5WzlOp7AFwN/qL/uJyt8rsvs5I39oNpu8sBF8orozSlhtQyMyuH0Qu5TCIyEgmOudLWeE88cpulyoPH9G0LT/uOklyeRXJG4WaCYRpJdeef+cyWSnj4YnsHH3orzPH4sU3oQelDJ3T8qbcKFPzPxnJDTTdZay9aqOh9zLXbuE0y6CiA5d7k+2t2e1s/nZ+MZeRVPca9iYch/4HB3iQ0d2JoGPBn230iMtu140Dbbu375Ye9ehV7sWziLZt/wK3hWWi +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx new file mode 100644 index 0000000000..d11fed0915 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-asset +title: "Delete Asset" +description: "This endpoint is used to soft delete an asset." +sidebar_label: "Delete Asset" +hide_title: true +hide_table_of_contents: true +api: eJzNVsFu4zYQ/ZXBnBJAthwj7UG3tDbQtIuuW6fowTEKWhpbrClSS1LxagX9ezGU5DrJOmnaHHqxLHLmzZvh6HEa9GLnMFnhR7sTWn4RXhqN6wgzcqmVZXhN8C6XDkhnpZHag3RQOcrAG3Bm6yEjRZ5AaBDOkR9jhKYkG7BuM0xwFgxueBMjLIUVBXmyHLhBLQrCBGWGEUoOVgqf41MGtzMwW/A5dTE4dhcWI7T0qZKWMky8rShC52vFkE4WpWID+lwqkxEmW6EcG6Q5FQKTBn1dBktvpd5h264ZzZVGO3K8P51M+PGYS0ikD5+Bq9KUnNtWStUYYWq0J+0xado2wunk+py/UJZEVg84z1yvz7tq42FrKv3UqY3QUVpZ6etQ2u9IWLI3lc8xWa05uYJ8bvhIjsUL1U4wDmV1cSOzFhnGPgwHVFmFCSK7D+hLLmBXodMYx3qKUv5E9bNDZCtj+y6DnERGFjgBIbXUO+6g5WwBP/5+Bxfz5fSbby/B2H71D7hZ3MKeam6vvmce4Q3t08FiG+FyvriavBMzWM4Xo6tJx63LGRpv9qTbyzcxml6/J6Pp9Xsw+qUiW/8zWsEUjp/wOUYnBAKlIfAndkduVKm3JoSTPnysS09KCQsz6TaVdVSQ9rBQwm+NLfjsMUJuyY7GdHw1nnCfVkUhbB0kiuBljIvlbHHJ4iXAG6NgU0nF35EFcyJ+jqWlEHuCTaX2UIqaUcKqgJ01VclCZCmVpQwb5oFsEKYhuiZ/MHY/fla7/x/Fe32vg7ZzSA2mJD1yprIpQWnNn5R68LkIit9RMRq8KQcpfgIXgdBZ2EhNRpAKDRvqhCo45vyilDlwt1gqjZPeWEkuYR4jWLkOL+6fo+ykSKOyL9JoI9I96Wx9kXtfuiSOd9Ln1WacmiJ+E8JlAiH5I5V6aGcXyPZmISupt1Y4b6vUV7ZPkM/Fv3am4zdktrVBzP9LagPEa7kdaAOD7b/OJidVjNJcWO9epHxiF3tLFBdC6rhfeDGf19L4gVQBASjwz6hUpub2ejUTqBzb7asNWU2e3PieVcqTLdzH7ZLsg0xZl4a0eppjY3dxMBqZ7cj1ZhEqmZJ2xIo2CG8p0pxgGnSqu0MZK4njw+EwFmE3oPWuLv5w+/385+V8NB1PxrkvVNDJ0jhfCH0C3E1TMIxTjzSm+XseePvQ1iu/p88+LpWQmi+IwLzpx4QVdmMCRpjIjOfE3DjP602zEY5+s6ptebnT+WS1jvBBWCk2rPGrBjPp+H92HMXOsr/4tZ/qLuGl2e+rnIcrTPP99SBUxW8Y4Z7qbtJs1+3JLDSbf5jfzTFC8ewK3IcrsP/DCXwV+ukd28Xh3zY649I03QXbtkf7buusR39nH7PQnEXb/gUL5Rya +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to soft delete an asset. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/delete-wallet.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/delete-wallet.api.mdx new file mode 100644 index 0000000000..28a331dbc2 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/delete-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-wallet +title: "Delete Wallet" +description: "Soft deletes a wallet provider." +sidebar_label: "Delete Wallet" +hide_title: true +hide_table_of_contents: true +api: eJzdV01v4zYQ/SvEnBJAthzX7UG3tHHRtIttus5iD0lQUNLY4poitUMqXq+g/14MJTlOnI9NuwWKXvwhDt+8N6TekA14uXKQXMEHqTV6BzcR5OgyUpVX1kACC7v0IkeNHp2QYhPiREX2VuVIY4jAVkiSo89zSOAshHZwEEElSZbokThLA0aWCAmoHCJQDF9JX8DDnOdnwi6FL3BI521PASIg/FQrwhwSTzVG4PxWM6ZTZaU5AD9X2uYIyVJqxwFZgaWEpAG/rUKkJ2VW0LY3jOYqaxw6Hp9OZvx1n0wnpc+fC1dnGTq3rLXeQgSZNR6Nh6Rp2whmk5NDgPdG1r6wpL5gfm8GyKrSKgu1iz86Dm4O2dr0I2ahlMSV9qrjikSWHhHF+j1J9zKC89LX+3GmLlMkhijRObnCx2rWtiGFDMW+4wFvrRf3dN7RGBLNJid70A9n9NCzyXeHJfzZUqryHM2/X78n5N0xGGg+vVWM9WJpa/M/X+1B4mMLPdtf6HfobE0Z7hWm7aEdZjUpvw3m8CNKQjqtfQHJ1Q2/nSX6wrKr7N7+4BcJxJ0xuLhReQuMQ7eDx9SkIQHg+QP8gsvc1WE/yU6vrNRvuD3wodN+d4Y1EwXKHEnwikpllFkJacTi7EL8+uFSHM0X0+9/OBaW+qd/itOLc7HGLVtkb3v38AYH7GB5HRbzi5PJN2ImFvOL0cmk49ZpFo23azTt8asYTWffktF09i0Y/VEjbb+OVggVuy70FKM9AoHSkPgTTwfeqcosbUinfGg3C49aSxJnyqU1OSzReHGhpV9aKnntIQLekh2N6fhkPOF9WpelpC0kcFmgeB7jaHF2cSwUd11vrRZprTS/PyQsraTpS+S4OZZyjSKt9VpUcsso4akUK7J1xb2UMFOVCgP2Fin01iG7Qb+xtB4f1O6/R/HaXJvLQrmQ0ghboRn13lKRZd8TvpCehzsq1ghvq+E08QAuEtLkYSCzOYpMGpFiZ1BhYsF/tLYb3i2ElXXKW1LoEuYxEleuw4v771G+V6RR1RdplMpsjSa/OSq8r1wSxyvlizodZ7aMX4VwnIggfkdlO2xnF8j2YUGVMkuSzlOd+Zp6gbwu/qU1Hb9C2ZJCd/sn0gaIl7RtMBVD7N9WU6AuR1khybtnKe/FxZ4Q41IqE/cPntXzkoxfUJciAAX+OVbabnl7vahE1I7j1nWKZPgwPr5ml/JIpft9uUC6VRn70iCrpzm2tIpD0MguR64Pi0CrDI0LPX0w3kpmBYpp8KmuhzJWEsebzWYsw2hA66e6+M35T/O3i/loOp6MC1/q4JOVdb6UZg+4uxGI3ZXgnsk0dyekr7hq9F7v8bOPKy2V4ZYQuDb9yeAK+pMBRJConO8zhXWeB5omlQ7fk25bftxZe3J1E8GtJCVTtvWrBnLl+He+uz88yffoXX8VORbP3lgeZT20LcM961bqmv9BBGvcdhek9qaNhsbHvLqB0yzDyu9NOThV3js3nc3fzC/nEIE86Jbr0C37H5zgUUYP23HHgj/b6IkpTdP14rbdxXdDT87oVe7Es4i2bf8C1RUcTg== +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Soft deletes a wallet provider. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx new file mode 100644 index 0000000000..9833a7a087 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx @@ -0,0 +1,74 @@ +--- +id: download-disbursement-instructions +title: "Download Disbursement Instructions" +description: "Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement." +sidebar_label: "Download Disbursement Instructions" +hide_title: true +hide_table_of_contents: true +api: eJzdV0tz2zYQ/is7ONkzlCi7bg+8OZHTuu20buS0B0fTAcmViAgEGGApReXwv3cAkDIl+ZE0yUxbHSQNsY/v2wX30TDiS8uSOzYVNq2NxRIVWTaPWI42M6IioRVL2KWUemOBK5hNb6C2aIA05HqjpOY5UIFg+AZezn6HhZAIVHCCDbdQV04Ac9gUqCAzyEmopVfIBy7HcFsICxshJWglt2CQaqPAoK0lWeALQgNCWTJ15jBZKPgaIUVUwIl4VmDuIHHIDV/QvnEWMV2h4U7xOmcJm3bAh6yvB8ZZxCpueImExoWnYYqXyBImchYx4SJScSrYYZiup6AXntzQMouYwfe1MJizhEyNEbO0lc6eFWUlkUUMP1RS58iSBZfWCWQFlpwlDaNt5SXJCLVkbTt31myllUXrzs8nE/ezD2TofpcVFrECee4pNeylVoSKRlNhK21FUDy0c1ugV3X0e2ohNZjv7Lr4fgahaAfl1p8cYiD8QHFm15/npY1YFtz4095m0jD8wL21hAWxi4cC+oLn4JKIliIQas2l2D2AwV3Z88KrSorMX7v4nQ3xPUKo03eYuTtSGXdJSYS0ojHaHBM5vHFTJC6kBZ7qmnx6gmLrYkOG22c9teHjeJ8d836jeE2FNuIvzL86uY8HzSxxqodyqi5T9LxLtJYv8cFL0HoXXb53ONgvmmCP5z2M3tHF5Gxg+lBjF8JvjkP4SptU5Dmqrx+/R+jdI+hhXjxTMhy9V7pW//OcLzqKD6X7Ypju12h1bTIEtdPqXxuLWW0EbX2beIHcoLmsqWDJ3dzV6hKp0K7nLNEzcm0jYfGwP9m4EXkbi/0GZNGs++5TG+nL0/ze3cyFPcRl6HTHn1fiJ9we1YvL7s76HEJoB+AyzIVyjbnr8D/+cQsnV7Pzb787BW26p3/C5c01rHDrCn7XEPfs9b0xmHV5mV3dnE2+EDKYXd2MziYBW+AMDekVqvb0kxCdX3xJROcXXwLRbzWa7cfB8qL3PecxRAMAHlLv+L1T921XqIX27gT59jcjlJKbvdkFbiSnhTalyz2LmLuSAcb5+Gw8cfe0Lktutt2w8LSNk9n05hSEBQ6ktYS0FtK9Twa0WXLVhci6Qa7kK4S0liuo+Na/JWG8WxpdV24UMZiJSvgDvXbz6MC7Qtposxofxe7fB/Gteqv87Cv8eK0rVKOu1lRGuzoYhmlhOyhaAemqH8YOzEXAVRjHM50jZFxBiqFgeUU3zmk3y7vbYtAPftoItInDMYI7G+zF3e9oWKdGVRekUcqzFap8flIQVTaJ46Wgok7HmS7jT7JwmoTBfwdl219n68F2Yp6VUAvDQ4msTUfQ5YWey+n4E5gtjO92n0OtN/Ectw2m0Mv+YzYFynKUFdyQfRLyQC4mgxiXXKi4e/Akn+do/ICyBG/I48+xknrb73hPv2u1dXKrOkWjkNCO37oqRWhK++tihmYtMleXelodzLE2y9gLjfRiZDuxiEmRobK+x/eFt3J7IZz7OhV6qLOVxPFmsxlzf+qtdao2/vn65dUvs6vR+XgyLqiUvk5W2lLJ1cBwvz/u8zrYIPcqT3M/Rv33l+muP/klqpJcKNfGfHybbsC5Y3sDDotY0q3OgxDNI1ZoS066aVJu8Y2Rbesehx6V3M0jtuZG8NT1p7vGGXX/892+92iMT153G/cpPLqUP0ij773KNd41l7VfDCO2wm3Y/9t52+/RHlM4uMwyrGigstsw94bA769uWcT4UZ9f+T7f/XFWH4RxOEgE1+67jR5RaZowRbTtTj4cParRUdsxVo5x2/4NSrxlXg== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx new file mode 100644 index 0000000000..6f3b2e8c34 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-disbursements +title: "Export Disbursements" +description: "Exports a CSV file of disbursements." +sidebar_label: "Export Disbursements" +hide_title: true +hide_table_of_contents: true +api: eJzNWNty2zYQ/RUMnuIZUpRVNw98Uy25TZuLajnteBxNBiSXIiISYBagHVXDf+8sSMmUbcmXKDN50YVY7J6zWO4FK27F3PDwio+/lRqt4TOPJ2BilKWVWvFwvcAEO53+w1KZA9MpS6SJKjRQgLKmxz2uS0BBW94kPOTgNo26QtzjpUBRgAUkiyuuRAE85F+5xyVZ+loBLvld+0NmQGCcMQtYsMpAwqxmTpbZDHU1z5jNYAsRI9UOFsLXSiIkPExFbsDjxi5zsppqLLhHQHOdAA8tVrQaZ1AIHq64XZYkZixKNed17W3wGitsZfaDPtVFIXwDxNhCwnJp7F23sUYRGOKTytwCsmh5QNAeB1UVdLij8+HZBff4+Xg4uuQen14Mzy/GI+7xyfDj1P04/fBu8nZMD2cet9I6e90DnDa0azIvirJZd3o7vokRiO9nYT+L1ALu99IHlS8Zgq1QbQcUs5mwTCCwViFz2pjNpGGJsNBjZxoLYUN2eXl56b97549GBzztLsdBv//a7x/7/cEOohGkGuFgTBt1PxFVo9HuZ3cmIU82rybJb5M8ZEgnkIoqt1tH0Il0h9nrrs26724iEWKHei+h0VqMpRodIanm93PeDyBFODp0hPvnHs7qekYmTamVAUNqBv0+fd1JPbuyNLlFKwvKOgjwzQaxuabfu4GlLvR4yCOpBC55Xde1x0/6x/ftflSisplG+R8k26ZEWeYydsUh+GJI+AGTOvoCMZ1kiVRKrGwoAqLGHWFrUZjHNbTp+lZOVUUESCoKMEbM4aF073hu3owNDv5eW7bF8xbG2tBJ/7ij+u6Oeu3CX+678ExjJJME1I/33w56twhanAbiCqVduoL9GwgEHFY24+HVjMKxAJtpKvhzcLYFLfGgKf8muBt/BvB6Xf0rzHnIOWlZG5kSqQZ319QGvCjlX/BAh9B613mIZSASQEb+E1LReysUm44m7M9/L9ir8XTw6+sjprF9+pkNJ2/YAlzdbZPElr51omjUUtRMx5Pj/oGQsel44h/3G2wNZ7ayegGqPnoWosHJIRENTg6B6G/KrU+D5UTZpj/chagDwEHazuIUr1Kl2plrO5iphTwXyLqdDJvkwlJmo7PnHqeQbGAMese9PsVpVRSU7kJ+kQHbr+PVdDQ5YpIaZKt1zqJK5tbVDY1zoVoXuSavEAtgUZUvWCmWbfnXTLA56qqkfI0Qy1K6BX3t+p1b6wrsjcZF757vfj6In9QndUH9C5lUTJegfKMrjIGVqClPNW2PNC0UrZjVTv0D6jwmVOIWYp0Ai4ViEbBUVypxGzP6k+f6hqIFodRGWo0STEg4fHZlGn1B++13s5Jftk7yIxEvQCWzV5m1pQmDYC5tVkW9WBfBszQchcyR30BZrsPZOLCtmGMlVYrCWKxiW2FLkM7FPnamvWcwS9HVku+htlbxGLcbiNha9sVsMsgLP84EWrMXckcusAgQFEKqoH2wl89jNP6AvGBOkcOfQJnrJYXXo0xYZUhuUUWACiyY3ifKUjS7mg/pFPBaxpSX1rRamD2N88AJ+Tr1TSvm8VzGoIwr0evEW4o4AzZweaqpoaQrDIKbm5uecKtOW7vVBG/fnI7fT8f+oNfvZbbIXZ4stbGFUB3FzZzP7s7sW7lmdduWPPVeoM37rt0scyEVlQeHe9W2C1ftbYGztmV95vFMG0siq1UkDHzEvK7pcZPwqY1IpBFR3unBdwL+vouEB3ksYNleYFyLvALXz3jPwfR99wR7MG0uKV4I7OCj+R6sD1wa/HjUTxyznwZ7cwXwQtxPGKD3nXUzoL/Q9hNn3T32u0P1LYgZ/UFJKNy04K3bQ3prm43DOIayC30zlG7NFr+P6e5K3GskF66RbH+Q1vWSWnZ03u1UG9P0SX56cMtq1bSpdb2Rb5Z27mipraXJO7O6rv8HYs9v7A== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of disbursements. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx new file mode 100644 index 0000000000..c18c134340 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-payments-csv +title: "Export Payments" +description: "Exports a CSV file of payments." +sidebar_label: "Export Payments" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of payments. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx new file mode 100644 index 0000000000..d4b28eaff0 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-receivers-csv +title: "Export Receivers" +description: "Exports a CSV file of receivers." +sidebar_label: "Export Receivers" +hide_title: true +hide_table_of_contents: true +api: eJzNWFlv2zgQ/isEnxpAthxvtg96y9ZONrs9snHaIkiNgJJGFmuJVIdUEq+h/74YSrLlHM6xLtAXH+Jw5vuGozm45FbMDA8u+fi20GgNn3o8BhOhLKzUigftAhPs3eQLS2QGTCcMIQJ5DWj63OO6ABQkfhLzgIPbcNYKvJt84R4vBIocLCAZW3IlcuAB/8E9LsnIjxJwwe+aPmQGBEYps4A5Kw3EzGrmZJlNUZezlNkUVmBYkWoFV6rMQ0CPQS5k5jGhYnYyIpwIP0qJEPMgEZkBjxu7yAhHojHnHiHPdAw8sFjSapRCLniw5HZRkJixKNWMV5W3YmCssKXZTmN8KyLLcmGjlGnlENfbyJEb+G9EloHdIVSPgypzOt/R2eHROff42fhwdOG+j08m5+Oz8Yh7/Oj94fHxeESHb6V1dlbn99VhmtQ8K7Is8sKJ1Co7zogQhIX4StgrkVjA7W75pLIFQ7AlqnU4MZsKywQCa5Qxp4nZVBoWCwt9dqQxFzZgFxcXF70PH3qj0Q6PtstvOBi87Q32e4PhIyRDSDTCTljWqn4hmkaj3c7sSEIWr95Kkl8T3GUEx5CIMrM84GURN67vBPbGw/Xh8Gn3NY0lQuRwb6U0asVYotFRkmq2met+Ai3C0CEk3D/3cFpVUzJpCq0MGFIzHAzoaxP3g5mZ3KGVBWWdebi1fmSu6ffjoBIXdDzgoVQCF7yqqsrjB4P9+zY/K1HaVKP8F+JNU6IoMhm5guB/NyT8gEkdfoeIjqxAKh9W1vQAUeMjAWtRmKc1NBl5LVeXA1KRgzFiBg9ldMdz9U6scPCP2rINnmsYraGDwX5H9d0dVevC3+678EhjKOMY1M/33yP01gganAaiEqVduCr9BwgEPCxtyoPLKYViDjbVVORn4GwLWuJ+XfKN3409A3jdlvsSMx5wThpaAxMiVGPumlkBF4X8Gx5oCRrPOu+wFEQMyMh3Qip6V4Vik9Ep++vrOXszngx/f7vHNDZPr9jh6Qmbw4Le4yYxbOhrk0OtliJmMj7dH+wIGZuMT3v7gxpbzZktrZ6DqvZehGh4sEtEw4NdIPqH8unzYDlRtmoIH0PUAeAgbWZuilWpEu3MNS3LxEKWCWQjacISDeSgLDvNhKWsRmfPPU4hWcMY9vf7A4rTMs8p1QX8PAW2Xcebyeh0j0lqhq3WGQtLmVlXKzTOhGpcZKge5mIOLCyzOSvEgrS4p4LNUJdFk6dlId2CvnYdztq6Anujcd6/57tfD+I39U2dU9dCJhXTBaie0SVGwArUlKPqZkeaBgp1wLpoW9876upunRYiHQOLhGIhsESXKm5b50Rnmb6p63KhjbQaJZiAcPTYpan1+c13L+44qVc0TuqFIpqDiqdvUmsLE/j+TNq0DPuRzv0XadgLmCO/grJow9k4sI2YYyVVgsJYLCNbYkOQzsU+dab9FzBL0NWR/0OtVfEUtxsIWSv7ajYpZHkvSgVasxVyR863CODnQiq/ebCVz1M0/oQsZ06Rwx9DkekFhdeTTFhpSG5ehoAKLJj+N8pSNKyaT8kE8FpGlJdaWg3MvsaZ74R6OumZRszjmYxAGVee28RbiCgFNnR5qq6hpCvw/Zubm75wq05bs9X470/ejT9Oxr1hf9BPbZ65PFloY3OhOorrmZ6ddcr1Rp5ZrtuR58z/Tb53LWaRCamoLDi8y6ZFuGxuBerBoLU69XiqjaXl5TIUBj5jVlX0uE7y1DrE0ogw6/TbjwLd9W3Bg6zmsGjuLa5FVoLraryXoHzNZcAWJKv7h1fC2ekQvgXnA1cDPxfxMwfq50FeDfqvxPzEqLztfOsx/JV2nzHPbrHdHZrXAKb0ByUhcFOB17aC9LbWGw+jCIou7NXwuTFDHI/pQkrcaxrnrmlsfpDWdkktOjrvdqW1afokHz24ZbmsW9KqWsnXS4/uaKi10uSdaVVV/wGRvVrJ +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of receivers. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx new file mode 100644 index 0000000000..13f46e2356 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx @@ -0,0 +1,74 @@ +--- +id: forgot-password +title: "Forgot Password" +description: "Sends an email with a token to an SDP user who has gone through the Forgot Password process." +sidebar_label: "Forgot Password" +hide_title: true +hide_table_of_contents: true +api: eJzNV01z2zYQ/SsYnOIMKTqatAfeHNudpF9RI3V6cDyZJbkSUZEAslhaVjX6750FyVhVWqtu05nyQhFYPLy3C+yudpphFXR+oy86rtGyKYGNs/o20RWGkoyPn7meo62CAquwBdOojeFagWK3RqvYycT8aqa6gKQ2tVM1BLVyFhXX5LpVrbhG9Y2jlWM1gxA2jirlyZUYwkQn2nmkuPObSud6GQ1HO51owo8dBn7lqq3Od0fUBlg/wg7GqgIGnejSWUbLsu559lxeoayxBfklpoawEg9EYSKctx51rl3xK5asE+1J2LHBIEt6s3w3mgUmY1f62F/X0U1uGYWLW3QislpgnQ8Ye9FVgueyhg/Rk6dhF9HhS0eK8PJitrh8faHuoDFVH7a9PMmBLKYO40DwzoZewfT8/LQT+zAHtKxCV0qYll3TbJ/gzxZDgBWe9uho+Jl4kcKGGxn6oTd6NwjRvdCXfyblFVTqXX8GTtA9EWkiR6dDcoUMpgkKCtdxDHe/cJ9ovGeCcHKn/fAk+j4tXYUrtOlwiNPCVdvUQiur5beOqGiDcVYu7k6vcavzR1cm+g6a7hPC/jbRLXLt5Kp5F73kgWud66y/eal/uHoB6Q6p36qjRuc6AgQsOzK8nYsze3+9QiAkSSQHisGb73D7mdPEypH5LR5bVSNUSEpCBcYauxrzybe/LNSz6/n0q6/PlKNh9IO6mL1Ra9xK4hhc8wc8nWgjm/SwEoj59ezF+RdipubXs/TFec+t16x28fruz57EaPrySzKavvwSjH7qkLZ/j1Y0VR4IWuS/ZnRAoM9xw8YfZXm84sYuXdxuuOpzxqYBUlcmFB0FbCUJzRpgyZ8SeznQSKGnMZ28mJzLOe3aFkiuwqJG9TjGs/nV7EyZECuYa1TRmYZjVnW0Aju4KEhha2GNquiatfKwFZQ4CmpFrvOS3wlL402ccHdIMQGMu1vkjaP15PM0/r+j+N6+t4vahLilVc6jTYPrqEQp05K1FNfAMt1TcVL3/VjhjuASBbaKE5KVVAlWFaiWrrNVXFjLR9O4jZwWQu+CYUcGQy48UnUTerxseKfVgZNSPzgpLaBco61un9XMPuRZtjJcd8WkdG32JISzXEXxn6hsx+McItnBLKoydkkQmLqSOxoESlz4VEwnT1C2pFi2/o20EeKUtg0WarT9x2pqbNq0rIE4PEr5wC5jQsxaMDYbBh7Vc0rGa2xaFYEi/wp947ZyvE4qUV0Qu3VXIFlkDJP3kqUYqQ1vl3OkO1NKXhplDTQnjlZZNErdMg2DWaIbU6J0KPnuU+L1UNaopjFP9TVUsPIs22w2E4izEW1YGrLv31xe/zi/TqeT80nNbRPzpJTqFuwB8FFDfZxmdg/Nz3/dvw+lgvGeM9+AsVJRotTd0Fvc6OPe4jbRtXQf+Y3e7QoI+DM1+70M97Uhv7mVzoUMFFIXbm73yViuHvqey15huhACD42OtHr7ZDS6KEv0fDx92AbN3s4XOun7I2lJXSVmBBv58wGb2PXs978D3fuhCg== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Sends an email with a token to an SDP user who has gone through the Forgot Password process. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx new file mode 100644 index 0000000000..fc83223808 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-assets +title: "Get All Assets" +description: "Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement." +sidebar_label: "Get All Assets" +hide_title: true +hide_table_of_contents: true +api: eJzVV21z2jgQ/isafWpmbHCAJDf+RgtJe5dL6ZE0c00znbW9YBVZ8knrUMrw328kmwTy0qRtOnPHB16k3WefR1p210tOMLU8vuBvzRSU+AoktOKXAc/QpkaU/mfMD5HSHC2jHJkUlpieMLgCISGRyMBaJMtIs1KXlQRCb5gZXWZ6rliivzCh/NoJztlA2KQyFgtUxCZSz1vsRBPG3kBv8GBFZYnlWmYMWAISVIoOCFgJhkRaSTB1cBe7ssgE1fvZRogWD7gu0XjINxmP+RFSX8q+Z80DbtCWWlm0PF7yThS5j235/RvRa6dUK0JFzhbKUorUw7c/W+ew5DbNsQD3jRYl8piDMbDgAReEhd1Y18lnTIkHvDSOJImahsg2bCwZoaY84PgFilK6pckEMO0l3bC3n0RhL0t6IfTSXrifdvei36K9g4Noj68czQzvQ7qlz5+ht90McjYevHIgwtoKzVNhamsGWWbQ2i3Ao5cvB72DN4f7x+d/HIwO/hwM349fnf91MBidnb/vnvzdHZy+G74/PO6d9E97/Xevux+Ojw+P+7USg0CYfQK6j8hEm8Lt8AwIQxLFtpJO1OmGUSeMuqe7Udzbi/d2PzjQqsyeHzRDiT8Jut+A7jWgq9tHfZojGxPKm3/AdSKRII/kb4Ov3CvgvWj3blqfKago10Z8xewHUvqB1EVj9D3JsnIqycATkt8SULVpp6oiQeMgCrQWpvekdC3z+hyvafATTWxL5g2LdZxetLuBfNvjVwLXV9O9ezWH2iQiy1D9+nu5X90NgScYeB0W08oIWvD4YslfIhg0/YpyHl9cri7dMVCuXfWdoucGbou3rwuqRXOFxnrvykgec+7c1qhjp7IWsol9U19L8Qcu7pak5rjrfpIjZGiYO1AQSqgpA8XGgxH7/fyUvRiOO3v7O0ybZvUT64/esBkuXAdRUOBtPFfOXZAa1qXneDjajZ6JGRsPR+FuVHOrNbMl6Rmq1c53Mer0npNRp/ccjN5VaBZPo+VNXceHAulhRhsEPKV14H+cu09ioSbah2sK5Lp+bs0jIwnkSrS7ex5wl5I1jU5rtxW5PK2KAsziVg2+H+PFeDDaYcIyYKS1ZEklJLGJNltjjp+cCpghSyo5YyUsHIpfBTY1uird5GEwFaXwG/oKjR+W1tEV0lybWevO2f33KH5UH9VpLqwPqZguUYVWVyZFVhrtChejHNwU0VDRipH28PfABQxU5jfc8MJSUCxBNtGVyrxj7n5IqecuWwyW2grSRqCNHY+QXdgar918hpuDY1g2hxQmkM5QZZcvcqLSxu32VFBeJa1UF+3vQtiJmRd/TWWxTud6tm7MvCqhJgYsmSqlyjQC3b3QY3fa+g5lE+Oby89IW0M8pm2OCVvb/rCaHGURpjkYst+kvGHXJoPYLkCodrPwTT2PyXiNsmAeyPPPsJR64dLrUSWsss5uViVoFBLa1kdXpQhNYd9OxmiuROrq0lpWQ7OlzbTtjUI9CW1jFnApUlTW9+R14S0hzZF1fJ2qe6jDitvt+XzeAr/r0RpX2z5+82p4Mh6GnVbUyqmQvk6W2lIBagP4CIn1pWTXj0xbVWZ5M6H87x8Um1ZE+IXapQSh/FOCO8plM7Jc8GZkuQx4ri25leUyAYtnRq5WbrluOfHFZcCvwAgn3U9BwboLuhlnhq6H9NMUSzcPXYGs6iZ4a8Lbmp2Ohqc84HCnb85832y+OPT1llpsYN9uzDUF974KHnBZLuuuvFpd29dbD3o0EtfW7gQvV6vVvx6Mr1g= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx new file mode 100644 index 0000000000..c2845c18d2 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-roles +title: "Get All Roles" +description: "Fetches available SDP roles, such as owner, financial controller, business user, and developer." +sidebar_label: "Get All Roles" +hide_title: true +hide_table_of_contents: true +api: eJzNV01z2zYQ/Ss7e4pnKFFW3R54cxsnTdNJ3MqeHhRNBqRWIiIQYBegFFWj/95ZkLTlj9hx63R6EUVg8fa9BbC73GFQS4/ZFC89scdZgnPyBes6aGcxw1cUipI8qLXSRuWGYPLyHNgZ8gn4pihBeXAbS5zAQltlC60MFM4GdsbIaN54bcl7aLy8KjuHOa3JuJp4iAnKU4m3N3PM8DWFU2N+F3xMkMnXznrymO1wPBrJ4ya/928xQXFHNsisqmuji4iXfvJiskNflFQp+Re2NWGGLv9ERcAEaxbvQbcOoqoDM8WstpigDlQdjvvA2i5xv98nSJ9VVRs6WD7FK3mY4FVMPl7HBBPsgyL6JXg4e2YwgTsZHd8N2KVVTSgd679o/nyhI2bH94RINAVW/nEEH1RoDu1sU+XEAlGR92pJ9+7Azah1NPCdC3BD5jWL3s/J6PgA+faKbwncbs13d7fmleNcz+dkv/2+3K/umsBXGEQdnoqGddhiNt3hj6SY+LQJJWbT2X4mYQilk2u9pMhNyRSmkgl8yt0l98RryT0C0bDBDFHW9tATkdqqOXRwfUtr/Zbkmt4M5mkX8xg3KEnNiWNeUtpquwRlYyb75Y8LeHE2GX//wxE47kY/wun5G1jRVvKTVRXdxpOkIE5aWDmjk7Pz49EzMYPJ2fngeNRyazXDLrgV2f3RkxiNT56T0fjkORj91hBvv45WNIVasaoofJnRAYFIqXf8pyyPJ1nbhYvudJDzjJNAxiiGl9rnDXuqyAY4NyosHFey95igHMmWxnh4PBzJOW2qSvEWM7woCR7GeDF5eX4E2oOC4JyBvNEmwMIxOF4q24XIQ3BQqRVB3pgV1GorKHFUwZJdU4NbAFOhax0n3JoYwoF3S2HjeDW8E7v/H8UP9oO9KLWPLi24muzAu4YLgpqdZC8IpQoy3VJxFoKL8PfAtY2ETBRuTlAoCznBwjV2HheW8mKM28hpYaqd18GxJp8JjwFMfYuXds/B/CBIg7oL0iBXxYrsfPaiDKH2WZoudSibfFi4Kn0SwlEGUfwVlW1/nH0k25lFVdouWPnATREa7gTKvoTH9nT4BGULjhXm30jrIR7TtqEcett/rKYkUw2KUnHwD1I+sEsDE6WV0jbtBh7U85iMn8lUEIEi/znVxm3leD2qBKRBW8KqyYktBfLDD5KlAnHl3y8mxGtdSF7qZXU0h46XaTQauMXAd2YJGl2Q9bEw94m3VkVJMI55qq2hgpWl6WazGao4G9G6pT799c1PZ+8mZ4PxcDQsQ2VinqydD5WyB8CvKcCpMdA35DeSzO66S/kPvhO6WhHoc0hro7SVkhK17rrGYoqxsZDvhkh3lmDpfJCJ3S5Xni7Z7Pcy3JaGbDpLcK1YC9/YsiR9tZJeZEWS60+LgmppXtbKNG2xutWO3Wh0Xp9dYILqTn1bxfrW/RH0fspuD7BvF9CWgvzuky8s2e3a6rnfX9m3U19c0UnsrSWQ8sHwNyDH7io= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches available SDP roles, such as owner, financial controller, business user, and developer. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx new file mode 100644 index 0000000000..d36ca33f05 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-tenants +title: "Get All Tenants" +description: "Get All Tenants" +sidebar_label: "Get All Tenants" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Get All Tenants + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx new file mode 100644 index 0000000000..8fd97401ef --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-users +title: "Get All Users" +description: "Fetches all SDP users within the organization, whether they are active yet or not." +sidebar_label: "Get All Users" +hide_title: true +hide_table_of_contents: true +api: eJzNV9ty2zYQ/RUMnuIZUjdLvuipbu2kSTupWznTB8fjWZJLEREIsMDSiqLhv3cWpGzJduwkTWb6QkrE4uCc3cUusJYEcy+nl/KdR+flVSQz9KlTFSlr5FS+REoL9AK0FrPTc1GzmVgqKpQRVKCwbg5GfQK2j8SyQCrQ8chKgEMBKakbFCskYZ0wlnoykrZCFya8zuRUvkI60bpdP5IOfWWNRy+nazkaDPi1S+kvpNoZL0BUMFcGCDOhlSdhc8Eo4hQJlGaw1BpCQ4wBVaVVGlbtf/AMtJY+LbAE/kWrCuVUgnOwkpFUhGUg4PCfWjnM2ENYgtIykrlynq4NlMiWGT/8datTRlLD3aCzGoNPO3ibfMCUZCQrxy4g1apU2RYFT06ZuYwkfoSy0vxpeLh/kGC2Hx8mx6N4fHgwiI/yfBRPhnkyOEIcHB7nstkh9iTeG1sYtr+j+qT5qUW2buU/sGw2Mp/w4r0ZzbbH7oYTazWCCeO3q1+27pGHME4PJpNJPMwP9+PxcbIfw2g4jPPjSZKNkiNMjwe7sel07sgMWm6ltO+fwrOX2vI2YtNLmeENag4Sh2+LLbkam6gjNcnHWT7Msjg9Gufx+GgE8dEYsngyHuZ5Nj7Awwk8IAUGv5VUrgyYVIG+5sR2VusH/HLQHhtOOUUherwjOEjb/71sGvbyeDB8uL3eGaipsE59wuwbttBnchyds+7R7MGP5MA/j+AJqN62M3WZtNpK9B7mj6RxK/M2mW5pyLeWxI7MOxabdcaD4Rby/Rk/ErgNzf7D0Ly0LlFZhubHx+VxdXcEvsAg6PCY1k7RKuzknxEcupOaCjm9vOIsLZEKy1tpjoEb8JDs110z8Ohu+BdPrh3vDsmzNqAzFtnq2Ia+K0SV+g25Eu268aTzdvCYKBAydIL9CcooMxdgQqt78/eFeHE2G00O9rh3tV+vxcn5a7HAFfexbv/u4HHd40VaWM7O2dn5cPCdmInZ2Xk8HLTcWs1iTXaBptn7Kkaj8fdkNBp/D0Z/1uhWX0YrmIoKHJRIn2e0RSBQ2iz8D09vG5HJbViuK48zQq3BiVPlk9p5LNGQONdAuXUlx15GklOypTHqDXvcdnxdluBWciovChRPY7yYnZ7vCcXnF7JWi6RWmkRu3c5RyguyooQFiqTWC1HBilHCVxBzZ+uKjzsOU1WpMGBv2mPX7eoGaWndovfAd/8/iu/Ne3NRKB+WNMJWaGJva5eiqJzluiWoAOLhloo1gmyAfwQuEmCyMJDaDEUKRiQoclubLEws+I/WdsnZ4rCyXpF1Cv2UecTi0rd4/e4dZ1tOiqvOSXEC6QJNdvWiIKr8tN+fKyrqhHt2/6sQ9qYiiL+lstqksw9kO7OgSpncgSdXp1S7TiDHhZ6Lae8rlOUu9Jb/Im0D8Zy2JSZiY/vNagrUZZwW4Mg/SXnLrk8OsV+CMv3uw5N6npPxK+pSBKDAP8NK2xWn17NKRO3ZblEn6AwS+t57rlKErvR/5DN0NyrlurSR1dHsWTfvB6PY5rHvzCKpVYrGh5a8KbwVpAWKUahTbQ9lrGm/v1wuexBGA1o31fd/f/3L2dvZWTzqDXoFlTrUycp6KsFsAb9CEidai83FbafIrO/OJz/mCtm1B8KP1K80qHChCfLW3SniUtabK21hPfGH9ToBj++cbhr+3HaB6eVVJG/AKUjCheOqiTaNiY8dC+SyfpKmWPEJ5QZ03fale2eundPMq7MLGUl40MoWoZV1Pxh9M2RWW9j3e2VLgZ9883h0ynrdNsqmubVvhz47o5O4sWYHXjVN8y8pCJD2 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all SDP users within the organization, whether they are active yet or not. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx new file mode 100644 index 0000000000..4eadb47957 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx @@ -0,0 +1,74 @@ +--- +id: get-all-wallets +title: "Get All Wallets" +description: "Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. By default, soft-deleted wallets are excluded from the response. Use the `include_deleted` parameter to include them." +sidebar_label: "Get All Wallets" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. By default, soft-deleted wallets are excluded from the response. Use the `include_deleted` parameter to include them. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx new file mode 100644 index 0000000000..e2ed8542d1 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: get-api-key +title: "Get API Key Details" +description: "Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons." +sidebar_label: "Get API Key Details" +hide_title: true +hide_table_of_contents: true +api: eJzdWE1z2zYQ/Ss7OMUzlGS7bg+8ubGbuMmkquVMDo7HA5ErEREJMIuFZVXD/95Zfti0LNtx6sy0PUkisG/fW0CLR6wV67lX8bk6HJ/AO1x5dRGpFH1CpmTjrIrVKTIZvEIPGnyJiZmZBGT6AlcwXYFhDydHQzhFDmQ9cIY3wymyNrkHY5M8pMbOoUQqjPfGWQ/apkDomUwiuXwE08CQOvRgHbdBWAPqhIPOa8wrnQeEmSPwmAQyvAJC7Z31QxUpVyJpQTtJVazeIB+OT97hSkWq1KQLZCTRu1ZWF6hiZVIVKSM6S82Z2hR/liEEa74GBJOiZTMzSOBmfZUqUoRfgyFMVcwUMFI+ybDQKl4rXpWSRkTauaqqC5nsS2c9ehnf392Vj7tZu/JRW/oUfEgS9H4W8lzyJc4yWpZIXZa5SWrJoy9ewtf307vpF0xYikBSIDZNcpPep7hZgY/31Evp+/KrqC3mU1BvQ6HtgFCnepojSNA2sN4W6WFqIi3SDWPht1R2M9l741kWqr/h5qQtYwrsgDPj+0l1nrslppemfImkLRqcjEGnKaH36MERvD45OgXSdo5egvG6NLS6TDVvrd7MUaFZxUomDNgUeK+kx4JQLz7IpM2dWUUqIdSM6aXm70zxKUN750+91B5a1H6C6eobNpNHgmXmuvhNsqFMfwDZXHuGFrqf5VmM+yCbtGXsMvgfRNwL6ypSbDjHpjtIR6sqeXiwu3e/f3y0OnDmyPyF6ct1CyRytPVPgNdM2j+N4Flz6M+zoZgiCUSB3uv5lr9B1ejEa12UOfZ4qA+O4Y7OWxpdooPdvR70ZkTVlfCn+yX8zdHUpCnaH1+/B+TdMuhoHjx8Ush5OXPB/s+Xu5O4baUP+it9it4FSrBXmKqF7lxD7QJ+RU1Ih4EzFZ9fyOlcIGdOvMMca0XiCmI10qUZLHDlR2uTVkpQ6KqzEoFyFSsl0R34RIrcVKGf4vZgKU3jSjaWs92cTUfPUKdIIOupjRX3pC1Mjsbw+6czeHU82f/5lx05VZqnl13rEBvUups7eJ3RaWBlFSbH473dF2IGk+PxYG+34dZohjW7Bdpq51mM9g9ektH+wUsw+jMgrb6NVj0VbszmQ4x6BGpKXeKvEl63e2Nnrk7Xtv0JY55rgiPjp4E8FmgZxrlmOV1k7VWkZEs2NPaHe8Nd2aehKDStWiv7OMarydF4B4wYfXYuh2kwOdcOzdFc27ZEXuxToRcI05AvoNQrQamfapiTC6W4EMLElKYecFfYeLwuu0VeOloMt7rtfxfFz/azPROrKCktuBLtoO0sJTnpesCZZhluqDgL7MrOh23ARfUrjwwkLkVItIUpNu2pDszkh1hH2S2EpfOGHRn0sfAYwLlv8Ebt5yDtFWlQtkUaTHWyQJtevMqYSx+PRnPDWZgOE1eMnoWwE0Mt/obKqtvOzWteO61WZeyMtGcKCQdqBXbm/tE1HT5D2Yzqs+2fSOsgntK2xCl0c79bTYZ5MUgyTewfpdybN2JCHBXa2FH74FE9T8l4i3kBNVDNP8UydyvZXk8qgeBl3iJMkSwy+uFn6VKMVPg/ZhOkK5NIX+pktTSHjuajetLAzQa+nRap3CRofX2id4231EmGsF/3qeYMFax4NFoul0Ndj9ZobagfvT95ffxhcjzYH+4OMy7yuk+WznOhbQ/4DTK09xlw1NxAbLaa9a1L+o9dcLSnD+M1j8pcG1u/0Uj11q1ZOVedWVGRik0qVzqZ8ywj6/VUe/xIeVXJ4+a0ic8vInWlychree1oUuPle6rimc49PlK8V6ft1ccOfONdyVYB3ZlqZUZdAHFUkZKQ+pKmuqii7lQWhs3AYZJgyb2Qe4b3jqV7c3ymIqXvneMNsfaLoG+ls2kUGgrNK+ADIet14xKq6mZ+M/RgRCvxRrkoqKrqb9MX3As= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx new file mode 100644 index 0000000000..138dbcec72 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx @@ -0,0 +1,68 @@ +--- +id: get-bridge-integration +title: "Get Bridge Integration Status" +description: "Retrieves the current Bridge integration status and information for the organization." +sidebar_label: "Get Bridge Integration Status" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves the current Bridge integration status and information for the organization. +Returns live data from the Bridge API including KYC status and virtual account details. + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx new file mode 100644 index 0000000000..5c3c323939 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-circle-balances +title: "Get Organization (Circle) Balances" +description: "ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`." +sidebar_label: "Get Organization (Circle) Balances" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx new file mode 100644 index 0000000000..bf89dfebec --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-info +title: "Get Organization Info" +description: "This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account." +sidebar_label: "Get Organization Info" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx new file mode 100644 index 0000000000..59fc09c809 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-logo +title: "Retrieve Organization Logo" +description: "Retrieves the logo of the organization for display in the UI navbar." +sidebar_label: "Retrieve Organization Logo" +hide_title: true +hide_table_of_contents: true +api: eJzNVsFu40YM/RWCpwSQLMfY9qBb2hjbdBeNW2fRg2MUI5m2ppZmpjOUXdfwvxccSak3xSZNm0N1kTTkvHmPokgekdUmYL7AO79RRv+hWFuDywRXFEqvXXzN8Sdir2lHAbgiqO3Ggl3HZ3u2D9bWw0oHV6sDaBPtn27BqF2h/AgTtI589LxdYY7vic9P/Wg3FhP0FJw1gQLmR5yMx3L7nMzdB0ywtIbJsFiVc7UuI0ZmSyZOA3tSjdhCWVGj5IkPjjDHwF6bDSa4tr5RjDkW2ih/wJNcCTbElRV2G2JM0CmuMMfsXGZWd0wD+R15id4RW19jjnhaynLZes2HuRzdyfiGlCd/3QrWIxPl9Ac64NNQi5f1Q0QrUivyIGqVNtpsQBmY38zg+5/v4WI6n3z19SVY36/+AtezW9jSQYJtVENP8TBBLYd0sHhKcD6dXY3fiBnMp7P0atxx6zTDke2WzOnyVYwm796S0eTdWzD6sSV/+Ge0ois45VVD/GVGZwQipeHg32Q7SjJqs7bxOM21uM2Z6lp5uNGhaH2ghgzDrFYsySzfHhOUlOxoTEZXo7Hkads0kuE53lcEz2NczG9ml6ADKGBrayhaXXP8r8//gABsoVFbgqKtt+DUQVDiqoKNt62T8uCp1E5Hg92Rj+VgON0Q763fjv4Wu/8fxQfzYO4rHeKRBqwjkwbb+pLAefsrlQxcKRZzR8UaYOuGAvkELgFlVtFQ2hVBqQwUBGvbmlXcWMlLXdu9ZIsnZ4Nm6zWFXHiksAgdXtbf09VZkFLXByktVLkls1peVMwu5Fm20Vy1xai0TfYqhMscovhHKochnbte0LtFVdqsvQrs25Jb3wuU78IvfdPRK5Stfaz8/0XaAPGStj0VMPj+azUV1U1aVspzeJbymV/GnihrlDZZv/CsnpdkfEd1AxGoa9DkanuQ9HpRCbRB/LZtQd4QUxg9SJVi8k24W8/J73QpdWmQ1dMcWb/JolNq12no3RKsdUkmkFS0ofA6VVYEk1inuh4qWHmW7ff7kYrWiNZvDdnH22+nP8yn6WQ0HlXc1LFOOhu4UeYMeBhY4HzCgH7E+KziHP8aJd5qzOm7A9PvnLlaaSNNJKo79gPFAs8BJTTCbJlgZQOL+XgsVKBPvj6dZLlrCflimeBOea0KaQeL5SkZupTMIFuSGn9dluRkdNmpuu2a1BfGIxlWHsed99N7PJ3+BMXoj64= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves the logo of the organization for display in the UI navbar. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx new file mode 100644 index 0000000000..2670174ce9 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-profile +title: "Get Profile" +description: "Fetches the individual information of the logged in user to populate the Profile page." +sidebar_label: "Get Profile" +hide_title: true +hide_table_of_contents: true +api: eJzNVk1v4zYQ/SsETxtAthJj24NOTRs3zbZovXWKHhxjQUtjizFFssORs66h/14MJTl20iSbNgXqgy1zvt4bjmZmJ0mtgsxmcoJuqQ3IeSILCDlqT9pZmcnvgfISgqAShLaF3uiiVkZou3RYKVYSbhmlxq1WUAhtRR0ABTnhna+NIojiLoLwagVDmUjnAaP9VSEzeQnUQ0gkQvDOBggy28nR6Sn/HKP6FahGG9pIfm+YO0tgifWV90bnMUB6G9hoJ0NeQqX4ibYeZCbd4hZykon0yHBItyGXGgN9sqqCA91AqO1KJhI+q8obPvqgLMgmkUZ9kfqFi9pQKW2e17wtHHzDakOHK7ZBZ1ponY1CVFuZSE1Qhce+miaRDlfK6j9jBp4Ax2r7oMe0W25H1CL+PfwHGPcQZ7KADRhOJxfT36CQUwJjFIpzXTA30hRJ9/ff8CeRAfIaNW1lNtvJb0Eh4HlNpcxm82aeyAqodFw5K4gXqFgk0/taCIAbwBDNa2TEku16t1OuhTanh87vM+z1j8ApPi481nLYERIlqAJQcNkpbbVdCWXF9GIiPvx+Ld6Np6Ovvj4RDrvTT+J8ciXWsOXy73Jx5I8vlIO0bjk30/Hk7PSNkInpeDI4O22xtZzFjtwabHPyKkSj92+JaPT+LRB9rAG3XwYrqgqvUFVATyM6ABAh9YH/YPP46nAPjOG6Au7r+kKHRY0BKrAkJkYRt0q+e5lILskWxmh4NjzlOq2rSuFWZvK6BPG8j3fTi8mJ0EEoQc4Zsai1IbF0KA7fs8C9t1JrEIvarIVXW/YST5VYoas9t2yEXHsdBW7D/fogugW6c7gePsrd/w/ijb2x16UOMaQVzoMdBFdjDjwXuL0LKhWxuIXirCDn+6H1wF0ilC2iIHcFiFxZsQCxdLUtomHJf4xxd1wtCN4FTQ41hIxxDMQstP7S7ndQHCRp4LskDRYqX4Mt5u9KIh+yNF1pKuvFMHdV+ioPJ5mI5PdQtn05txO7U4ustF2iCoR1TjV2BPle6KU7Hb6C2RLjCP431HoXL3G7g4Xodf8xmxJMNchLhRSehXyglxICpJXSNu0OnuXzEo0fwFQiOor4C/DGbbm8XmQi6sB663oBaIEgDG+4SxFgFX5ZTgE3Oue+1NPqYPK8TqPSwC0HoVNLpNE52BA3gb7xepWXIEaxT7UzlH1laXp3dzdUURq9daYh/enqu/HP0/FgNDwdllSZ2Ce9C1Qpe+D4Ekjcr3tHLWZ3v8T9d7tnNyAIPlPqjdKW50gkuOs2iZn09xtx6QLx0W63UAF+Q9M0fNxOgmw2T+RGoVYLngKzeZP0w4lXjzVwaz/Pc/C8p2yUqdvZ9GA9PdppLsfXMpHq0Thbx3HWPbD3XmS3B74fzssWAn83yRMmu107LJtmr9+KnrToKPbanMJ50zR/AW8sUpU= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the individual information of the logged in user to populate the Profile page. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-receiver-registration-info.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-receiver-registration-info.api.mdx new file mode 100644 index 0000000000..a30f569659 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-receiver-registration-info.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-receiver-registration-info +title: "Get Receiver Registration Info" +description: "Returns the registration context for the receiver, including organization details and reCAPTCHA configuration." +sidebar_label: "Get Receiver Registration Info" +hide_title: true +hide_table_of_contents: true +api: eJzNV1Fv2zYQ/isEn5pBlhwv64PevNZosxWdV6fYQ2oYFHW2WFMkR56cuob++0BSSpXETtYtGJYXS+R3H787Xu5OB4ps42h+TT/ARji0DIVWdJnQEhy3woTXnH4AbKxyBCsgdoAkXCuEL0jW2nabHMQObEKE4rIphdoQbTdMia/RoARkQjrCVEksvJrOr169nXqatdg0kTSlCdUG4stlSXP6BvBDRzzUeanWmibUgjNaOXA0P9DJeOx/7st/KJkmNDwp9HhmjBQ8ALLPzhsdqOMV1Mw/4d4AzakuPgP3hsZ6fSjikcaKHeP7ldFS8P1KCrUdGDm0Qm1om9BhHFaK1fA0SuqNPopC2yjOEMqVd4JxXAkfjGNQ4VbxysBCOUAUWktg6hbCmUFesVUpHCvkKeg3nBMIqy3sjxzatgmFL6w2Ek4GiFaIxuVZ1gFTruusQ9KjwaILBCmZJVNR3kfEQB3l9FupURt6Omr0h/B3Pvnxgj4I2JpJBydj1O0eCwt9+Y6naXq70Ia4XIzPHyboR8UarLQVX6F8vsQEa7U9mhPwBS1zTzM4ZNgMcaqpC7Ceogbn2OZYDrf377/TQd9rJHf8/CajP+hifD6gvm/RdtwOeGMF7ml+faCL2XxyMW2wovn1sl16c6y0LxsbCB4xv0UzB2ZyMRIKwTKOYgejEox2AjMR64gDuwPrAmljJc0p9XT9YQsf9RiWn4FZsPHMW/eZEb+CT927Vzvt5MfiUwErwYYaxITy1ZEpsng9J7/8cUVezBaTn16eEW271RWZzi/JFva+JHb/BHf4fLb6QyKtv5bFbH4+fiZlZDGbj87HUVv0mRxQb0G1Z9+lqL+f51E0uXgORb83YPd/T1aAEsMsqwFPKxoICJL6g//05tTn7W2NFiiHBe21cEVjHdSgkMwlw7W2tb97mlCfklHGJD1Pxz5Pm7pm1heYqwrI4xwvFq/nZ0Q4wghqLUnRCBm79bB8OoKa1GwLpGjklhi29yxhlZGN1Y0heu17uzAibOgdxH7fn64Ab7Tdpg9i9/+T+El9UleVcOFIRbQBNXK6sRyIsdqXQYIVQ78dpWhFUAf6I3RJmGT8BtclEM4UKYCsdaPKYFj5Fyn1jc8WGwuOtgJc7nWMyLWLfFn3OyoHQRqZLkijgvEtqHL5ou9wG4FVU4QG910MZzkJzt9K2ffpHKe7Dha8EmptmUPbcGxs52A/6D16p+l3eLa2odn9G9d6iqd8u4GC9Nh/7E0Fsh7xill0j0oe4DK0AFnNhMq6hUf9ecqNtyBrEoiC/hKM1HufXk96QhrncdumAKsAwaWffJVCsLX7bb0AuxMcBmNUJzPVdpMF0EivR66DJVQKDsqFFt8XXsN4BWQS6lTsoZ4rz7Kbm5uUhd3A1pm67N3lq9n7xWw0ScdphbUMddJohzVTA+I3gKT/BCB3xvnuI+BO1Tl8m6D++0+Xrpd47sxIJsLYHGJx6GaRa3pyFqFdk1gmtNIOPfZwKJiDj1a2rV+O3SS/XiZ0x6zwY2gYfJK+wfnxJc6fU87BeModk03sb/eGyTvj0pvZFU0oe9ASt6Eldg+evd9S+wH3/Z4bJYS5NzlhcjjEhtu2t/i4ddKic7FH+9gu27b9C9IIO9E= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns the registration context for the receiver, including organization details and reCAPTCHA configuration. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/get-sep-24-info.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/get-sep-24-info.api.mdx new file mode 100644 index 0000000000..92a65464a1 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/get-sep-24-info.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-sep-24-info +title: "SEP-24 Info" +description: "Returns supported assets and feature flags for SEP-24 registration deposits." +sidebar_label: "SEP-24 Info" +hide_title: true +hide_table_of_contents: true +api: eJzVVsFu4zYQ/ZUBTwkgW46R9qBb2hjbtEXrrlP0kATBiBpZXFMkS1Lxeg3/ezGUnDppNtl0c2h9kUUO37xHDYdvKyIugyiuxHtaqhA9RmWNuMlERUF65dJrId5T7LwJEDrnrI9UAYZAMQCaCmrC2HmCWuMyQG09LGbz0fQU/AEmVORsUDGMRSaso370ohKFeEdxMZtPTy9MbUUmPAVnTaAgiq2YTib8eMhmgFemtrCPFpmQ1kQykePROa1kSpF/CLxoK4JsqEX+FzeORCFs+YFkFJlwnglF1acciD4ViFWlGBP1/MGS5wHJYKmpOggsrdWERuwy0Spzi63tzGFC07Ul+TSNHz8/vdvtMrFWsak8rv8vfGuir6LQY6SK+wItKCWTuZWe+tJ+UpTUqFrOeFuiRiMfIB9k7n+ZaCk2lkt3SSklxkYUIg/kpqe56ss4kL8jz2drKzqvRSHE7oaHZedV3Cy4Gvs83xF68mcdg9xnRad+oo14fBA5ynr1qT9TDWFFHrjwURllloAGFudz+PGPSziaLabffHsM1g+jt3A2v4AVbfgIGmzpMZ7IhOIkPSxvzGI2P5m8EbPUFU4mPbdeM2yjXZHZHb+K0fT0LRlNT9+C0W8d+c2X0Uqh4NBjS/HzjA4IJEr7xH/ycsFVmAqN06moOWwRSWv0cK5C2flALZkIc42xtr7lby8ywSXZ05iOT8YTrtOubdFvRCEuG4LnMY4W5/NjUAEQorUayk7pmDq+9Us0wxYFiBZaXBGUnV6Bww2jpFGEpbedA1uDJ6mcShP2jjzEg+yG4tr61fgfe/ffo3htrs1lo0JKacA6MqNgOy8JnLfckyA2GHm6p2INRJvgn4DL0oXKE9JWBBINlAS17UyVFjb8orVdc7X4/qKyXlEomMcIrkKPlw/PUXWwSSM3bNKoRLkiU90cNTG6UOT5UsWmK8fStvmrEI4LSOLvqWz25RwS2SEsqVKm9hii72RyC0kgf5f40jcdv0JZ7ZMJ+Bppe4iXtK2phH3sv1bTkG5HskEfw7OUD+Ly6InyFpXJh4Fn9bwk4wfSLSSgxL8ip+2Gy+tFJdAFjlt1JXlDkcL4mrtUJN+GX+sF+TsluS/tZQ00x9Yv8xQ0svUoDGGZ0EoSG7lie994HcqGYJr6VH+HMlaR5+v1eoxpNqENS0P+88X3s18Ws9F0PBk3sdWpTzobYovmAHjosoPhfNBitn/byLd2vcO1EOljzJ1GlaxHkrUdLMSVSBZCDL39JhONDZHHt9sSA/3u9W7Hw/0lUFzdZOIOvWLrwm+7bH8vsetYEXf1MynJsUu5Q93119Ijb8y25N7RvJtdit3uL2RRQ+A= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns supported assets and feature flags for SEP-24 registration deposits. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx new file mode 100644 index 0000000000..6dda53502d --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-disbursement-receivers +title: "List All Disbursement Receivers" +description: "Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination and sorting." +sidebar_label: "List All Disbursement Receivers" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination and sorting. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx new file mode 100644 index 0000000000..6698a4c4f3 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-disbursements +title: "List All Disbursements" +description: "Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement." +sidebar_label: "List All Disbursements" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx new file mode 100644 index 0000000000..942e9d1630 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-payments +title: "List All Payments" +description: "Returns all individual payments matching the request criteria. This endpoint supports pagination, and filtering on payment status, type, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information." +sidebar_label: "List All Payments" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns all individual payments matching the request criteria. This endpoint supports pagination, and filtering on payment status, type, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx new file mode 100644 index 0000000000..008ff3d928 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-receivers +title: "List All Receivers" +description: "Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver." +sidebar_label: "List All Receivers" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx new file mode 100644 index 0000000000..cb2a610003 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx @@ -0,0 +1,66 @@ +--- +id: list-api-keys +title: "List API Keys" +description: "Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons." +sidebar_label: "List API Keys" +hide_title: true +hide_table_of_contents: true +api: eJzdV91v20YM/1eIe0oAf8XL9qC3rMnWrEXn1Sn6kAbBSaKtq6U7lUfF8Qz/7wNPkqM4310KDPOL5Dvyxx8pHslbK9Zzr6JzdTQ5hXe48uqip1L0CZmSjbMqUh+RyeAVetB5DiK3wJWHhFAzphCvgDOEpCJCy1B5pAGcZQiEvsrZgyYERylSLRz0jLOQakYwFsQa2tTYeS0Ge4XzDISJ4M0Med4ftHbhSucV1qDWMRib5FWKqQBxbbR01iPMHIHHpCLDKyDU3lk/UD3lSqRg/zRVkXpvPB9NToPjPdUqexWt1Xg0ksftWGy9pyYoKfgqSdD7WZXnK9VTibOMlkVVl2VukmBs+NWL/lr5JMNCyxuvSlSR0kRa9Axj4TvrLv6KCaueKkkos6lZmbQj45mMnavdD/bJmm8VgknRspkZpBAMiU5DX216yuoCn4Z6WxXa9gl1quMcQZTuAyuRCuO9cdY/w7XG1mbXmHwMcDPooMGctJUsYwecGd81qvPcLTG9NOVrGG3Q4HQCOk0JvUcPjuDN6fFHIG3n6EUZr0tDq0vJ3fuiN3NUaFaREoE+mwLvhPREEDonwM12o9mcrEvN32nic4a2CwpLvT2vXQPx6hnJ5JFgmbnted8hW5XpDyCba8/QQHetvIhxF2SXtuxdVv4HEffCetNTbDjHumy8E7vy66nD0cHdyvLJ6oozR+ZvTL+jjDxQLpDI0b2nAK+Z9DMKjmfNVVfOVkWMJBAFeq/n95yDxk+81kWZY4eH+uAYbvl5Q6M1dDg66EDvamxD+NPdEP7mKDZpivbHx+8B924YNDzbDqSi87X6FTUhHVWcqej8YnMhbnLmpA/NMdjWsqWGujT9Rd2SPNIVkg/6FeUqUkoUW9yp+FFT7aLfVMPSSOLtpu5RE9C6DGWope1KyLSx0oe1henxBP74fAZ7J9Pxz7/sSymsVy/bfJduWneR23hSfMVIDSuJMj2ZHIxeiRlMTyb9g1HNrfYZ1uwWaDf7L2I0PnxNRuPD12D0V4W0eh6tIAqlJl0gP8yoQyBQag1/E/VQo4yduWCuqVVTxjzXBMfGxxV5LGQKm+SapSTKt1c9JSlZ0xgPDgYjydOqKDStVKRk9HscY296PNkH40EDO5dDXJmcw1jhaK5tEyIvPb/QC4S4yhdQ6pWghFUNc3JVKa2TMDGlCRvuCuvBpLVukZeOFoM7sfvvUfxiv9gzmW/EpAVXou17V1GCUJKT0gScaZbtmoqzwK5sh4cduB5oW3e8xKUIibYQy9xW2TQoZvJH5h3JFsLSecOODPpIePTh3Nd4w+bZTztB6pdNkPqxThZo04u9jLn00XA4N5xV8SBxxfBFCPsRBOe3VFZtOvtAthELXhk7I+2ZqoQrahxsJ9JHv+ngBZ7NKLSPf+NaC/GUb0uMoZX9bm8yzIt+kmli/yjljtyQCXFYaGOHzcKj/jzlxlvMCwhAgX+KZe5Wkl5PegKVF7lFFSNZZPSDL1KlGKnwf86mSFcmkbrUutXQHDiaD4NQ3836vhHrqdwkaH3oym3hLXWSIYxDnap7qGBFw+FyuRzosBvQGlU/fH/65uTD9KQ/HowGGRd5qJOl81xo2wEOV4ftvXmnyKxvRpD/2Q266UuM1zwsc21sGNAlrutmgjlX2wnmoqcy51nW1utYe/xE+WYjy3UHis4veupKk5H7ZRiLem1TlJFHpvVIHSUJljIgBeqhJ+6MdLeGqd9PzlRP6TttdBHaaPMi6O2WXXWwd/t0TaG+Njygsl7XTXqz2crXWw9qNC620hLDi81m8w93sCVQ +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-receiver-verification-types.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-receiver-verification-types.api.mdx new file mode 100644 index 0000000000..c9800a2ded --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-receiver-verification-types.api.mdx @@ -0,0 +1,66 @@ +--- +id: list-receiver-verification-types +title: "List Verification Types" +description: "Returns the supported receiver verification types." +sidebar_label: "List Verification Types" +hide_title: true +hide_table_of_contents: true +api: eJzNVlFv2zYQ/isEnxpAthwv24Pe3MVdvbWOF7sbBtcIKOlssZZI7XhK6hn678NRUqIkTbN2HTA/2DJ59933nci7O0pSOyejtbyEBPQ1oJObQKbgEtQlaWtkJC+BKjROUAbCVWVpkSAV2DqIa0C91Ylia0GHEtxQBtKWgH5plspIvtGOugi/9exXbC4DieBKaxw4GR3leDTin/skJiLXjoTdfiKeDGRiDYEh9lNlmbfb4QfHzkfpkgwKxU/sICOpENVBBlITFK637gi12clAgqkKzsv5ZDW9unh19XJ2uXotA/nHdHJ59fZi7v8sZnMZyPlkNbuYT95czc6v5u/evpxecg5JU86IfbmvNOSprPkTyLPR6WOZ74yqKLOo/4L0K2TZ+AMkJANZIr8A0k1GAdHiY5V1IOEjoXLPIzhSVPXtTFXEgAxRgHNqB5+Ab3TCR1WUOfR4yLklcU/nHY0u0NnotAf90OM2hd89TuEri7FOUzD/ff6ekHfHoOXpIKlQ00FG66N8CQoBJxVlMlpv6g3LpMzyNdmBj614S4bdDXNh/8gPuiPvAP19ZcwKcxlJyWBdrCVra+j3I97dgFL/AnwFHtyzNsnN9cpApYCC06i00WYnlBHL84X4+feVeDFdjr//4URYbFevxGQxE3s4cAEwqoCHeHzhOEgDy4dnOV2cjr4RM7GcLgano4Zbo1kcye7B1CdfxGh89i0Zjc++BaNfK8DDP6PlTUWpUBVATzPqEfCUusB/srvkY6vN1vpwbSlbEuS5QnGuXVyhgwIMiUWuaGux4HcvA8lHsqExHp4OR3xOq6JQeJCRXGUgPo/xYnm+OBHaCSXI2lzElc5JbC0Kiztl2hQ5QVYUag8irvK9KNWBUfyqEju0Vcl9AiHRpfYblvsU9aIboBuL++Gj3P3/KL43780q086HNMKWYAbOVpiAKNFyuRKUKeLthgp3RevhPwEXCGVSv5HYFESijIhBbG1lUu+Y8Z88tzd8WhBK6zRZ1OAi5jEQa9fghe3vIO0laVC2SRrEKtmDSTcvMqLSRWG405RV8TCxRfhFCCeR8OJvqRy649zMI62ZV6XNFpUjrBKqsBXI74Wee6fDL1C2Rd9S/o20DuI5bTcQi872q9VkkBeDJFNI7rOUe3YhIUBYKG3CduGzep6T8RryQnggzz+FMrcHPl7PKhGVY7t9FQMaIHDD91ylCLBwF9sl4LVOuC51slqaQ4u70BsN7HbgWrNA5joB43yn7gpvqZIMxNjXqaaHMlYUhjc3N0Pldz1a6+rCN7Mfp/PldDAejoYZFbmvk6V1VCjTA+Z5V/QnP9FNuvfKzfFuQPm6KbttBAQfKSxzpQ33Cy/k2I4Ra3k7RjTV+eEgsQlkZh2x5fEYKwfvMK9rXm4aQbTeBPJaoVYxN4H1pg663sSTxx64sk+SBEqeXa5VXjWt6cG0dW/O+Wm6koFUj7rZ3nez9oHRuy1z6GE/bJcNBf6ugydcjsemV9b1rX2z9aRHK7Gz5sxu6rr+G2tNorU= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns the supported receiver verification types. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/list-registration-contact-types.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/list-registration-contact-types.api.mdx new file mode 100644 index 0000000000..010085c8e0 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/list-registration-contact-types.api.mdx @@ -0,0 +1,66 @@ +--- +id: list-registration-contact-types +title: "List Registration Contact Types" +description: "Returns the supported registration contact types for disbursement instructions." +sidebar_label: "List Registration Contact Types" +hide_title: true +hide_table_of_contents: true +api: eJzNVk1z2zYQ/SuYPcUzlCirbg+8KbHauHUc1XImB0XjAamViIgE0MXStqrhf+8AJGP6u0mTmeogUcDuw3tL7MceWG4cJAs4Vi6tyGGJmh0sI1ihy0hZVkZDAufIFWknOEfhKmsNMa4E4UY5JumNRGY0y4wF7yw6sTYkVj1MobRjqjJv6oYQgbHYOJ6sIIFT5fi8h/amAbvwWBABobNGO3SQ7GE8GvmfuwQnolCOhVk/Qwoi8P9Rs/eX1hYqC2bxZ+dB9uCyHEvpn7wDJCCJ5A4iUIyl6607JqU3EAHqqvTxm76bnJxCBLO378+ml2cf3r2enkPULF9Ozo4vP05OT6cXl5Pj4/PpfH7P8jGLZQSsuMAQ/UcjA7X/RHA0OnwYkA9aVpwbUn/j6huEm/QzZgwRWPJvilUTeyQy9DAOdQR4wyTdywiOJVd9O12VKZKHKNE5ucFH4BudeCNLW2CPB5wZFnd03tLoDjoaHfag73t8CeFPD0P4q6FUrVaof3z8npB3y6Dl6TCrSPEOksUeXqMkpEnFOSSLZb30Mjk3Pp82GM6WfgvifkoM2pQYdCnhkK6QXECsqIAEwEN1J829soZ8/7zbDLHqD/Qpci8f2xA3aZijXCE12ai00hshtZgfz8TvHy/Eq+l8/PMvB8JQu3opJrMTscWdrxNalngfzyekP6SB9VdnPp0djr4TMzGfzgaHo4Zbo1ns2WxR1wdfxWh89D0ZjY++B6M/K6Tdv6MVTIWVJEvkpxn1CARK3cF/eXfwl1bptQnHteVszlgUkkS/54hZIXltqPTvHiLwV7KhMR4eDkf+nlZlKWkHCVzkKJ7HeDU/nh0I5YQUbEwh0koVHHqSoY3UbYicYCNKuUWRVsVWWLkL3c+vSrEhU9mmn2TKqrBhrpBCC+xO18jXhrbDB7H7/1H8pD/pi1y5cKQWxqIeOFNRhsKS8cVKcC7ZbzdUjBZsAvwjcJGQehU2MrNCkUktUhRrU+lVcMz9n6Iw1/62EFrjFBtS6BLPYyAWrsGL299Bf1YY2DZIg1RmW9Sr5auc2bokjjeK8yodZqaMvwrhIBFB/Bcqu+46NzNNaxZUKb0m2QwrFbUC/Xvhl97p8CuUrSk0lP8irYN4Sds1pqKz/WY1ORblIMslsXuWcs8uZkKMS6l03C48q+clGW+xKEUAaoZLtIXZ+ev1ohJROW+3rVIkjYxu+MlXKUYq3fv1HOlKZb4udbJamkNDmzgYDcx64FqzCAqVoXahT3eF18osRzEOdarpoR4riePr6+uhDLsBrXV18enJm+nZfDoYD0fDnMsi1ElrHJdS94D9WCz6059oxz/RTcZ3ys7+dkz5ARN72y0Ybzi2hVTaN5Wgdt9OGgt4ZtJYRpAbx95qv0+lww9U1LVfbjpFslhGcCVJydR3icWyjrrm5UeTLfrSP8kytH60uZJF1fSue8PYnTHot+kFRCAftLttaHftg0fvtvSuh32/nzYU/HcdPeGy3zfNtK6/2DdbT3q0EjtrH9VlXdf/AC+nyqI= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns the supported registration contact types for disbursement instructions. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx new file mode 100644 index 0000000000..fda7572abd --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx @@ -0,0 +1,74 @@ +--- +id: log-in +title: "Log In" +description: "Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols." +sidebar_label: "Log In" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx new file mode 100644 index 0000000000..283c20fc6b --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx @@ -0,0 +1,74 @@ +--- +id: patch-organization-circle +title: "Circle Account Setup" +description: "Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time." +sidebar_label: "Circle Account Setup" +hide_title: true +hide_table_of_contents: true +api: eJztV8Fu3DYQ/ZUBD0UMaHcdI+1hb45tNG6LZpt10INjBCNptGKWIhVy5I260L8XQ0m24jh20vrQQ32wZWpm+N4MOfO0V4yboJaX6rXfoNV/IWtn1VWicgqZ13X8d6ne1jkyBeCS4ET7zBBkzhZ60/joAYXz8aWbhJnDa2tawCxzjWVwO0s+QInXBDX5Socgnuwgd8ClDnP43TEtQdsYqtA+MLCu7uyVABoDhSaTB0BPUKHNkZ1vE0gbBiyYPGgGHSAlsjfelAMyGMLA4GxGCbSugQwteKoNZgQIQduNoT66WGMEMFeJcjX1+5/naqlWyFk5zVmfFZUoTx8bCvzS5a1a7u/k8d7csYOUoIkpzlWiMmeZLIs31rXRWTRbfAgSYq9CVlKF8sRtTWqpXPqBMlaJqr2AZE2h99Xvt9RODAN7bTfqbnEvbot6vDqHLbWw01xOihQE4+r1+gJ+gJ/PLoA92lCQD6pL1A6NIX6v82/b6fwUXDE9SDs0xFB4V8GuJE998RubB9hpYyQ3QdLRyU+fX+0pV0v2DcWFUDsbetJHh4ffmPUh3xCaLKMQisaY9umSX1EIuKH7UkKfsKoNPYKrp9sl6sV9jF5iDm/6g/Z0mMl75x8v4ikxahMAU9dwLFbv2Ak19hge3anrRnKBssZrbtXycq9eEnryxw2Xanl51V0l6tMsczltyM6GWzVLXd7OLFYSXJ5jPplsPKUxSjzyD3om6hpNcxNBNqqISyf3upZ7LXhRUKjFtJ8tslivWV8vJej9tVwC2bbxRi1VDDaSWkve+9ROqd0kB2v9K7Vf5FesnB/2hJIwJy9nhFFbbTeAFtanK/jlzwt4drY++vGnA3B+WH0/3mDpWEOaPounEqVlkz6s1Gx9tnp++ETIYH22mj0/7LH1nGHPbku2O/guREcvnhLR0YunQPRHQ779NljRFGr0WBF/HdEEQIQ0bvxR3JXcD7nCb24HytnYOibd/faaThrxuNhJxMJFxJpj01kzGYMeTnVIGx+oIsuwMsiF85UcH7kf5EPP5Gj+fH4oR72pKvTt0MMfjvFsfbo6kOmLwM4ZSBttOCqE6W2KM6XCLUHamC3U2EqUuIqw8a6pZU54ynSt4wt3Tb3GGHe3xDvnt/N7x8x/C+I7+85elDrELS24muwsuMZnBLV30iOBS+wlS4QSZUE9Tso74RJAm8cX0uSigkkJCtfYPDrK/HTGuJ0cOE+1C5qd1xSWgmMGl6GPtxj+zvJJkmb1kKRZitmWbH71rGSuw3Kx2Ggum3SeuWrxXREOlhDJ30BpxxvRK8rBLLLStvAY2DcZN34gOIrLB2s6/w5mhY8T899QG0M8xm1HKYy2/5hNSaaaZSV6Dg9Cntgt2BMtKtR2MSw8yOcxGq/IVBADRfw51ca1crweZQKNaGrYNil5S0xh/k4aHZOvwutiTf5aZ9KXRloDzLnzm0U0mrliFgazRBmdkQ2xBY69u8asJDiKfaofwxJruVjsdrs5xrcx2uAaFr+dn5z9vj6bHc0P5yVXJrba2gWu0E4Cj5p4+H5ZEzf13V6zvxVf/38kJeNYZPrEi9qgtjKBYk32g6S6VFP2Il4/E1VXiSpdYLHb71MM9NabrpPlfiguL69EvnmNqUyzy6suGef0rfg76UsyuxA0t2rvC23cJaPHcZZRzQ/aTlXi6vji5JVKev0oat/l4uRxJx+AuBMlKF+M3KvSfb+2VwbtpomfBaoPKgcPv5AU2ygphgehNb6y7QTiXc3SM5Hfwutel/2+Fyxdd2Pfv/qqx5Db0VoKetV13d+Wx7pf +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx diff --git a/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx new file mode 100644 index 0000000000..01e6167b78 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx @@ -0,0 +1,74 @@ +--- +id: provide-signed-challenge-transaction +title: "Provide Signed Challenge Transaction" +description: "Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable." +sidebar_label: "Provide Signed Challenge Transaction" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx new file mode 100644 index 0000000000..1f25dd167b --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx @@ -0,0 +1,66 @@ +--- +id: refresh-token +title: "Refresh Token" +description: "A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires." +sidebar_label: "Refresh Token" +hide_title: true +hide_table_of_contents: true +api: eJztV9tu2zgQ/RWCTw0gX5u0iN5ybZVuYjd2msSuEVDUyKItkSxJxVENA/sb+3v7JQtSUus4bdLupsBisX6wbHLmzJnhcGa0xIZMNfbHeC83CXDDKDFMcDzxcASaKibdXx/voVyD+vP3PzQyYg4cwZ1kCjQisQGFOjsoYzw3oJtomDCNgEdSMG5QQniUgkYKYgU6YXyKTAKbaAtmEpEbFDGtcmkqKaasGVAMOIUmCgxiGhnFplNQEDklxh3cy3ZDAxXcLvJILFAIsVDg9u7xbWIPCwnKuRlE2MfnJbGhlcIeVqCl4Bo09pe4227bx/1QnIPJFdeIIA4LRCgFXbmBPUwFN8CN1SJSplU8WzNtVZdY0wQyYn+ZQgL2sQhnQA32sFSWlmGl4RLuq5g2ivEpXq08DHckkymsSWEoTpLwDWU9dnJ88TnonLFAB/x8hx4Er4K5vPpwcLLbhOKkQ7sfimAmXwdZOg9mgkVXZyllHTk6CHSQfTDXl6m266PLTkIu7/bK5yK/7u6agC0YzXb16OqU9VLzOsh2kvDywhodRlf7KeUjSbu7RcA7UTxYsNFVsghm4u5sRju94XXRG75/Gb9vbo9mu8X+FU0aLD++Pm7M6c1R8rZ/N5MLeQPT095vYe92Oxy963VOj29pdjQd7ZymV287N514FE8v7sjZPj09iM5PX52+GXx6J+jiDd/7PzKPRMbGZvtbmbxPInQOn3LQ5vlSF5QS6mHqbhaUQzCEpRqR0N57e09LRXeORhH9pKVV+bG+dR76dsFJbhKh2GeIfrlzP04aa0NMvi7H8ywE53cGWpMpfOvab6R3RQOfCYPuufmVRW1nu91ZQ97U+JXADlsDzRUzBfbHS7wPRIGyrQb748lqYvVNImwVlsLloCR2D7eqbtGoy6oGdQtKO5RcpdjH2KrX6AN7fGV81218iSOR7B0UD3Jwr+LrcgElQCJQyGYKYdy2IMLR4LCPTi6H6MXRoLvzagsJVa3eoL1+gOZQ2I7CSQabeNjDzBopYe35Do76nfYzMUODo36j0y65lT6jpYvWauunGHW3n5NRd/s5GL3PQRU/RsuJIkkUycB8n9EagTqlnOFPVt01D8Zj4cwxY68CHhhIU6LQIdNhrjRkwA3qp8TEQmX27LGHbUqWNLrNTrNt8zTPMqIK7ONhAuhxjBeDw/6WnWgIMkKkKMxZalAsFBJqSngVIjtaoIzMAYV5OkeSFBbFrRI0VSKXSMRIAWWSuQ1xC8rV09o6B7MQat58ELt/H8WP/CN346M1yZGQwBta5IoCkkrYeopMQtwYWFIRHBnh4L8B5yHCI7dBRQSIEo5CQLHIeeQUE/snTcXCZosCKTQzQjHQvuXRQGNd4rWqZyNaC1JDVkFqhITOgUeTF4kxUvut1pSZJA+bVGStn0LY8svZ+QuVok5n7chWYs4rxmNFtFE5NbmqHLTnYp460+ZPeBYr1zX/iWs1xFO+LSBEtezf9iaBNGvQhCijH6W8JtcyCqCVEcZb1cKj/jzlxltIM+SAHP8IZCqK+p3n8buWays3z0NQHOyL1EdbpQyoTPfiAahbRm1dqt2qaDaFmracUEPEDV2JeThlFLh2Pb0uvJLQBFDX1amyh1osv9VaLBZN4nYdWqWqW78FB0dng6NGt9luJiZLXZ20jTojfA24eoFC9RvUvSKz/Dp5/afeIauuZODOtGRKGLfNy0V1WQ0xY3x/iJl4OLFDjj/Gy2VINFyodLWyy2UT8scTD98SxUhoG9B4svLqvminnjnYrrJHKUg7KN2SNC/b4sYwe2+q6vcGQ+xh8qCVzl0rrX5Y+HqLF2vgm7265GC/V953VJbLslGvVl/ky63valQ+1tI2kpPVavUXERjcBQ== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires. + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx new file mode 100644 index 0000000000..7a8b378c65 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx @@ -0,0 +1,74 @@ +--- +id: request-challenge-transaction +title: "Request Challenge Transaction" +description: "Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable." +sidebar_label: "Request Challenge Transaction" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx new file mode 100644 index 0000000000..412547f97b --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx @@ -0,0 +1,77 @@ +--- +id: request-registration-url +title: "Request Registration URL" +description: "The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit." +sidebar_label: "Request Registration URL" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit. + +It also lets the anchor specify additional information that the user must submit interactively via a popup or embedded browser window to be able to deposit. Please check the detailed documentation [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-2). + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx new file mode 100644 index 0000000000..789dddf892 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx @@ -0,0 +1,74 @@ +--- +id: reset-password +title: "Reset Rassword" +description: "Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email." +sidebar_label: "Reset Rassword" +hide_title: true +hide_table_of_contents: true +api: eJzNVlFv20YM/ivEPTWFZKVGtwe9pU2GdRtar86whzQoThJtXS3dXXlUHM3wfx94khq76ZJ1K7D5xbZEfvz48Y7kTrFeB5VfqbOOa7RsSs3GWXWdqApDScbHv7k6axq3DaAtLM8X0AUk2NYOah1g7SwC1+S6dQ1cI/zgaO0YFjqEraMKPLkSQwB2EJDFxBBY3IKfLLaGa9DAboMWAlqGG6MBW22amUqU80iR16tK5YowIE/gKlGEHzsM/MJVvcp3n/F+K8Z3gUZbqDRrlajSWUbL4vY0eypfoayx1fJLTA1hJer4w2gB+X1kKipx71HlyhUfsGSVKE9Clg0Gwfjkl+8my8Bk7Fp9ru/rQzlWjqKQIrPaH8d8FOkyitgFrERwU0lVVz1ouNGNqQ6lEGVGQdRePslB0kwdDqG9s2FIZ356el/hxTFg6Eop9qprmv5IYYF//iWAF7qCtyONo5Jo75vxQGYfgrPH9XlYeSRy9LhY58jaNAF04bp4MmFw3CcKb5l0eDTSfvwk6jYtXYVrtOkoalq4qk+tbsVbfquIijYYZ+XW7dQGe5U/6JmoG910nxD214lqkWsnN8G7KJnXXKtcZbEA6cFZDUg3SEOkjhqVq+gfsOzIcL8ULQe5XqAmJGkCBwlrb37G/p5mYuXI/BELAzXqCgmkbNpYY9dTj/jp90t4crGcf/f9CTgan76Hs8Ur2GAv13pU5ghPJcpIkAFW6rC8WDw7/UbMYHmxSJ+dDtyGnGEX79X+5KsYzZ9/S0bz59+C0a8dUv/3aEVT8Jp0i/zXjA4IDM1nDPxR3JWceWNXLoYz3IjZkrFpNMG5CUVHAVvp5YtG88pRK7WX84wUBhrz2bPZqZzTrm01yU24rBEexniyPF+cgAlxXLgGis40HDumo7W2o0Rx2LR6g1B0zQa87gUlPtWwJtd5cCsgLI038YW7waHnTtEt8tbRZna/v/7vKL6z7+xlbUIMacF5tGlwHZUoo1eaFnCtWV4PVJwFdhH+C3AJaFvFF9KUoNQWCoSV62wVHWv5I9uAnBZC74JhRwZDLjxSuAoDXjZ+p9WBSKkfRUoLXW7QVtdPamYf8ixbG667Yla6NvsqhJMcYvKfqPTTcQ6R7GgWszJ2RTowdSV3NCY4DdsHazr7isxWFEfYv0ltgngsty0WMNn+42xqbNq0rDVxeJDygV3GhJi12thsfPBgPo+l8SM2LUSgyL9C37hejtejmUAXxG7TFUgWGcPsnXQpRmrDm9US6caU0pemtEaaM0frLBqlbpWG0SxRjSnRBpSONjVer8saYR771DBDBSvPsu12O9PxbUQbXUP2y6uXF6+XF+l8djqruW1in5RJ3Wp7ADwspm/vhvVRl9nd7UH/7eo9zhHGW858o42VcRN12I17x5X6bO+4TlQti0l+pXa7Qgf8jZr9Xh4PcyO/upalhowuZGZcXe+TaZTdrUQvh/TTS4l/twPJlr5PJqOzskTPB6/vbYxH69LizfJSJcMele9U6yrxIb2VtV5v43q03/8JoNKfcA== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/reset-user-password.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/reset-user-password.api.mdx new file mode 100644 index 0000000000..3059de0f34 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/reset-user-password.api.mdx @@ -0,0 +1,74 @@ +--- +id: reset-user-password +title: "Reset Password" +description: "Updates the password for the logged in user." +sidebar_label: "Reset Password" +hide_title: true +hide_table_of_contents: true +api: eJzNV0tz2zYQ/isoTvEMKdqK2wNvTuxO0rSJatnTg6PJgORKREQCzAKwrGr43zsLkHo6ctwmM9VBJIF9fN8C2F2suBUzw9M7PkI9lRXwScQLMDnKxkqteMpvm0JYMMyWwBphzEJjwaYa/UClZzMomFTMGcABj7huAAWpvi14yq/BgL01gKNOk0cc4YsDY1/pYsnTFc+1sqAsvYqmqWTutZPPhryvuMlLqAW92WUDPOU6+wy57exIhILQ5w4RlP3UbNwoWGw+JxFvkKBZCcZ73VfYODAWpZrxds/EoUDbRhweRN1U8LjJfqgnfzZ8+dM+spQ+dwS83Q05iw78gGm0MgH98PSUHrsL9eEdj749mtvRq8EYMfNrvx/k3aj1go/EIuJWWgoE/yMIXXeA+W6U1iY47ZjNjnJ+mxXMuDwHY6auqpYUijbi54+xfSUKdh120nNoH+cHiBoP2e0fiUuwQlaGiUw7689BUPRMLQrzpKc2/Ijb2SG3WyWcLTXKv6H44eS+HTQ3Vli3LadcnYHnfWRn7J+TDgd/ry3b4bmB0Ts6Pz3bMr2vsQ7hy8MQ/qoxk0UB6sfH7yv0Ngg6nAZyh9IueXq34q9AIOCFsyVP7ybtJOIPca4LmIGKuwQZZ7pYxkrU5IzeQ4hAGamV8VbmsOTpUc2I34vKrS2QoxpsqSnxNMLmJdEUhIInTSgBCVLSjrdSqQG8BwwuHVY85d5QT2hMAQwx2qa1DpRo5DtYHpyii24l/WqwEkQByGithFRSzZhQbHw5Yr/9dcNeXI2HP/9ywjR2o5/Yxegtm8OSSk4Xoh17POKSnASztEPHV6Oz0++EjI2vRvHZacAWOLOV1XNQ7cmzEA3Pvyei4fn3QPSnA1x+GywvyhqBogb7dURbADyk3vEXUve1g87i9aYvuDpaVddZea+QbhKaVFPt0XclaWyhqgSyS2kyhwZqUJaNKmGnGmvaSnROAE1gNRycDU5p27u6Fkgn7KYEdtzGi/Hl6IRJwwSzWlcsc7Kyvk3SOBOqi7hhVrNazIFlrpqzRizJih8VbIbaNUxPGUIuG+kn9D2ERqv3rsAuNM4HB0vx/4P4UX1UN6U03qViugEVG+0wB9agphTLbCksTQcoWjGrvflHzEVMqMJPULJjuVAsAzbVThVesaSPqtIL2nwIjTbSapRgUsIRszsT7CXdMy62ghQ3XZDiTORzUMXkRWltY9IkmUlbumyQ6zp5loWTlHnyayjL/nSEVroT86ykmqIwFl1uHXYE+w776JoOnsFsir4M/hdqvYmnuC0gY73sv2ZTQlXHeSnQmqOQt+QSiwBJLaRKuoGjfJ6i8QaqmnlDHn8BTaWXtL2eZMKcIbm5ywAVWDCDj5T0LGBtPkzHgPcyp7zU0+pgDjTOEi8U62lsOrGIVzIH6qTT1TqPNyIvgQ19ngolmWylSbJYLAbCz3prnapJfn/7+ur9+CoeDk4Hpa0rn3YbbWwt1JZhf2FjW7e1nSyzdVt77r2wKyQWHmzSVEIqytMe+aprQO5414D4u91OCzKJeKmNJZnVKhMGbrFqWxoOJSS9m1Cjg1JklO/vJm3UV7VNm/Q6QI9vCMmmLzpoCduo17jIc2jsUdntfmp0cfP6DY9Cp0VXHV2QEooFMRIL6pvogmxD/7YKYyteCTVzocMNRmlpxEEBnvsC3L0QrX5KLbcg7lf4wIT+idejKqtVKO9tu5YPU1/V6GLbS9NiTtq2/QfjuL8Y +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the password for the logged in user. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx new file mode 100644 index 0000000000..02d3d07d0c --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-disbursement +title: "Retrieve a Disbursement" +description: "Fetches information on a specific disbursement by `id `." +sidebar_label: "Retrieve a Disbursement" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches information on a specific disbursement by `id `. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx new file mode 100644 index 0000000000..2a699c6120 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-payment +title: "Retrieve a Payment" +description: "Fetches detailed information on a specific payment by `id `." +sidebar_label: "Retrieve a Payment" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches detailed information on a specific payment by `id `. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx new file mode 100644 index 0000000000..d9af54a22b --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-receiver +title: "Retrieve a Receiver" +description: "Fetches detailed information on a specific receiver by `id `, including all associated wallets." +sidebar_label: "Retrieve a Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches detailed information on a specific receiver by `id `, including all associated wallets. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx new file mode 100644 index 0000000000..123800ad6e --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-tenant +title: "Retrieve a Tenant" +description: "Retrieve a Tenant" +sidebar_label: "Retrieve a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieve a Tenant + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx new file mode 100644 index 0000000000..0bfa03e780 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx @@ -0,0 +1,66 @@ +--- +id: retrieve-all-statistics +title: "Retrieve All Statistics" +description: "Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets." +sidebar_label: "Retrieve All Statistics" +hide_title: true +hide_table_of_contents: true +api: eJzVWEtz2zYQ/isYnOIZSqIVpwfdlNhN03ZSN3ImB8XjWZErEhEIsMDSjqLhf+8sSMnUw3bsup30IpHA7odvH9gFuJIEmZejqZwQkPKkEi8vI5miT5wqSVkjR/JnpCRHL0BrUSA5lXhhTXhNlZ9VzmOBhrygHIV1GRj1DVhX5OBF4hAI0764yFE49KU1HoUyia5S9GIGXiUCssxhFpQCdgnLABkJhwmqa3SdR3EDWiNPgkkFeI/k+zKStkQXIN6lciQ/MFO8xrHWHeMiuabg5Wglh3HMf9v2vkWDDrS4VdvwlpFMrCE0xGpQllolYcnBF8+6K+mTHAvgJ1qWKEfSzr5gQjKSpWOCpJqVyRLoqy3/dZSUIczQyd1QXLCWMFUxQyfsfNv/MpJz6wqgBuCnExlJ/ApFqVGOhnEdydatV4mtDKHzD9NMHczpILG7lzqu2cuQLh+pN2SGaFJlskdqvgy2VR7TJ1D1VZKgP+z9uzVf1ZGcg9JPWjIE/7F6JzVrKuIXed5E8s06kJ3gQsGD/mq2vAp7o7MOOAdLGUlFWHxH8IP6VWJT7Mh6chygDjP5cXL65gCDx2fXAezjOO7HsTyQUgeEhxvh/Tw6IP7yVnw3ee5lsp8xB8RfbcT30uRecLhGB9kDHr8V302lQ8InrfR+/ozbSN099Xo5DklUhwg0BfiqLcA/aB1p9DLlCd2TtudcQ5b9Zxt7a19/aF38qfFwd383HWPTD5/QLW5177UjjuMupbYddppoXfP8SXy83zs/Gqgot059w/T5miU6Z91+ktfMmhx8R/55Aqq6co1XGKJA7w9uuMbMjV82NOR7S2LLzFsW63VO4uMO8q7GvwkcsD0mlVO0lKPpSr5GcOjGFeVyNL2sL1mfcsuHpAyDq4Cn5MB3z0keXZNm05WsnJYjKVl1jTzh0DW+7eLftppS/YbLvZQct1zb8yFCik5wloAyymQCjJicnotfP12IF2eT4aufjoR17eiVGJ+/Ewtc8mHPQIG7eNzZeJEGlmM7OTs/jp+JmZicnfeO44ZbY7NYkV2gqY8exWh48pyMhifPwejPCt3y+2gFUVGCgwLpbkYdAoHSeuG/WD20E2XmNizXFpoJodbgxGnnUCvONRDXKo69jCSnZENj2D/ux5ynVVGAW3K5y1Hcj/Ficnp+JJQXIMhaLWaV0iTm1m1dW7wgKwpYoJhVerG5i/AoiMzZqmyLqSpVmLB8KaHO6gbpxrpFf78i/3AUP5vP5iJXPixphC3R9LytXIKidJZrqaAciKcbKtYIsgH+AFxzJeMJPjWKBIyYoZjbyqRBMecXre0NZ4vD0npF1in0I+bRE1Pf4A3a/173gtMrWyf1ZpAs0KSXL3Ki0o8Gg0xRXs36iS0Gj0I4Golg/IbKcp3OzW22FQtWKTN34MlVCVWuNZDjQg/FtP8Iy+YudMx/Ytoa4iHbbnAm1rJPtiZHXfSSHBz5eyl35AbkEAcFKDNoB+615yEzfkFdiAAU+KdYarvk9HrQElF5lltUM3QGCX3/M1cpQlf4P+YTdNcq4bq0Nqul2bcuGwShnp33fCsWSa0S5E8Eo9Wm8JaQ5CiGoU41PZSxRoPBzc1NH8JsQGtV/eD3d2/O3k/OesN+3M+p0KFOltZTAaYDvP62Ica6+5lit9ysbs9f/5uPOG3vIfxKg1KDMtyigu9W7TllKv3Wx6rceuLR1WoGHj86Xdc83PSZ0fQyktfgFMy4x0wv62jd+vhgs0BuHOMkwZIPQtegq6bz7ZxVtw5Nb88uZCRhr1kuQrNsHxh9PWWWHezdbtxQ4N86ukNltWpacV1v5JupOzVaE9fS7MXLuq7/BhUG6t0= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx new file mode 100644 index 0000000000..6ace635647 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-disbursement-statistics +title: "Retrieve Disbursement Statistics" +description: "Fetches metrics on a specific disbursement by `id `." +sidebar_label: "Retrieve Disbursement Statistics" +hide_title: true +hide_table_of_contents: true +api: eJzNWEtz2zgM/iscnpIZ2XJctwfd0ibdze5ON43T6SHNuJQEW6wlUiUhu1qP/vsOKMmWY+fhbLrTix8iAH4fAAIQVxzFzPLgho9RoLQoI8tvPR6DjYzMUWrFA/4eMErAsgzQyMgyrZhgNodITmXEYmnDwljIQCELS8a+yph97XOP6xyMIBsXMQ/4FWnDAs468p1dPZ4LIzJAMARoxZXIgAdcxtzjkmDkAhN+F9vFGdNThgmwr13Dbn8D3wtpIOYBmgI8brFMyaSVWZ4C9zj8yFMdAw+mIrUkECWQCR6sOJa5k0Qj1YxX1S1Zs7lWFiytDwcD+trGcgVYGGWZXbNiU222HMQ9HmmF9CtYcZHnqYyci/xvlmysdjHo8BtEpJgbcijKGkEuSjI4iXShap89phEbMcWOmFQIMzDc41NtMoH1ozcj5xjhXBScVERcxOWBesPK4zmomLx3mOYr0hSFpbAdDNUWUQTWHqj5uvL4VMj0WVuiRpEeqjeqSFOiS8fLOpLv2kA6B9TBFRk9tJOwnAhroRs9YYwo6WggZE8IvlOfRC7b76Z3Bxn/ND57twfB4dm1x/bJYNAfDPielNojPFwL7+bRHvFXG/G7yfMgkt2M2SP+ei2+kyYPGhcLMGL2iMc34ndTaZ/wqJHezZ/TJlL3L70tT10SVS4CEcgFmMlSpCmg/UXrSK03kxbBPOt4TlMxm/1vB3vrXF81Lv5ce7h7vp3tSRuD/fVqu7dckwZTRRaCoY630X2Qx2DQRdTtkLbTe6uKpEaDk92e9kmJAhNt5D8Qv1zzAmO02dNnCToa8YQkpB5bdOVq15CJDKzde+pqmmvnrGHwDxrZFs0Ninaf0eCkY/muxs80XIfm1W5o3msTyjgG9fPjsp/dBsATBBwPC1FhJJZuwHsLwoA5LTDhwc0tjVgZYKJpVpyBw0YDX8D9zTzlr2RccbJjFu2cWJiUB5yTfmt+THRrRt1NNr0zl39CuXPGThu/O9+xBEQMhpFnhVRSzZhQbHx2yf74fM2OzsfD12+OmTbN0wk7vbxgcyhp8GxG1y177RRbm6U8HZ9fngxeCBkbn1/2TgY1tpozW6Geg6qOD0I0HL0kouHoJRB9LMCUT4PlRNn6TeI+RB0ADlK78XdSd9ks1VS77ZrSOUZIU2FYt4Syy1QgFV+KPfc4pWQNY9g/6Q8oT4ssE6ak+p0Ae9jG0fjs8phJywRDrVMWFjJF9wKhzUyoxkWWoWaZmAMLi3TOmjHNPRVsZnSRN91B5tIt6AUY937U7q4Al9rM+7st5peD+EV9UdeJtG5LxXQOqmd1YSJgudFUwRgmAmm5hqIVQ523b4R3zHlMqNgt0BjMIqFYCGyqCxU7xYT+pKleUrYYyLWVqI0EGxCOHruxtT2/+e51X+x6eeOkXiiiOaj49ihBzG3g+zOJSRH2I535B1k4Dpgjv4ZStulsHdhGzLGSamqERVNEWJiGIMUFH4tp/wBmU+O6zH+h1pp4jNsSQtbKPptNAmnWixJh0D4IuSPnowHwMyGV3zx4kM9jNH6HNGPOUH0TAHmqS0qvR5mwwpLcvAjBKECw/S9UpRBMZv+ejsEsZER1qaXVwOxrM/OdUE9Pe7YR83gqI1DWNee28OYiSoANXZ2qeyjZCnx/uVz2hVt11hpV6/918e78w/i8N+wP+glmqauTubaYCdUx3N7zbPPauunZqjurzfDy7Jumpikg/EA/T4VU1DscqVUzRdxw20UQyJjuuRJtkdZWq1BY+GTSqqLHdRsIbm49vhBGipBawM2Kx9LS73h9YXQvkaOr5u7pmD10Q7UXd9vhFLW3hUgL+sc9Poeyvg+rbiuv7ZEEq144jSLIsaOyMwhujVi/nV9zj4udrjp3XbX5Qdb3wrnbtmsI9Fl596isVnXPrqq1fL10r0ZDcc2cGFRV9S8S8Ccf +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches metrics on a specific disbursement by `id `. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx new file mode 100644 index 0000000000..f457183f70 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx @@ -0,0 +1,66 @@ +--- +id: retrieve-stellar-info-file +title: "Retrieve Stellar Info File" +description: "Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url." +sidebar_label: "Retrieve Stellar Info File" +hide_title: true +hide_table_of_contents: true +api: eJzNV21vGjkQ/isjf2ok3kJoInHKBwJLIKELYSGvi5BZBtaH196zvaEc4r+fbCBHr03T3kWn8gV5PH7mGdv7zHhNDJ1rUn0ifZwzbRQ1TAoyypEp6kix1A2rpMa5XGowMcKSco4GjIQZmih2tsDr5Y9LoFE9o4JM8dyLic0FE3NIswlnESxwBVRM3Wy5crCgQHJEpriN356SKumjUQyfMTDIOVVtMZNNxpHkiEKdSqFRk+qalEsl+/cl3YFcoACm4ZlyNnURHXWcpHSOsGScwwSBSzrFKQipEsr5ynKIpDAojIU0+NkUjUy4HeBnmqQc7VbU692hPwjOn0JyeVEvt27vmu2mf3Z31Wp2+7cX9cb1Vbd//8ovJDkIyWWjdlK5eiyfNh8fTiv39eChclof+kGrc392Wu60ru5vXgcYQdC+9Nv+5fjaezj/Ntjrq8H3Bnfd/vW4VwuCXqtfC7zzkAxQGwgaTfDRLKVawG8QYGowmaCCcun4Y0ig1e23H7v+eNjvnIckNibV1WIxlor9KUXeoDYCTUFvj6sg1TwkcOddjGvDQWvs+Y1et+0PDlbSNL9zzk+ZnmRKY4LC5FNOzUyqJD+h0QLFND/F50PYosb0uFSkmYlDAoN+zQ+aXn8ceP1b99crlcqVd4pTroQkFE9PjW59+MnzB7VBu+uPRtDtX4792ie7dbv7CTU23frWh/2+59fbXjAaQSSnCOcQEm/Y79ZDAkzrDJUzXV5cNCpn7eZp5+76rHf2qeHdBvW7/lmjN7y7PfEfThqDG++22an4tUGldtM6eex0mp3aR4cyplqjGVMRxVLhFM7BqAxhO95NmlW6DT5j1IQEtKEm087C2TOGBOxnc0jvdf7DoPEL09+yCwXZbDabHEnQxNKKyBwNyZGUmphUSbGwRM7zCyGXorg/aPeB58hWiawSrkmmOKkSshlZc5QpZlZBFGOyFZwLpApVLbOQa2I5kiqhKbvGFflKNjPjvg+nahAjnaICKzGUOVWkAoJGD67uBvDBC8ofT49Aqp11DLVe2wqmlSVBE/wnHskRZoNsYckmRwKvd1x6J2Z7AXfctjnD2lhd3Rz9FKNy5T0ZlSvvwegmQ7X6MVrOFVKqaILmdUYHBBylfeA/7HJi7yQTM+nCMePqyF43GgeaBL2dJtmzJzlir+SWRrlwXCjZe5olCVUrW+Ns3f0uxoeg0TuyVZCCkZLDJGPcwEwqkGpOxW6LtC3lCV0gTDK+gJSuLIqzUpgrmaUgZ6AwYilzE9KWbHMQXWxrRuGrvfv1KIYiFIOYaRdSgExR5LXMVISQKvk7RgZMTI2d3lKRAox08N+Ay710Fk4mIypsVzGTmZi6hbEd2M7J3haFqdTMSMVQVy2PPDztRKj4Q/Vp9GFf0ebMxNmkEMmk+FMIR1Vwyb9QWe2v87a127m5rJiYKaqNyiKTqV2C9lzMW2da+InMZsq1W/8ltT3EW7ktcQJ733+dTYw8yUcxVUZ/l/KBX9EoxGJCmSjuDN/N5600WsgTcECO/xRTLlf2er2ZCWTa+i2yCSqBBnUhtCplUCW6OwtQPbPI6tI+rcNOyDnl5Syvd245wlmEQqNVtL3wpjSKEcpOp7Y11GJVi8Xlclmgbtah7ZbqYqdd9/zAy5cLpUJsEu50MpXaJFQcAO9fAi/52bcA7B4DXyjO+u/+/f95suxqh3sqpJwyYUuMy3296zqeyEHXYQX8sO8Y5UgstbFe6/WEahwqvtlY87ZuVJ9GOfJMFaMTWzOeRpvcvpTZRmWBthDUoghT2+Y8U569sHH4toV56YUuvQHZbP4CPH3KeA== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url. + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/retry-payments.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/retry-payments.api.mdx new file mode 100644 index 0000000000..f196755336 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/retry-payments.api.mdx @@ -0,0 +1,74 @@ +--- +id: retry-payments +title: "Retry Payments" +description: "Retries failed payments by ID." +sidebar_label: "Retry Payments" +hide_title: true +hide_table_of_contents: true +api: eJzNV9ty2zYQ/RUMnuIZUpRkx3b45sTuxL2kquVMHxRNBiSXIiISYIGlFVajf+8sSEq0fFHcJjP1gyQDuwfnLIDdxZqjWFgezvhE1AUotHzu8QRsbGSJUise8htAI8GyVMgcEla2hiyq2fXlgHtcl2AEGV8nrXm9RfO4gb8qsPhWJzUP1zzWCkEh/RRlmcvYeQZfLK215jbOoBD0C+sSeMh19AVibHGkgYTIthw+y8TxLQ1RQAmWHPuTOxxhjKi5xyVC0R+3aKRa8M1ms/E4fBVFmcMDlBl/k56en6XnqT+ij5P4XPjnMEz9EZyeQXIWj46Ph9zjp/E4epOOh/7r4zTxT9JR5EdnMPbfiHE0gmiUnMVDPndr7fSgqcAN2FIr24gYD4f0dX8nuqgy47YkYbaKY7A2rfKctH1zbPuxLMBasQCK437I78e1M3wkdh5HiRQ3/ltjdNNq4feDuoU4IKXZjZPHYvBWJOymOVIvUfy8NDBGm4fC9m/CJaCQuWUi0hUyzIA1jk4kGmEPrrRp/kjb6KG2j0pUmGkj/4bkh4v7dtLcosCqb6eqIgKn+5lDsX+jWh78g0Z2T+eORrfQyXDUg9732Ibw+GEIf9ImkkkC6sfH7wl5OwYtTwtxZSTWPJyt+VsQBsxFhRkPZ/PNnGRipilxlgLjjFYXNMmDLtEGdEXoelswd2Csw6lMzkPOCaDDn5KehnJ/lV0GLOUvUD841BdtYF1wWAYiAcModEIqqRZMKDa9nLCf/7xlr66m49enR0ybdvQzu5hcsyXUVAaUKGAfjxIuLdLA0oGZXk1Gw+/EjE2vJv5o2HBrNLM16iWozdGLGI1Pviej8cn3YPRHBab+NlrOlJXCiALwaUY9Ao5St/Bf5O6yOF2Nm129vnqyHLZ3YL4hiFQ7im0FmCLkuTDsUtqoMhbIjU1ygak2BZ0X7nE6xg318WA0oMJpq6IQpuYhv82APY/xano5OWLSMsFQ65xFlcyRpdowbRZCtWG1DDUrxBJYVOXLXduCmgm2MLoqmU6ZgViW0k3oOzAuqXerK8CVNsvBg3j//yh+Up/UbSatW1IxXYLyra5MDKw0mtIaw0wgTTdUtGKoHfwjcB4TKnETsU6AxUKxCFiqK5U4x4z+yXO9ohNmoNRWoqYeMSQePpvZBi9ov/2kFyS/bIPkRyJegkrmrzLE0oZBsJCYVdEg1kXwIoSjkDnxWyp1dwWsI9uaOVVSpUZYNFWMlWkF0r7goT0dvEBZalzp+S/SOohD2lYQsc72X6vJIC/8OBMG7bOUe3YBGoCgEFIF7cCzeg7JeA95wRyQ459AmeuajtdBJayyZLesIjAKEOzgE2U2BFPY39MpmDsZU17qZLU0B9osAmfk69S3rZnHcxkDNa7hepusSxFnwMYuTzV1l7DCIFitVgPhZh1a62qDX6/fXX2YXvnjwXCQYZG73Fpqi4VQPWD3UmK9p9K9LNN7Kh1+grX1AeErBmUupKIy4riu235i+2hq3mTUUcw9nmmLNLdeR8LCR5NvNjTcVIRwNvf4nTBSRJTZZ5Tt2yJFLcgSKF2/a0j6t8SAzPOqqVR7DdfG6zwu4hhKfNa23xZNLm7fvecej9oHZKETcjJiRULEitogeoO6hOoeNzS25rlQi6rpHxtQ2gTxoJ4uXT1tf5CsbkrVPYr7BbtRQp+k61GX9bqp1pvN1r6ZetKjjW1nTZtIT8V/AEXQekg= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retries failed payments by ID. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx new file mode 100644 index 0000000000..54c5b167c4 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx @@ -0,0 +1,74 @@ +--- +id: send-one-time-passcode +title: "Send One-Time Passcode" +description: "This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header." +sidebar_label: "Send One-Time Passcode" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/sidebar.ts b/docs/platforms/stellar-disbursement-platform/api-reference/sidebar.ts new file mode 100644 index 0000000000..9a16827715 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/sidebar.ts @@ -0,0 +1,592 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +const sidebar: SidebarsConfig = { + apisidebar: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api", + }, + { + type: "category", + label: "Admin (Tenant Management)", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/admin", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-tenants", + label: "Get All Tenants", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-tenant", + label: "Create Tenant", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant", + label: "Retrieve a Tenant", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant", + label: "Soft delete a Tenant", + className: "api-method delete", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-a-tenant", + label: "Update a Tenant", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/default-tenant", + label: "Default Tenant", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "Authentication", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/authentication", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/log-in", + label: "Log In", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/refresh-token", + label: "Refresh Token", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/authenticate-mfa", + label: "Provide Multi-Factor Authentication", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/forgot-password", + label: "Forgot Password", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/reset-password", + label: "Reset Rassword", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "API Keys", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/api-keys", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-api-keys", + label: "List API Keys", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-api-key", + label: "Create API Key", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-api-key", + label: "Get API Key Details", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-api-key", + label: "Update API Key", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-api-key", + label: "Delete API Key", + className: "api-method delete", + }, + ], + }, + { + type: "category", + label: "Balances", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/balances", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances", + label: "Get Organization (Circle) Balances", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "Bridge Integration", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/bridge-integration", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-bridge-integration", + label: "Get Bridge Integration Status", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-bridge-integration", + label: "Update Bridge Integration Status", + className: "api-method patch", + }, + ], + }, + { + type: "category", + label: "Disbursements", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/disbursements", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-disbursements", + label: "List All Disbursements", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-disbursement", + label: "Create Disbursement", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement", + label: "Retrieve a Disbursement", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement", + label: "Deletes a Draft Disbursement", + className: "api-method delete", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers", + label: "List All Disbursement Receivers", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions", + label: "Download Disbursement Instructions", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions", + label: "Upload Disbursement Instructions", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status", + label: "Update a Disbursement Status", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-registration-contact-types", + label: "List Registration Contact Types", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "Organization", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/organization", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-info", + label: "Get Organization Info", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-organization-profile", + label: "Update Organization Profile", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-logo", + label: "Retrieve Organization Logo", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/patch-organization-circle", + label: "Circle Account Setup", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-assets", + label: "Get All Assets", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-asset", + label: "Create Asset", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-asset", + label: "Delete Asset", + className: "api-method delete", + }, + ], + }, + { + type: "category", + label: "Payments", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/payments", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-payments", + label: "List All Payments", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-direct-payment", + label: "Create Direct Payment", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment", + label: "Retrieve a Payment", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retry-payments", + label: "Retry Payments", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-payment-status", + label: "Update Payment Status", + className: "api-method patch", + }, + ], + }, + { + type: "category", + label: "Profile", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/profile", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-profile", + label: "Get Profile", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-profile", + label: "Update User Profile", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/reset-user-password", + label: "Reset Password", + className: "api-method patch", + }, + ], + }, + { + type: "category", + label: "Receivers", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/receivers", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-receiver-verification-types", + label: "List Verification Types", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-receivers", + label: "List All Receivers", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-receiver", + label: "Create Receiver", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver", + label: "Retrieve a Receiver", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-receiver", + label: "Update a Receiver", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet", + label: "Update Receiver Wallet", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet-status", + label: "Update Receiver Wallet Status", + className: "api-method patch", + }, + ], + }, + { + type: "category", + label: "Registration", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/registration", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-receiver-registration-info", + label: "Get Receiver Registration Info", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode", + label: "Send One-Time Passcode", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration", + label: "Verify Receiver Registration", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/start-wallet-registration", + label: "Start Wallet Registration", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file", + label: "Retrieve Stellar Info File", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction", + label: "Request Challenge Transaction", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction", + label: "Provide Signed Challenge Transaction", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-sep-24-info", + label: "SEP-24 Info", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/request-registration-url", + label: "Request Registration URL", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "Statistics", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/statistics", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics", + label: "Retrieve All Statistics", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics", + label: "Retrieve Disbursement Statistics", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "Users", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/users", + }, + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-users", + label: "Get All Users", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-user", + label: "Create User", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-activation-status", + label: "Update User Activation Status", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-roles", + label: "Get All Roles", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-role", + label: "Update User Role", + className: "api-method patch", + }, + ], + }, + { + type: "category", + label: "Exports", + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-disbursements", + label: "Export Disbursements", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-payments-csv", + label: "Export Payments", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-receivers-csv", + label: "Export Receivers", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "Wallets", + items: [ + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-wallets", + label: "Get All Wallets", + className: "api-method get", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-wallet", + label: "Create Wallet", + className: "api-method post", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-wallet", + label: "Update Wallet", + className: "api-method patch", + }, + { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-wallet", + label: "Delete Wallet", + className: "api-method delete", + }, + ], + }, + ], +}; + +export default sidebar.apisidebar; diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx new file mode 100644 index 0000000000..e74ff1a714 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: soft-delete-a-tenant +title: "Soft delete a Tenant" +description: "Soft delete a Tenant" +sidebar_label: "Soft delete a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Soft delete a Tenant + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx new file mode 100644 index 0000000000..cfe0028648 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx @@ -0,0 +1,74 @@ +--- +id: start-wallet-registration +title: "Start Wallet Registration" +description: "Serves the SEP-24 interactive registration UI." +sidebar_label: "Start Wallet Registration" +hide_title: true +hide_table_of_contents: true +api: eJzNV91z2jgQ/1c0ekpmDCZM7h54Sy/MNXe9livp9CFlOsJesIosuat1KGX8v9+sbCcmENL0Y+Z4AGStfvvb1Xo/tpLU0svRjXwLS+0JFWln5SySKfgEdRGWIzkFvAUvKAMxHU96w3OhLQGqhPQtCOycFe+u+jKSroB6fZXycVJI75UxQDt6IlkoVDkQIJPYSqtykCNJbgW8q1n35xJwI/cY1TSCpFg4FKqkzKH+GpCZAsLnUiOkckRYQiQ9bQyDLxzmMpLwpTAuhbvdJINcydFW0qZgMU+o7VJWVXRPC5X1bLOzH3X6bfzuj4iry19Dyyi7PE7mTfijjGDRUi1BuFtA1CkE1/G1rmF+q2G9y3ChjP8BijPG8oWzHjzvDwcD/tnl9vL6n1et9sAGIQF9C7gTVswrcZbAUtAEXyjOKDe8eJxAVUXy/JDSFyoVb+FzCZ52gVVRGJ0ElfEnz7IH8N38EyR8sECOc9K1eYDocJ/Gw8u4BFLaeKHmrqTg+/pgxZ4lVP5JTVX9YdvO9m17Z9tXAdJfbty3k5aeFJVdOVvmcwh25+C9WsLhKwwqVF4Y6PCQrx2JHTvvabSKzgdnHeiHJ1ofekhK1LQJ+Wc6ngzP/+V36KKkTI5uZhzEOVDmOI8tIZileEvG65DQet0wjT1nOsmoeNsmtRKNHEnJSK2yKXu9dssLUAhYq7szXxX6b9h/jy+6OU5koFJAwRestNV2KZQV08uJ+Ov9tTgZT4e//X4qODOGpx/FxeRKrGDDr1KTOXbw2hRSw/K1TMeTs8FPYhbqxtmg5lbbLLYhe1enz2I0PP+ZjIbnP4NRJ2KeohVExV3Ze4xRh8CBYshxq+3CBXWaQnKeEhijUFxqPy/RQw6WxMQo4qzNdy8jySFZ0xj2z/oDjtMyzxVu5Ehec20/inEyvZycCu2FEuScEfNSGwop2+FS2cZFXpATuVqBmJdmJQq1YZTwVIklurIQbsFJXhc6bHApqjuLRrsFWjtc9fd89/+j+MF+sNeZ9kGlFa4A2/OuxAREgY7ToKBMEW/XVJwV5AL8AbhIKJuGjcSlIBJlxZwrdGnTcDDjhTFuzdGCUDivyaEGP2IePXHja7y4+e2lHSf1isZJvblKVmDT2UlGVPhRHC81ZeW8n7g8fhbC6UgE4++obNpwrlvFRixYpe0ClScsEyqxMbDtPY7eaf8Zli0wFLsfMa2FeMq2NcxFK/vd1mRg8l6SKSR/lHJHLiYEiHOlbdw8OGrPU2a8BJOLABT4p1AYt+HwetISUXqWW5VzQAsEvv+BsxQB5v7NggcGnXBeas1qaPYdLuMg1HOLnm/EIml0AtaHEt8m3kIlGYhhyFN1DWWsURyv1+u+CrsBrTnq41dXf4xfT8e9YX/QD80h58nCecqV7QCHaUTU44h4MI/sJJztffP0/AmoKQOhUy2M0parRTBj23QQN/JAB8E5OfQQs0hmzhOLbbdz5eEdmqrix3UN4M4i1V7NTadTf5T+ydumqT8VT09OB6mvYNMpRrfKlBC6mugHaewNSMe0PxzAvpPG8+ahI4Sa0euexowXqJlH6B6jtlXg66rPXCQJFNQ5dT/M7DSbf46vZSTVXlexCl1F84dh2y276YI2F1Xr5G920UHR7bbuVarqTr7eevREO2XWwuyQWVVV/wFaTrK3 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Serves the SEP-24 interactive registration UI. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx new file mode 100644 index 0000000000..1193c93298 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-a-disbursement-status +title: "Update a Disbursement Status" +description: "Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready." +sidebar_label: "Update a Disbursement Status" +hide_title: true +hide_table_of_contents: true +api: eJztWE1z2zYQ/Ss7ONkzlCi7bg+8KbEzcT/VyJkeHE8NkisREQkgC9CKquF/7yxIyZQt23GbtJ1ML/ogdx/e2wWwC6yFl3Mnkktxqlxak8MKtXfiKhI5uoyU9cpokYi3NpceHfgCwXnpawdmBhLynhvILDOUKz0Hb7aWCJXMCqVxCBcF7jpUtfNQmRuEGZkK4DonOfNwzf5wTSjzFVyD0mAoR+KnzkvyAXt3ZJ2DJzWfI4GVqyBiCJPuFyxVWXau0oEzRvO3L5QD1Lk1SntQDgrlhzDeRc6kBlk6AykGpjkoHdhZWTvM4boTma5AapieTqB2LVVLeMMIs5p80ePVap0bjpOpW+6EgR3msCxQs74VSEIIIRiKSBiLJDkX5/k2G+N+zqYhKSISVpKs0CNxWtdCywpFIlQuIqE4k1b6QtxN7/kpp/NuWEUkCD/UijAXiacaI+H8qmQ8pypboogEfrSlyVEkM1k6NsgKrKRI1sKvbLD0pPRcNM0VozlrtEPH749HI/7aJfITOifnCG86SxGJzGjPZJK1kNaWKgtxiN87dlj3BrzleimqFocncsfDpO8xY0mWOJhetSw2hnsIR8IrH9R2rLakGtYtQwT6EDuLCLqMiqZhqJN9al/IHN7ghxqdf47QxxUhkaE9epizJ+meRmgXeM9O11WKxBCPhKvZjUpHI2ikrcZbCptBTkaj6KEQKgfa+HYV8JJKsR/Vf3i4NotH97P4VsvaF4bUH5h/tWn82XjYkbkvtEf90N7x+JLAbWq+uZ+aV4ZSleeov3xe9qu7JfAJBq2Mk/syWPErU+uve3rNOoX7JsDJg4tWbz2/MHaAd5jVpPwq1NYXKAlpXPtCJJdXXOAq9IXJ2yqbFaEa80sR98uqi9cqb2K3qdgO6WZTrmsqRSIEY22GmnJG25D3B9yGVlr1A67ulfRxt0LC9IACJXdQPHmk0tx6dN3K979dwMHZ9Pjb7w7BUPf0dxhPzmGBofXoOogdvE0z0cJyyqdnk6PRZ2IG07PJ4GjUcms1w9qbBerm8FmMjk8+J6Pjk8/B6NcaafVptIIpbBu6hxj1CARKm4E/sHvYd5SemTBc189MPZalJNiZ7JNS+pmhinMvIsFTsqVxPDwajnie1lUlaSUSwY384xgH09PJIRdUCd6YEtJalbyWCAzNpe5C5LjKVnKBkNbl4rZD9gYkzMnUlttSwkxZFV6YG+6te6Nr9EtDi+G92P33KL7T7/QFHzl4SA3Goh44U1OGYMnwFgu+kKELaakYDd7YTWN+By5qzzwFQmZyDMeUFNvNKjgW/KcszZJnC6E1TnlDCl3CPAZw6Vq8uPse9Heoge2CNEhltkCdXx0U3luXxPFc+aJOh5mp4mchHCYQxG+prDbTuT1UdmZBldIzks5TnfmaOoGcF/9UTofPUDajUEj/jrQNxFPalpjCxvYvqymwrAZZIcm7Ryn37GJPiHEllY67B4/qeUrGaywrCECBf462NKtw2n9yrdWO7RZ1iqTRoxu+413KI1Xul9kU6UZlvC9tZHU0h4bmcTAamNnAdWaRKFWGfAxLtsfbsZVZgXAc9qm2hjJWEsfL5XIow9uA1rm6+Mfzl2c/T88Gx8PRsPBVGfZJa5yvpO4BtydtkLu6toftnT1nfdub/X9f8i/fl3SF1eNHH9tSKs31N0yMddeTXYqdnkxEIgmXJF1bdhWJwjjPdut1Kh2+pbJp+HFbVpPLq0jcSFIy5ZJ6uWY4/p1vr0IenBwHb7qbikN48OJlr4BNu6C5V7iRZc3/RCQWuGrveJqrJto0HMypfTHOMrS+53Lv4LDTu07GFy9fi0jIe03KIjQp3Q/G30vobhfUkuDPJnrAZb1uW6Cm2dq3rx706ERutbOGpmn+BMVaUuw= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx new file mode 100644 index 0000000000..533215bff9 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-a-tenant +title: "Update a Tenant" +description: "This endpoint updates the Tenant data." +sidebar_label: "Update a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint updates the Tenant data. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx new file mode 100644 index 0000000000..e3c3232bd9 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-api-key +title: "Update API Key" +description: "Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation." +sidebar_label: "Update API Key" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx new file mode 100644 index 0000000000..ac7fc7e5ed --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx @@ -0,0 +1,77 @@ +--- +id: update-bridge-integration +title: "Update Bridge Integration Status" +description: "Updates the Bridge integration status. Supports two main operations:" +sidebar_label: "Update Bridge Integration Status" +hide_title: true +hide_table_of_contents: true +api: eJztWulv2zgW/1cIfmoB+YibTmf8adM4adN0kjR2pptNAoGWnm3WEqmSlD1u4P998UjKknzk6AEMFjsYtLVEvvv4kU/3NAYdKZ4ZLgXt0qssZgY0MRMgbxWPx0C4MDBWDBcQbZjJdZP08yyTymhi5pKkjAsiM3BrdPdW7DXJeWYaXBAjCzIv3N4uuaXnF4OjXnhydktfkgY5VGBZnl4fkoSLKRlJRaQaM8G/Oa5SDCVTMRfjW9Fp+g3kL65MzhJyEEUyF6bK4PLooHcdHp9fhr2ji/P+yaDOaeZ3Mr+TjQwoy59lmZIzltwKGtCVSicx7dLcWsYpc1KahAZUQ5Qrbha0e3NP3wJToA5yM6Hdm7vlXUAVfM1Bm7cyXtDuvf3JFcS0a1QOAY2kMCAMvmJZlvDIkm190eiPe6qjCaQM/2UWGdAulcMvEBkarDnu0nFBgztJd7uPBjRTqJzhoC0P97jkoY3iYrzBY8DUGIynYt2EYcJrxgCRp7R7s/IxDTa9Qe8CCn+zNEuQ2WrlMqCQMp5sE2QkVcoM7foV65Id4VPC4liBdpKhN2eg+MgblLyQdjFLAhLDiOUJRq8kuQZFLNGXtCrVFzkR//I/m5FMUbpRniShYCk8bqrjPEkILn2+MLirLssHORGkJwFlmC6i0LF+1FuLDIgcbTCvOImLmM94nDO06DDXXIDWde+sngbUcGMfnV4fIm26XAaVaL4pwuiuXLmRLRfMRBMfqtbfjo+NPZmZkLuYz9OUqQXGRmYwvuSWYKYBnbEkh2oAV6POh9KmI2t+LG1bNW2pNeoY2bIR+qoR+qpRF9TXpLXKslXGzXRY2v/QmDqTQjtzdNpt/Kvu0y057bI9JjqPItAadVvQn1ZWDiXabXs14cJlpft3lORYoYvqwERMFCRWtJgZ9t1F5zBXCsSq6sjRjt5UCeuz80F4dHbw9uNRjwb2VyUuHixMAT26vDy/3FGgHgjsvtMGoyXXRqagQh4/rpxXo9hDTnq1xMfn4V7nFRtGRe5vmG2H4zZKjm2tFZdtOOQp8l4J/jUHwmMQho84qFUXKLp3TX4UeP/1bzGMvrt8en9noDQGu4hBjSXG2en14c4i+evayKM94p9Sm120WI88ZIdc8U0nX360ukcu972xd5thYkymu63W0AZzUxtIEqaaUo1b00XUKgPASP1jErEogswKZEClthhoUDMewVMFMlJXBNqaUDtctpFQHm7eigYR0iAdZSDuWltlSmIxxhdk4SATvsS1XHi7Qn2pX0KGubHbilW4h80ZR7XDfCi75MD/IleJ4amFeiBgxCPOEnI+F6BqgiIBmzehghmHuWOr82HKteZFUhH30nKzILhQpaZz8QqXKcDCs3VZ8QqXZSzX62Zxz/CtHI0stscVh0UVLB/eVjOiYmUa0NKONKBVA9GAVtXFt15qii3WSYbVzwqBOH/Frp5ea1QqKVZWewzpJ8PnImb7LmZ9ODMRQTWYMhDYSLtksBbjq2hy+5wBS2dtLC+XVYzoqVetUlO6YqtC4cF5v1TYGZBLESpgWoqq3kwphtiDG0i32GO5eWaxFFaFdkWbvOAj4mHLMKmj4Rt6svI8iWWUpyBMUZQOfOmuReOI8QTVXEG5OGTmwRqEiKpheAobPvw8AVHrd2TONPFka0Wo0+68brT3Gu29Qbvdtf//55figzU0zuMa0g1WLc9yrLSHSl2uVcRacNflvqtlw0cupidiJFG7LSD5YZzy19pZvAoqMS6u+j0SQyY1N5sH1x+DLJtgvbTsjIVvfv/j78U3VOqpCb6uSyWpWWT4jNlqWdxXcO2egsfKLF5Y0QptcVsM2zdWnteye/XUylb+qqd4ZVHhRi+6Z1GmewwzSNDk4QggzEBFILbmTt0SvWIbGYEFb7iNjYEwTRhZbSplajdf/2LwrGWuIgi9dUMutFG5rTZPQNNvmZgWjiHVrdZj2tVUG6tG7oiteuQOmZiGw6Jtq8UTcfFZBRIjiVWoVUjVjNB32Mefl5yJ8TwVLZ568orqUVmjnusYSVplnq+Aggj4DA2HBGqEP0OSaHLM1FiuGHhY/jiPogk8zmav84r8ibeXfROQPhPkWDERcR3JgBwelJydkUORp0NQTwjMqmfcpt023Ou82n/925vf/2iv+CmZWzDzLH5+k+e3xmKv3W539n9HDhlbYMcMFePJjzRvfwUMMfEUiaW4U1EsThMa0DlXQO/Wu9X2fKhEazXK1gJiu5e223Jd/7tdJbDnVDiplglnA8OFgxuPVo1euZhEUoz4OFdlZ4ukmIE14CgX8WZzqwr6eAxcVJzgfVBKWg0Gfxp6XimoaVK6pFYJbJV9cpIWhal62C4z9arfq5/u3/U+XXROLz69Oz15f/3h3b/Prk6uz/98f3B5dXB5ePCm92Hw+vi8c3x8fn56/ept53P/0/t3+59fvbE5lchoGk0YF2EKqXxCPq02ENywAgwVkxKjmNAs2jCvTecNMFbzZS2qC4M9EIilH7divBVC296r60314T5Yj++dIhVgT+LpIuQiHD4hhK60bdFkPpHEbrQmrc15Kje9a8EFCuFYjed3Q/gBT0EblmZkjmC+Pmmygu2SYxekXwO9YXHKeK5Z/L5HwWnVHrt4/yzzrM/Knnfcef6EwMWWvQ7fb+9t3oBfCZabiVT8mxXgu6+567UWlJJbGq2dUBjFtiLER66zfcNZBjQFrdl4Czjy1/4rI67koGfSkJqepRgFo/32XoX0+o5lYcJXmyY8lmrI4xjEr7ffDvVKCQox9zfFRI2OZS7+x9088ipu8/B+1cOX4Eq3vQZyu4rBkWFjjfnlT0TV8fQdkjATiSPsDKdvFgLhdJr6+9EGX5tmqxkobYfZucIJGsUpdjHk7qOpnS2qo+4SRmb8FBabmNyHpiuzE2B45YheZVxgw2eC9HsX5MPnAXlx1O+8/u0lwfte+zQkBxcnZAqLJg2oH9vV6NnbQLz3tWTRF/2ji732T5KM9I8uGnttJ5vTmdwbOQWxfPksiTr7P1Oizv7PkOhTDmrxNLHsUpIxxVIwuyWqCGBFKhh/xe22I2DWXpYfRRyVefEL57goxchhP996CgTa43qYKw0WPl8kzGCTxJDD6S0o7bTvNPeabUyP1ch3MAHyMI0X/d7FS3vPQ4yUCRnmPDEbn7fYyX/KpkCGeTItTlP2KSNjJfMMT7IKIp5x+0LOwOHRgrsAM5dq2tzs5f84EW/FrRhMuLYs7VdDouHLWqYkllxiJszecTlREGrLrDjLr5EL7NUZvohkDCRiggzB1Ua7cYI/kkTOMUiVQ7xSccA7Obxeu/GHoZb/uxFXjNTIvJEaQxZNQcR3L4rB0pibST7EKGw9i8LLLrHKr0RZFFmk/ZWOXWa14mKkmMPmufIKFgeRB33afIZmI2Ub64+oVpB4TLc5DEmx9ru1mUCSNqIJU0Y/KHJlXcsogBZ+o9byDx7U5zE13kOSEkuouOlI5MJOJB/NNaxFYzLNh6AEGNBNe3VrJ5nnIz8Tqkwva2NLXNSQo0Y57kx4BELbslnU+4xFEyAdW6dc60Za3VZrPp83mX1rqfmtuvXx5PDorH/U6DTbzYlJE1ueM6lNykSF8FXtg7IKuiD98uxZqTv3JV77/weFlQ8KfVMy8LdpZQnjAtuSddS9x2Q3dAsmuwvoRGqDb+/vh0zDlUqWS3zsemr35g6/M1IcZ2X2q8OgaPMI4qZgP1ByHmkM3PTHf5a0iaaXQbHjwI4PH1xbBZcXB4PD93jr5r9zTGWMmxTD2Sn+2aX2m8rVjbt9dk8TJsa5Q7iOKMYg20AkU4tI/D9QreKVWFREXIc8ThP8E/XauuX+3uGd5XK13r3aucPbtliNbrxbLpf/BSUfJAQ= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the Bridge integration status. Supports two main operations: +1. Opt-in to Bridge (status: "OPTED_IN") - Creates KYC link for organization onboarding +2. Create Virtual Account (status: "READY_FOR_DEPOSIT") - Creates virtual account after KYC approval + + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx new file mode 100644 index 0000000000..6b05be4956 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-organization-profile +title: "Update Organization Profile" +description: "Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client." +sidebar_label: "Update Organization Profile" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-payment-status.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-payment-status.api.mdx new file mode 100644 index 0000000000..285353d925 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-payment-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-payment-status +title: "Update Payment Status" +description: "Cancels a payment by setting its status to `CANCELED`." +sidebar_label: "Update Payment Status" +hide_title: true +hide_table_of_contents: true +api: eJzdV91z2kYQ/1du7smeEQhTtw96IzaZuE1TapzpA2Gak7SgC9KdercyURn97529kzAYjOM0menUDwZO+/H77a32Y8NRLC2PZnwi6gIUWj4PeAo2MbJEqRWP+JVQCeSWCVZ6GRbXzAKiVEsm0TKLAivLULOPV6N3V+O34+uPfR5wXYIRZOQm5RF/X6YCoXUzdSo84KUwogAEQyA2XIkCeMRlygMuyXkpMOOPEd1cM71gmAH72Npz/gz8VUkDKY/QVBBwi3VO1qwsyhx4wOFzmesUeLQQuSWBJINC8GjDsS6dJBqplrxp5t4aWHyl05okEq0QFNJXUZa5TByz8JMlRJtDUzr+BAnuoZpxHykKcWkoOijBOm1/fgAk4KCqgjS7wPJ50zTERDhOO7oPIk5iPxjuwJZaWe9wOBjQx35Y21iyyt1UymyVJGDtosrzmgdfHoFdxgVYK5ZAlB8HZj8EneCRywg4SnQ3+asXum2p8P1IbE1smSQudSGlkDQBvzzG+pVI2a2/65eQPM0GjNHm2H3u+74GFJJerVhX6BLaKzpeaIR91lPj/4jbxSG390pUmGkj/4b0u5P7ctCH+a6qIgbH+0QePM78Fgd/p5Ht8XyA0Tm6HFzsmH6ssQ3hD4chfK1NLNMU1PeP3xP0HhB0MC8PYRKj17pS//NrXrQUj93w5e4N34LVlUmAqa1W96ZYSCojsXYN5xUIA2ZUYcaj2ZzqfgGY6dS3niRzLYoe8rDtfjbcyLQJbdfBLJj7rn1VJucR52Sm8zKlaPtw7Pra0hal/AXqg8owarPTXR3LQKRgGF2skIr6rlBsej1hP/9xx87G0+GPP50zbdrTP9locsNWUFNTbDvqnr2uuXqzdB3T8eRi8I2Qsel40rsYeGyeM9ugXoFqzl+EaHj5LRENL78Fot8rMPWXwXKibDvgPIVoB4CD1Dn+i9Rd96MX9/ZhGhmf7P2kvdAOXds0pwh5Lgy7ljaujAXXGSe5wIU2BaUKDzhlsEc97F/0B5TWVVEIU/OI32XATts4m15PzpmkERG1zllcyZzeOsO0WQrVRtRNiIVYAYurfNUNk+5UsKXRVUlTnYFEltI90PdgXFPsvCvAtTar/kGo/3sQP6gP6i6T1rlUTJegem1FKo2maskwE0iPPRStGOqym2sfmQuYUKl7kOgUaKxhMfiy5hQz+pHnek3JZaDUVqI2EmxEOHpsZr29sP3spTtB6pVtkHqxSFag0vlZhljaKAyXErMq7ie6CF9k4TxijvwWSt1lv3VgWzHHSqqFERZNlWBlWoJ0L/jcnfZfwGxhXE/8N9Q6E89xW0PMOtmvZpNBXvSSTBi0JyHvyIVoAMJCSBW2Byf5PEfjDeQFc4Yc/hTKXNeUXs8yYZUluVUVg1GAYPsfqKghmML+tpiCuZcJ1aWOVguzr80ydEI9vejZVizguUyAZv1oux2OSpFkwIauTvmWS7aiMFyv133hnjprraoN395cjd9Nx71hf9DPsMhdWS21xUKoHcN+RWXd9rBdUveKzc4q+PWrcds5ED5jWOZCKircjsqmnTdmvKs+POCRW4gftsdMWySRzSYWFt6bvGno2LeMaDYP+L0wUsRU/2cbnkpL39Pt4vskobPbdnc7Z08s2UeRd41QURe8F3lFv3jAV1D7bb6ZN0HXSgmRf3Dl/fbuSP1B8WBobYJOY5QkUOJJ2d0RbjK6u3rDAx63S3zhtn9uxJoWc7H2KLULhBvR3NmG50ItKz9IeqOUL+Kg669c12+/EK2jcXg8Vngm9J94HVXZbPxM0TRbef/oSY02ttuQUyCapvkHPcU9mA== +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Cancels a payment by setting its status to `CANCELED`. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet-status.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet-status.api.mdx new file mode 100644 index 0000000000..8358a9c6cb --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-receiver-wallet-status +title: "Update Receiver Wallet Status" +description: "Updates a receiver wallet's status. Only `READY` is supported." +sidebar_label: "Update Receiver Wallet Status" +hide_title: true +hide_table_of_contents: true +api: eJzdWNtu2zgQ/RWCL5sAsuVks/ugt7RJ0eylde0UxcI1WkoaW6wpkuUlrtfQvy+GlBw7dpJm2wKLzUMskzPDc2aouXhNHZtbmk3oCArgN2AsnSa0BFsYrh1Xkmb0rS6ZA0sYMa0QWTIhwP1kiXXMedsnr6VYkY+jy/OLvz4Sbon1WivjoOzThCoNhqGxq3JjrjvvXbA0DmZoQjUzrAaHOLLJmkpWA81od+6HeO4HXtKEcsSmmavoXcBXF0TNiKvgLmAEY+Cz5wZKmjnjIaHWrQSeYXmtBdCEwhctVAk0mzFhUaCooGY0W1O30kHSGS7ntGmm0RpY90yVK5QolHQgHT4yrQUvAu30k0Vc631TKv8EhdtBNaHRpxgHbdB1joMN2nF9D0hCQfo6BBH9T6dN0yANFghtKbb7YXvXDWHBaiVtPOp0MMCPXbeOdp3Zxp74EM+SWF8UYO3MC7Giyde7Ypt6DdayOSD3ux7a9UUneCAqCXXchZD+GYVGLTMk3iT07BC3Z6wkoxjLp2B/GCQYo8yheO2efQGOcWEJy5V34dpGxRBEZ5h99KQm/iG3k31ubyXzrlKG/w3lDyf39aD377P0dQ6B9wPhvXu5Wxz0lXJkh+ctjO6gs8HJlum7GhsX/rzvwhfK5LwsQf54/91D7xZBB/NsHyYyeqG8/J+HedZSPBThs+0Ij8AqbwogcqPVvSkWCm+4W4Uy8wyYAXPuXUWzyRTzeg2uUmUsMEUVChNu0rSrKDaNWdCm6/3q1KS2K2gWzE1XzbwRNKMU7XfHjzEM0U/bIDb+YJr/Dqu9lHHeXtsQU1IBK8EQjDjjkss5YZKML4bkt3fX5OhyfPrLr8dEmXb1AzkfXpEFrLAatgV2x15XW6NZjNP4cngy+E7IyPhy2DsZRGyRM1k7tQDZHD8J0enZ90R0evY9EL3xYFZfByuIkk2/cx+iLQABUnfwZ1QP1Q7f6NFtG3J5f91H1ZkK0NoKOXYgBDPkgtvcGws1SEeGgrmZMjXeE5pQvL4R8mn/pD/AO+3rmpkVzeh1BeRhG0fji+ExdoSMOKUEyT0X+C4aosycydadljhFarYAknuxIJqt0EpYZWRulNfY0RkouOZhQ2Ef4rZOl+CWyiz6e37+70F8L9/L64rbcKQkSoPstXlKG4U5lLiKOdyOUJQkTumup71jLiFMlmGjUCWQgkmSQ0x2QbHCL0KoJd4sA1pZ7pThYDPE0SMTG+2l7Wev3HJST7dO6uWsWIAsp0eVc9pmaTrnrvJ5v1B1+iQLxxkJ5DdQVt3VtwFsKxZYcTkzzDrjC+dNSxDj4h6Laf8JzGYmVMpvodaZeIzbEnLSyf5rNhWIuldUzDj7IOQtudQZgLRmXKbtwoN8HqPxEkRNgqGAvwQt1Aqv16NMiLcot/A5GAkObP89ZjQHpravZ2MwN7zAvNTRamH2lZmnQainZj3biiVU8AKwsc82k+K5ZkUF5DTkqVhv0VaWpsvlss/CbrDWqtr0j6vnl6/Gl73T/qBfuVqEnKqVdTWTW4bj1Eo2M1CcW8lmcN1JOluD4LdPz20ZcfDFpVowLjGRB2rrtiuZbAZkRNL2JTSh2cG5+Xa8rJR1qL1e58zCWyOaBpdjackm04TeMMNZjqVisqYlt/hcbibjezkfjdqZ7pg8OIsfpNaVTYk184YJj99oQhewOvxTQDNtkq4QI84o+Dyi6V2juVtDe71wk3Qa50UB2j0ou90ZDs+vn7+kCc3b2b8OPxpQw5Y4z7NlRK2Ce0KDF9bWVDA597E/jUbxwrG9nmEReob2AWkd9MvdpiQywf/I66DKeh07kqbZyMetezVa33bSGCb8jeEfn81l/g== +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates a receiver wallet's status. Only `READY` is supported. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet.api.mdx new file mode 100644 index 0000000000..f81f7b201a --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-receiver-wallet +title: "Update Receiver Wallet" +description: "Updates a receiver wallet's Stellar address and memo for user-managed wallets." +sidebar_label: "Update Receiver Wallet" +hide_title: true +hide_table_of_contents: true +api: eJzdWW1TIrsS/iupfLm7VQwMMIryDQV33dVdF1DPWdfihJkGcpxJ5iQZPVyK/36rkxnkTXFXz61b1w8CM/3ydHfS3enMqGFjTZs3tAsh8HtQmt6WaAQ6VDw1XArapJdpxAxowojKicgDi2Mw/9KkZyCOmSIsihRoTZiISAKJJCOpSKZBeQkTbAxRzqLLtERlCoqh8NNoIb7Qf23JaImmTLEEDCJq3syoYAnQJi0QDHhES5QjvJSZCV3HfNomckTMBMgfheQ/ULWCvzKuIKJNozIoUW2mMcrVPEljoCUKf6exjIA2RyzWSBBOIGG0OaNmmlpKo7gY0/m8tAnK2fhybGv+fGOAt04aaHMkoylShFIYEAa/sjSNeWijUPlTI67Zpig5/BNCs4LqhmoX8kEeclwvqcKQGg7ailkj2IC27pDFIgpDmQlDpCKIVLHQLBYWrqetLpuXFgpx4e3W9tV+YfHjOkW5awu5TOfzOTqbWbdvs4p+OP6t9an+26f61ef6p5OP9W/n7ZOvvc/ntS/n59+Pel/rV6f9/c7lxbfrXvu69qkRnNfq3W7vjK4jptVaPdhzGlfjbx/oVArtXFvzffxYNai76hKS2Q0VEZ2FIWg9yuJ4Sku/HvzV6PJom4sXjqIHft2vV6PAq0Z+4AUHjUNvuB8delG4tx9UR4eHBwdArV0O9es1+rVDqEHkeyMY7ntBGPjewTBoeP5BfZ8d7DWCKqvhfqWGG8tQOOyMGwvF+e31QPZYxA4h2vOCvT3mBY2Dmsd8AK+67zf2G+BHMKyiPpc2npN0xYeKCUNaWnNtkGciE0jZeAffxJhUNyuVe8fP0rQcysTuEUgHVX8QxhyEGUQyYVw8L4ul3IvgvrwpKwJIBzEXd4Onks9uTBUdpSge5YFgwxiWnTuUMgYmluXk2wFryiCvKc8z2Py4HHZXWoqgvyBLPdrwy1t9Z3ZaIxi4t1uoQgW4qwfMPA+15tfqnl/z/Hq/6jeDveZetez7/neUkWeGV8ng4p7/lIzDTRkx02aQgNZsDAONC3K7tNU8Z3gC2rAkJQ8TEKvVACUWvyLCBLEwbYYjbCgzQ8yE6zxDbsVZ9TdxGmlYPEjZNAFhdiyRGjIUpIMCygt4RozHEL1Qi+9SJ+5eLsY/x+QQDViCRXaZhSnFsEJwA4nenQaZ1mAGoW1CnlN72Wsfo2ZHz7XOVrL9tm12dNQOGqcn+2fXnxsXjfN256p3fN1ttC8ur6/qX36vt/vfOlcnZ8GXVj9offtY/352dnLW2tti3/OKqr5f9v2VotBybHO7IZnJtvtUZAn2QO1u66RPS7TbabV/t58fTnv9TrfTpiV6ctb68KHTxsZoveJol4N6TsFC1WDCtZFq+usx+S9CXmzDbdpGUiW4lykmGg9Jd22271tL84rWj847HWHU1HVJ6+T5qWFuXwbbmqQjFpGu64bfrhcCpeTWJb2quw2G8VgvEhEQx2gbTKPY7vjO3R/aVt207VKwzEyk4v+G6B837uWgNxelyJIhWLvz5L/t2LLeeOc46BdpyIqdjzAKRYFfXRK9zrFwYX3ThSdSDXkUgfjn/feEeY8ICpjBJky06ERm4v88zKPcxG0RDpYj3AUtMxUCEQuuYqdoCDPFzdROD46AKVCtzExo8+YWT8YJmImM3BE9nNh5A76klaKl0JXZ0rBhXsnnF0tPF6f9OZ7oQN0Xs4pMxbRJKaopUPQwGs5dy1ge033KP8N0I3O08tXrGpkJsAjc2djVf2x0eu0L8um6T951erW9/fd4eHZPB6R1cUruYIpjhXxSsSKvGFI4sRiuXuei6r8RMtLrXHhV32FzNpOZkXcg5u9/ClEteEtEteAtEH3LQE1fBsuSksU06ylESwAspELxX8huSyRu7O7jPKfz3GhiUYjWBg2Pm5uLkTuN5JW0mH+0uR5mSgO2leQiZgYrOq4kWqK4wJ1RtXK17KP4LEkY9i20vzRD2S7jXa998Z5wnCMaKWMyzHhs7PxFqjETucM1MZIk7A7IMIvvSNHg4lNGxkpmKQ7PFIQ85faFxPZ/eYIjwDxIdVfeiMT/HsQf4ofo47kEVQoiUxBentBSJTHZEjNhBl87KFIQI9NifLgmrmSnr/gCe3MSMkGG4LKiZZzgjziWD7j2FKRScyMVB91EHB65yRdLJf/0oiUneWnuJG/IwjsQ0e274mA/5maSDd2h/mckvG8Sa/wCyrTYHNqCzcmsVVyMFNNGZaHJVG7g+uhua0zLP2HZSNmS+hrTChG7bHuAISlof9maCcSJF06YMvpZyEt0FaMAKnh8rOQPnrVnlxkfIU6IFWTxR5DGcorLa6clJNNId5cNQQkwoMs/MOcZUIn+OuqBuufh8vQoh1mWalyxRJ4ceTonK9GYhyC0zYZFGk9ZOAFSs3nKVWSU1axUHh4eysy+tdJyVl05Oz3ufOl1vFrZL09MEtusm0ptEiaWBLv7CrKYui5uLFayzdKw/e0vUPKKY+BvU0ljnOTNcxtneR9zs5ivalqizdVrk1zSyovHq4tbHDZqgzJmsyHTcKni+Rwfu1rUvLkt0XumOA7tbL8TcZ0P8PI7iSc98a6bj7ffk6duaLbaVpRYgfX1nsUZ/qIlegfTtUshvJZ5JZ4ttzKvAfXo2fktDnJdJ4F+c4THDo3XR3GPgjZ6erTMcbTCEFLzLO1yh3vR6h9/pCU6zG+BEju5oYo94M0Oe3CopXWP7VDtsxmNmRhnrs92QnE/sI2m5842PfkXNGurX9a7KmcJ/ke7trLMZq6lms8X9O7Vkxy5bwtqDNPtfD7/D1CN7d8= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates a receiver wallet's Stellar address and memo for user-managed wallets. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx new file mode 100644 index 0000000000..2968ea99fe --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-receiver +title: "Update a Receiver" +description: "This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver." +sidebar_label: "Update a Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx new file mode 100644 index 0000000000..552a151826 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-activation-status +title: "Update User Activation Status" +description: "Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password." +sidebar_label: "Update User Activation Status" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx new file mode 100644 index 0000000000..80261aa54e --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-profile +title: "Update User Profile" +description: "Updates the profile details of the logged in user. Note: all fields are optional but at least one should be sent in the request." +sidebar_label: "Update User Profile" +hide_title: true +hide_table_of_contents: true +api: eJzNV8Fy2zYQ/ZUdnOIMJcqqmwNPdRJnkiZ11MqeHhRNBiSXIiIQYIClFVWjf+8sSMqS7dhxm8zkIpLYxcN7C2h3sREkF14kMzFxtlAaxTwSOfrMqZqUNSIRl3UuCT1QiVC3TpAjSaU92CIMa7tYYA7KQOPRDeHcEiYgtYZCoc49SIdgA6DUkDYEkkCj9ATWIPjSNjqHFMGjIYZhUIefG/Q0FJGwNTrJs9/kO0KXHl3PORKd83Obr0WyEZk1hIb49Wn8lB8+K7GS/EbrGkUibPoJMxKRqB3Dk0LP1kI5Tx+NrHDP15NTZiG2kdDyPitWUuk7LGz6Iqta480lxCv+OOf3A3DxTu6GO9T2+Vv4HWa2EtstA7Ny5TAXSSG1xzDia2t8q2c8GvHjcEvfvxXRfoxkXWuVhQjHnzy77AfseoWZqNB7uQin5P449o53BoMUcSjEH63TXx1hcRinHYTgU7U7e03Y/hx8k2XofdFove5icTI6vi320siGSuvUP5g/Rvb9+tA56+4+BF/ISf8wgidJzb6faaoUHUPcE7wbZ6mjIc4twYHMaxb9Oiej4z3kmzN+JHC7Nb/c3ppX1qUqz9H8+H25W901gW9wCDo8Zo1TtBbJbCOeo3ToThsqRTKbb+ccBiotJ6laUlYyO8lGEde7VOXRXaHzAaBx/McWPLMHnrLQVss+/E6QrNVbXIubWfq0i3iIGpQoc3TAMZXKKLMAaWD6cgK//30BT86m41+fHYF13ehHOJ28gSWuOdd2+ecAT0RC8SItLJ/Q6dnkePSdmMH0bDI4HrXcWs2wIbtEsz16FKPxyfdkND75Hoz+bNCtv41WcIVaOlkhfZ3RHoFAqV/4M08P51iZwoblujQ7JdRaOnipfNo4jxVX2YmWVFhX8d6LSPCRbGmMh8fDEZ/TpqqkW4tEXJQI92M8mb6cHIHyIIGs5RKvNEFhHVi3kKYLkQeyUMklQtroJdRyzShhVMLC2abmhsJhpmoVDPYKXegF+tUN0sq65fBW7H4+ih/MB3NRKh+WNGBrNANvG5eFLopzF1Apic0tFWuAbN23VDfgIpAmD4bM5giZNNwuFbYxeZhY8ofWdsWnxWFtvSLrFPqEeQxg5lu8uHsO8r0gDeouSINUZks0+fxJSVT7JI4Xisom5XYjfhTCUQJB/I7Kuj/ObSPZuQVVyhROenJNRo3rBPK+0EN7OnyEssKF+vJ/pPUQD2lbYQq9739WU6KuBlkpHfl7Ke/5xeQQ40oqE3cD9+p5SMZr1BUEoMA/x1rbNR+vB5VA49lv2aToDBL64QfOUoSu8u+LKborlXFe6mV1NIfWLeLgNLDFwHdukdAqQ+4Ok80u8dYyKxHGIU+1NZSxkjherVZDGawBrZvq43dvXpydT88G4+FoWFKlQ56sradKmj3g9moBfLeA68vFQarZu1z8DFejrqQQfqG41lIZrjwhJJuu95iJ+vpqV1pPPLTZpNLjpdPbLQ+3tSOZzSNxJZ2SKdeN2Xwb9eWMm5UlcjF40aofXPDC7K4bJsDXrG3UO51mGda0Z77V0h00S5PTixevRSTS7vpW2ZwnObniq51chR4pEvJWGV2GMtq9MMfeZNZ7i9+s0y1H/mXGd07ZbNoivd3u/FvTV2d0geq9eSPm2+32X/1NYx0= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the profile details of the logged in user. Note: all fields are optional but at least one should be sent in the request. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx new file mode 100644 index 0000000000..6cd48fbea3 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-role +title: "Update User Role" +description: "Updates an SDP user’s role by `user_ID `." +sidebar_label: "Update User Role" +hide_title: true +hide_table_of_contents: true +api: eJzNV1Fv2zYQ/isHPjWFZDluUqB6S5sMzTq07pxgD67RUtLZYi2R6pGKoxkG9jf29/ZLhqPkRG7SpFlTYC+WTN5993131JFcCycXVsRTcW6RrJgFIkObkqqcMlrE4rzKpEMLUsPkeAy1Rfrnr78tkCkQkgbgEw99PD2GTwMRCFMhSXY9za6cGfl3U6AIBOGXGq17abJGxGuRGu1QO359Gj3lh01zLCW/uaZCEQuTfMbUiUBUxNhOoeVZH1RlPUPrSOmF2ASCqdnejCSSjQiEcljaWzw2m0DgpSyrAnegxWEqR8+G6Yswky8Ow4Mk2w+TkRyFUh5mw2z+/BDnmbiKNxUZXmDBLMVs41FZriLMRDyXhUU/YiujbctvNBzyYzfh796IoJ8YWVWFSn1Oo8+WTb4/SyVaKxd4m+YdyVd2XryvrYUVEkLtK5iBrdMUrZ3XRdH8sDf7Hwz3b2o/17J2uSH1J2aPlwUkMnTrSsFLR9Lej2CddHXfTtdlgsQQd6T4qzR1NMRb42BH5jWLbZyD4X4P+WuPnwnclubZzdL8YihRWYb659fldnXXBL7DwOuwmNakXCPi6Vq8RElIR7XLRTydbWaBuAxTk+ECddh1pTAxWRNqWTIZfm9TiNoqo61HWWIj4js9A3Ehi/oKgQOV6HLD/aSSLs05DZJZiIg/Fxu17YPp0gW3YI5TUyFi4b23Kiac1TZxfS3XXa5Sb5Ap79btqCuvLxHkKDMk4AJKpZVebPv6r3+cwZOTyejw+R4Y6kY/wtH4FJbYcGfv8rKDx02Vg7Sw/DlMTsb7w0diBpOTcbg/bLm1mmHtzBL1Zu9BjEYHj8lodPAYjN7XSM330fKmUEmSJbpvM+oR8JS2gb+wu/9olJ4bH045/nTExGFRSIJjZZOaLJaoHYwL6eaGSq49r2Yk29IYDfYHQ16ndVlK4u/gLEe4G+PJ5Hi8B8qCBGdMAUmtCgdzQ2BoIXWXIgvOQCmXCEldLKGSDaP4UQkLMnUFZg6EqaqUnzAXSOB60TW6laHl4Ebu/n8UP+gP+ixX1ofUYCrUoTU1pQgVGW6U4HLpeLqlYjQ44+FvgQtA6sxPcEuCVGpIEOam1pl3zPlPUZgVrxbCyljlDCm0MfMIYWpbvKh7hlkvSWHVJSlMZLpEnc2e5M5VNo6ihXJ5nQxSU0YPQtiLwYu/otJsl7P1ZDszr0rpOUnrqE5dTZ1Arou7r6aDByibk9/MfkTaFuI+bStMYGv7n9XkWJRhmkty9k7KPbvIEWJUSqWjbuBOPffJeI1FCR7I88+wKkzDy+teJVBbtlvWCZJGh3bwgbuUQyrtu/kE6UKl3Je2sjqaA0OLyBuFZh7aziwQhUpRW38G2DbeSqY5wsj3qXYPZaw4ilar1UD6WY/Wudrot9NXJ28nJ+FoMBzkrix8n6yMdaXUPeD2IgN8k4HuKrPTZ3pXmYfemLre7/DSRVUhleYtwnNfdweFqT9X26ubxiwQubGOJ9brRFo8p2Kz4eG21cfTGZ9CSMmE2/x0tgm2u8/1GeZVyzc84/DXhxa+hm2CrdFRmmLletM3jns755vx0dmr1yJoTz58MTAZO5FcMXe58keaQMgbu97S73rdC3PcTummF/zrbbXlyL/M+FaX9brdUzebK/t26pseXaK21lwOvsz9CxY6S3k= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates an SDP user’s role by `user_ID `. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx new file mode 100644 index 0000000000..9cecaa844d --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-wallet +title: "Update Wallet" +description: "This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement." +sidebar_label: "Update Wallet" +hide_title: true +hide_table_of_contents: true +api: eJzdWNty2zgS/RUUnuIqUbfIyQzfnNhb8W4247GdzdY6Lg9ItkyMQACDixSNiv8+1QApURdfsuOt2po8ODbZfXC6CTRO94o6dm9pekO/MCHAWXrbowXY3HDtuJI0pdcltwRkoRWXjnBLvIWCOEVAskwAUYYU3IZfGVkEFKKNmvMCTJ98Ug5S4kq0u2eS/84QlthSeVGQXClTcMkckAV3ZbDbgSAZTJUBYkFA7ri8J4xoZhzPvWBmz3qqDGFIKPPGQgXS9WmPKg0mLHxe0JR+1gVzEAOmPaqZYRU4MJiHFZWsAppSXtAe5ZgAzVxJd7NyfkrUtMvXKeIDLu1RA795bqCgqTMeetS6pUBMyyst0AC+aaEKoOmUCYsGeQkVo+mKuqUOls5weU/r+jaigXXvVLFEi20eX9arZ9AQQOK5kg6kQ3umteB5iH7wq0Wn1f56KvsV8pAMg7lyHCy+jbnYZbWbiw++YjIxwIqwC9BpJznt56F1j5aqAs3un4PbWJLPlx8fASwA9J3gcnb3UBp3gU8BNEEPEj3Crumgd1KGC1jQd6PhXS44SHdXqIpx+fQiV2cXyWhIoheJXnF7eleCdJ0F4kkqOpiZUgKY3AP9UoIrYYtsOJ3BP6B7CwjJrMXTvEFkxrDlHt4JPsXcBntiYAoGZA6WWK+1Mg4Kki2JwxqwaA8Md1AFaCXhp2k4NLvbaGeVbXBEPD/d22y8eDqpEen8lNZ195jdoPNt3XuKyHvBrOX5brR7VCLKPhmQvsLV8oiDS9I8HOTnEQ+2dY9yaz2Y53pFa8KKwoC1e6EHiIbHGvoZyfjEHJ8D+ffHf/7pfMgARW8PUrutb2t8UXF50UEd9ajjLtTFbkG+jNWO1ttYWEjDA6uVtJHVeDh8sCA2pZBYn+dg7dQLsXy5unh4q8I3Fup7So9ZwX6E4jiZHB+zZPL2h3HChgDJ6M3w7Zu3MCwgG+E+eKi+bpD+xTPDpCMn1nLMyuP1c+NXOqdtOhjMoz/Tup+r6nuq2QaLaZ4UMO/vYz2n9D7FaWALjfCIlxvAr3bH3CGkqTIVvqH4aRPHK9iCHw/Hr5Ph2+T16Ho8TI+H6eS4/2byw38QuNkOLw1cb/ZwIyfqsG8nh3bmO1aQ5i7vEW89E2JJchbkVKixQH5pKvkvZMpBFKTi1qLkmRpVBYPGn2SqWPZfbj+DMeoZ5egUHOPCEpYp7wKf6IhX2DdnmH1ypTr+wwyN9jP0WeLdqAz//SVFzAPBPZ80tY4537WTvsqi+KjA2oOHsYlzvYvWPOgn5chWnBsa7UKT4agDveuxTuHr/RT+TZmMFwXI/33+Hghvw6ClOXmwSkvlyFR5+Rf/2m2Ihz70pPuhL8Eqb3LoJKY9MBZyb7hbBrn1DpgBc+JdSdObW2wSKnClKmK3kpehq8GXdBBVmx2seFFThDHzttPxRtCUUnRv0a8wyzEN3TU2KlLzf8ABGdlsztjclcCwFcMPyrgMLZskV6cX5O9frsmrs6vx8ZsjbBvj0ztycnFOZhDqWdN8beG1fViExc9wdXYxGr4QM9Lo9MAtxkxWTs1A1kffxWg8eUlG48lLMPrZg1k+j1YwJete+CFGHQKBUrvwb+geLkQ8sJeblvVscyQav/XlslEy3QtnV1Fs3h1WLl012rRRsetuW6CbqNc2lWCdilbGtyJ+A9UK9ANOjdatUftzOVUhtY0IuHIgcCpx2pk/kAvBHCoM3Oe0R/H4xZSP+6P+EOPyVcXMMsxagDyO8erq9OIIez5GnFKCZJ4LFxq/7nzF4kCgYjMgmRczotkSUcJTRu6N8hp7PgM51zy8UPOmqWxXl+AWysz6e/vk/4/iV/lVhiEVLimJ0iCTpoxqo7DEE1ey0ChHKkoSp3Q7UdiB6xEmi/AC9wTJmcTJSqjFwbHEP4RQCzwZBrSy3CnDwabIIyE3NuINmv+T7iwq0U2SkozlM5DF7atWFN9zV/osCuLvQThKSQh+TWXZHl0byDZmISoup4ZZZ3zuvGkCbEcfj37T/ndENjXhIv8zobUQT8W2gIy0tv91NCWIKslLZpx9lHLHbuAMwADLz6B58Gg8T4XxAURFAlDgX4AWaonb68lIiA/twcxnYCQ4sP2vWJEdmMr+NL0CM+d5t/NqaPaVuR8Eo0RNE9uY9ajgOUjbrdUnmuUlkHGoU1EvIFY6GCwWiz4LbwNa42oHH8/fn326OkvG/WG/dJUId4JW1lVMdoBjy0/WQ9itIrPaiMG/xPi5uTkcfHMDLfDWqptsrhqddkMbnUZ7NMVZFt6O1uGL1SpjFj4bUdf4OF606c1tj86Z4Rh4uOKaJBTrmfKDGX112UxVjsijU+yDrFsRIVFBzJnw+Bft0Rks49A83IuNDEFe8cX7uHpyHWdVreOe0Md7Nnqc5Dlo96htV/ZenFy//0B7NGum5FW80A1b4DyeLSJLFdIR5G14tqKCyXsfNUgExe3K9hTTLCim5pfOwHM7D7uSLEaCPzv6YdtltYp6rK7X9vHVgx5Nbtcpx0TUdf0Hle0AFA== +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. + + + + + + + + + + + + + + + + + diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx new file mode 100644 index 0000000000..3805521a00 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx @@ -0,0 +1,74 @@ +--- +id: upload-disbursement-instructions +title: "Upload Disbursement Instructions" +description: "Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called." +sidebar_label: "Upload Disbursement Instructions" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called. + + + + + + + + + + + + + + + + + diff --git a/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/api-reference/users.tag.mdx rename to docs/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx diff --git a/docs/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx b/docs/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx new file mode 100644 index 0000000000..4e763329d2 --- /dev/null +++ b/docs/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx @@ -0,0 +1,74 @@ +--- +id: verify-receiver-registration +title: "Verify Receiver Registration" +description: "This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request." +sidebar_label: "Verify Receiver Registration" +hide_title: true +hide_table_of_contents: true +api: eJzdWFFv2zYQ/isEX9YAkpUY2R705iTumq1NvNjtMLiGQ0tni7VEqiRlVzP034cjpVi2k7jd0mHYS2JRx7vvI3l3H7Whhi00Dcf0DhZcG8UMl4JOPBqDjhTP7WNIRwnXBEScSy4MWYHicw6amASIggj4CtQPmqiWDzIryYqlPGaGi4W1vB0NCBMxkSYBVTuJnPGKpQVokiu54jHEhIva9+cCtCEzGZcd0nMOybA/8LvnxMglCKITWaQxmQHhIkqL1uReYRKp+J8uQgIsBkXkvO24Qz0qc3CIr2Ma0g+IqryrOe0sikfrWRcyLmm42VuiD20+MTOsBoTs80QKmIoim4EKIGM89XA1vEcWwbNLpOCyNxhdvuk5ltSjkRQGhMG4LM/Tek7wSWPwDdVRAhnDX6bMgYZUzj5BZKhHc4UMDQeNb23wlpk2iosF3d/vPpoRprWMODMQkzU3yc52N6s8vBpYtjOmoUP63O7tfZvwPZGK3NvA94Rru/ZcQdyhlUfbhsdhDdCaOOt/A500+XFQtwL8Ec+ADJjWa6niBkVM5nL3nKPPneejzj8cHJBtksxKy7HQoPYdT+cc0vgx9yCKDPP9qjfqT29fTy+u70ZvqEf/6Pfupu9ub+zD4PqGevSmN7q+vem9nV5fTW/ev7vo32FhMNyksIfstY1WYYZELDdRwqbu3B7lN7JJvF0wJTPys5SLFLY5QKtqG/ax1LxzeUmrqnJJihtIQ6MKsAM6l0K78989PT2SurqIItB6XqQvl3UZaM0W8Oh+fGFZbpnJJRKwHM4fQ3nBYtIwfbl6oJT8isS7AsN4qgmbycLYU+cmVkjAKKaPRqq23M4Oub0XrK7WEH93cl8PmmrDTNG2qytV5T29p47mw74+wKA30pAdmlsUTZzz07OW5/0Z39Ox9a0hKhQ3JQ3HGzrsD7rn2ERpOJ5UE49+8SMZwwKEXzdCH/uyL1iGLvG3Cw1Ccym0dbKEkobPzvSoLWuNBwyUgUkkduNc2rOeMwRBAw1599znwoBikeEr8GPIpeYm2CmqyEOtQDkEhUppSK3fht4Qz4/b4AtgCpRj+bCRLOe/QnmQBI8KCjyqjAvs8kzYfvPL7yPyqj/s/vjTCfYWNzolvcE1WUKJkqNesR1/1KMcgzi3eMCG/cHZ6Qshs5rp7NRhc5zJxpbo6uSbEDUn4mUQdc9fAtFvBajy62BZU5IzxTIwTyNqAWj0lw38GafbdoSl6G4rB/utpHQKa1tJdyXOdtyKi+3jri54fLxp6wfd+6DvtmodF3NpV6buoEMDacoUueJ6VigNGQhDBikzc6kyPKYuqHY4up2zzimmVJFlTJX2LgDkeR+vhleDExRTjBgpUzIreGqsGJJqwUS9m5oYSTK2BDIr0iXJWYle7CgjCyWLHNW6gojn3L6QKOxMK7oAs5Zq2TlUFf85iB/FR2EvURhSEJmD8LUsVGT1HPYeYhJm8LWDIgUxMm/uK3vu3CUBX2BdJRETeAGaywJvV075zmWayjUebOVqpFQcdIg4fDLWzl9Q//fj1iL5eb1I/oxFSxDx5FViTK7DIFhwkxSzTiSz4Js8nITEkn+AUjaZ5+6QtZllxcVcMW1UEZlC1QRxX8yxPe18A7O5sgrjn1BrXBzjtoYZaWz/NpsE0syPEqaMfhZyyy4wCiDIGBdBPfAsn2M03kCaEevI4o8hT2XZ3Oyfz7VCo92ymIESYEB3PmJBNaAyfTsfglrxCOtSQ6uG2ZFqEVgjX859XZt5NOURCG1LbdMjchYlQLq2Trl2j77CIFiv1x1m31pv9VQdvL2+7N8M+363c9pJTJbako5iI2Oi5dh9DCDNlYPsfQ7YqTmbrWj9P38tqdurgS8myFPG7ZXWrvmmlmlj+qRM2+9yE48mqPDCMd1s8Ir+XqVVhcOu0YbjCapDxdkMO9d4UnlN799qy0u37P4IkW3F5MG9ofKaGb0ogtw8a9sWoYPb4Yh6Tp3iXU7GOEexNfZdtkZxiV+RjNO8Gze2oSkTi8KpbecTzxg7UClLq1LqH8iqeSXKFsJ9GeSI4F+k9eiUzcZpoKp6sHevnpxRL21jjXs7qarqL0k/Gcs= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request. + + + + + + + + + + + + + + + + + diff --git a/docs/tokens/anatomy-of-an-asset.mdx b/docs/tokens/anatomy-of-an-asset.mdx index a1569f1b60..1a1d0cd53f 100644 --- a/docs/tokens/anatomy-of-an-asset.mdx +++ b/docs/tokens/anatomy-of-an-asset.mdx @@ -3,8 +3,6 @@ title: Assets Overview sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Issuing assets is a core feature of Stellar: any asset can be tokenized (or minted) on the network and then tracked, held, and traded quickly and cheaply. Assets can represent many things: cryptocurrencies (such as bitcoin or ether), fiat currencies (such as dollars or pesos), other tokens of value (such as NFTs), pool shares, or even bonds and equity. Any Stellar account can issue an asset, and since anyone can set up an account, anyone can issue assets: banks, payment processors, money service businesses, for-profit enterprises, nonprofits, local communities, and individuals. It’s a self-serve process with no permission needed. Issuing an asset on Stellar is easy and only takes a few operations. However, there are additional considerations you may need to think about depending on your use case, such as publishing asset information, compliance, and asset supply, which we’ll cover in this documentation. Assets on Stellar have two identifying characteristics: the asset code and the issuer. Since more than one organization can issue a credit representing the same asset, asset codes often overlap (for example, multiple companies offer a USD token on Stellar). Assets are uniquely identified by the combination of their asset code and issuer. diff --git a/docs/tokens/control-asset-access.mdx b/docs/tokens/control-asset-access.mdx index 08b7d53a77..71e72d1179 100644 --- a/docs/tokens/control-asset-access.mdx +++ b/docs/tokens/control-asset-access.mdx @@ -3,9 +3,6 @@ title: Asset Design Considerations sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - ## Issuing and distribution accounts It is best practice on the Stellar network to create two accounts when issuing an asset: 1) the issuing account and 2) the distribution account. diff --git a/docs/tokens/how-to-issue-an-asset.mdx b/docs/tokens/how-to-issue-an-asset.mdx index bdf78038b6..f184b07984 100644 --- a/docs/tokens/how-to-issue-an-asset.mdx +++ b/docs/tokens/how-to-issue-an-asset.mdx @@ -7,9 +7,6 @@ sidebar_position: 70 # Issue an Asset Tutorial -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - In this tutorial, we will walk through the steps to issue an asset on the Stellar test network. :::note @@ -61,7 +58,7 @@ System.out.println("Issuer Secret Key: " + issuerKeypair.getSecretSeed()); ```go import ( - "github.com/stellar/go/keypair" + "github.com/stellar/go-stellar-sdk/keypair" "fmt" ) @@ -168,8 +165,8 @@ Asset astroDollar = Asset.createNonNativeAsset("AstroDollar", issuerKeypair.getA ```go import ( - "github.com/stellar/go/keypair" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/txnbuild" ) astroDollar := txnbuild.CreditAsset{Code: "AstroDollar", Issuer: issuerKeypair.Address()} @@ -261,10 +258,10 @@ Transaction transaction = new Transaction.Builder(distributorAccount, Network.TE ```go import ( - "github.com/stellar/go/clients/horizonclient" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/clients/horizonclient" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" ) client := horizonclient.DefaultTestNetClient @@ -670,10 +667,10 @@ server.submitTransaction(sendAstroDollars); package main import ( - "github.com/stellar/go/clients/horizonclient" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/clients/horizonclient" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" "log" ) diff --git a/docs/tokens/publishing-asset-info.mdx b/docs/tokens/publishing-asset-info.mdx index 0466e224aa..9eab91a7a8 100644 --- a/docs/tokens/publishing-asset-info.mdx +++ b/docs/tokens/publishing-asset-info.mdx @@ -3,9 +3,6 @@ title: Publish Information About An Asset sidebar_position: 80 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - Stellar assets are defined by who issued them, what they represent, and the terms and conditions for their use. These should all be defined and made public by the issuer in a [Stellar info file](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md). It’s crucial to provide clear information about what it represents. On Stellar, you do that by linking your issuing account to a home domain, publishing a Stellar info file on that domain, and making sure that file is complete and accurate. The most successful asset issuers give exchanges, wallets, and potential buyers lots of information about themselves in order to establish trust. @@ -133,28 +130,27 @@ You should also use the `set_options` operation to set the home domain on your i ```nginx title="Configure stellar.toml for nginx" server { - - server_name my.example.com; - root /var/www/my.example.com; - - location = /.well-known/stellar.toml { - types { } default_type "text/plain; charset=utf-8"; - allow all; - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; - add_header 'Content-Length' 0; - return 204; - } - if ($request_method = 'GET') { - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; - add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; - } - } - - // CertBot SSL configuration - // ... + server_name my.example.com; + root /var/www/my.example.com; + + location = /.well-known/stellar.toml { + types { } default_type "text/plain; charset=utf-8"; + allow all; + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + add_header 'Content-Length' 0; + return 204; + } + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; + } + } + + // CertBot SSL configuration + // ... } ``` @@ -208,33 +204,31 @@ server = Server(horizon_url="https://horizon-testnet.stellar.org") network_passphrase = Network.TESTNET_NETWORK_PASSPHRASE # Keys for accounts to issue and receive the new asset -issuing_keypair = Keypair.from_secret( - "SCZANGBA5YHTNYVVV4C3U252E2B6P6F5T3U6MM63WBSBZATAQI3EBTQ4" -) +issuing_keypair = Keypair.from_secret("SCZANGBA5YHTNYVVV4C3U252E2B6P6F5T3U6MM63WBSBZATAQI3EBTQ4") issuing_public = issuing_keypair.public_key - # Transactions require a valid sequence number that is specific to this account. # We can fetch the current sequence number for the source account from Horizon. issuing_account = server.load_account(issuing_public) transaction = ( - TransactionBuilder( - source_account=issuing_account, - network_passphrase=network_passphrase, - base_fee=100, - ) - .append_set_options_op( - home_domain="yourdomain.com" - ) - .build() + TransactionBuilder( + source_account = issuing_account, + network_passphrase = network_passphrase, + base_fee = 100, + ) + .append_set_options_op( + home_domain = "yourdomain.com" + ) + .build() ) transaction.sign(issuing_keypair) + try: - transaction_resp = server.submit_transaction(transaction) - print(f"Transaction Resp:\n{transaction_resp}") + transaction_resp = server.submit_transaction(transaction) + print(f"Transaction Resp:\n{transaction_resp}") except BaseHorizonError as e: - print(f"Error: {e}") + print(f"Error: {e}") ``` ```java @@ -265,19 +259,19 @@ func main() { } // Build the transaction - tx, err := txnbuild.NewTransaction( - txnbuild.TransactionParams{ - SourceAccount: &issuingAccount, - IncrementSequenceNum: true, - BaseFee: txnbuild.MinBaseFee, - Preconditions: txnbuild.Preconditions{TimeBounds: txnbuild.NewTimeout(100)}, - Operations: []txnbuild.Operation{ - &txnbuild.SetOptions{ - HomeDomain: "yourdomain.com", - }, - }, - }, - ) + tx, err := txnbuild.NewTransaction( + txnbuild.TransactionParams{ + SourceAccount: &issuingAccount, + IncrementSequenceNum: true, + BaseFee: txnbuild.MinBaseFee, + Preconditions: txnbuild.Preconditions{TimeBounds: txnbuild.NewTimeout(100)}, + Operations: []txnbuild.Operation{ + &txnbuild.SetOptions{ + HomeDomain: "yourdomain.com", + }, + }, + }, + ) if err != nil { log.Fatal(err) } diff --git a/docs/tokens/quickstart.mdx b/docs/tokens/quickstart.mdx index afe269d569..b8fda21e89 100644 --- a/docs/tokens/quickstart.mdx +++ b/docs/tokens/quickstart.mdx @@ -3,8 +3,6 @@ sidebar_position: 30 title: Quickstart --- -import { CodeExample } from "@site/src/components/CodeExample"; - Issue your first asset on the Stellar network in **one, single transaction**! diff --git a/docs/tokens/stellar-asset-contract.mdx b/docs/tokens/stellar-asset-contract.mdx index 0fd993ee45..93273bbc69 100644 --- a/docs/tokens/stellar-asset-contract.mdx +++ b/docs/tokens/stellar-asset-contract.mdx @@ -41,7 +41,7 @@ For example, when transferring from a Stellar account to a Stellar contract, the And for example, when transferring from a Stellar contract to a Stellar account, a contract data entry is debited, and the account's trust line entry is credited. -In both those examples it is a single asset that is transferring from the account to the contract and back again. No bridging is required and no intermediary tokens are needed. An asset on Stellar and it's Stellar Asset Contract represent the same asset. The SAC for an asset is simply an API for interacting with the asset. +In both those examples it is a single asset that is transferring from the account to the contract and back again. No bridging is required and no intermediary tokens are needed. An asset on Stellar and its Stellar Asset Contract represent the same asset. The SAC for an asset is simply an API for interacting with the asset. The SAC implements the [SEP-41 Token Interface], which is similar to the widely used ERC-20 token standard. Contracts that depend on only the SEP-41 portion of the SAC's interface, are also compatible with any contract token that implements SEP-41. diff --git a/docs/tools/README.mdx b/docs/tools/README.mdx index 3e4b6695c2..eb9364742c 100644 --- a/docs/tools/README.mdx +++ b/docs/tools/README.mdx @@ -27,6 +27,10 @@ Stellar Lab is our new go-to tool for development, experimenting, and testing, a Quickstart is a local Stellar network environment (node) that allows developers to run a local version of the Stellar network for development and testing. +### [OpenZeppelin Relayer](./openzeppelin-relayer.mdx) + +OpenZeppelin Relayer, also known as Stellar Channels Service, is a managed infrastructure for submitting Stellar Soroban transactions with automatic parallel processing and fee management. The service handles all the complexity of transaction submission, allowing you to focus on building your application. + ### [OpenZeppelin Contracts](./openzeppelin-contracts.mdx) OpenZeppelin Stellar Contracts is a collection of audited contracts and utilities for Stellar. The contracts are developed by OpenZeppelin in collaboration with the Stellar community and the Stellar Development Foundation (SDF), in an effort to bring a library of high-quality and audited contracts that can be used to build applications on the Stellar network. @@ -41,10 +45,10 @@ Find other SDF and ecosystem-maintained developer tools that help streamline the ## SDF Platforms -### [Anchor Platform](/platforms/anchor-platform) +### [Anchor Platform](../platforms/anchor-platform/README.mdx) The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. -### [Stellar Disbursement Platform (SDP)](/platforms/stellar-disbursement-platform) +### [Stellar Disbursement Platform (SDP)](../platforms/stellar-disbursement-platform/README.mdx) The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. diff --git a/docs/tools/cli/cookbook/asset-management.mdx b/docs/tools/cli/cookbook/asset-management.mdx index 94d6f520d4..25eb2af593 100644 --- a/docs/tools/cli/cookbook/asset-management.mdx +++ b/docs/tools/cli/cookbook/asset-management.mdx @@ -1,7 +1,7 @@ --- title: Asset Management hide_table_of_contents: false -description: Issue a Stellar Asset, deploy it's contract, and mint, burn, freeze, and clawback. +description: Issue a Stellar Asset, deploy its contract, and mint, burn, freeze, and clawback. --- Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/cookbook/contract-build-meta.mdx b/docs/tools/cli/cookbook/contract-build-meta.mdx new file mode 100644 index 0000000000..7413222a2f --- /dev/null +++ b/docs/tools/cli/cookbook/contract-build-meta.mdx @@ -0,0 +1,7 @@ +--- +title: Add meta data to contract WASM on build +hide_table_of_contents: true +description: Include meta data in the contract WASM byte code on build +--- + +Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/cookbook/install-deploy.mdx b/docs/tools/cli/cookbook/install-deploy.mdx deleted file mode 100644 index 2cfce47323..0000000000 --- a/docs/tools/cli/cookbook/install-deploy.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Install and deploy a smart contract -hide_table_of_contents: true -description: Combine the install and deploy commands in the Stellar CLI to accomplish both tasks ---- - -Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/cookbook/install-wasm.mdx b/docs/tools/cli/cookbook/install-wasm.mdx deleted file mode 100644 index 578a5f0905..0000000000 --- a/docs/tools/cli/cookbook/install-wasm.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Install Wasm bytecode -hide_table_of_contents: true -description: Use the Stellar CLI to install a compiled smart contract on the ledger ---- - -Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/cookbook/upload-deploy.mdx b/docs/tools/cli/cookbook/upload-deploy.mdx new file mode 100644 index 0000000000..b0e593f914 --- /dev/null +++ b/docs/tools/cli/cookbook/upload-deploy.mdx @@ -0,0 +1,7 @@ +--- +title: Upload and deploy a smart contract +hide_table_of_contents: true +description: Combine the upload and deploy commands in the Stellar CLI to accomplish both tasks +--- + +Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/cookbook/upload-wasm.mdx b/docs/tools/cli/cookbook/upload-wasm.mdx new file mode 100644 index 0000000000..4b285af0fc --- /dev/null +++ b/docs/tools/cli/cookbook/upload-wasm.mdx @@ -0,0 +1,7 @@ +--- +title: Upload Wasm bytecode +hide_table_of_contents: true +description: Use the Stellar CLI to upload a compiled smart contract on the ledger +--- + +Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/install-cli.mdx b/docs/tools/cli/install-cli.mdx index 06cfc890ed..7fc2c692fd 100644 --- a/docs/tools/cli/install-cli.mdx +++ b/docs/tools/cli/install-cli.mdx @@ -12,6 +12,12 @@ import { StellarCliGitHubVersion } from "@site/src/components/StellarCliGitHubVe There are a few ways to install the latest released version of Stellar CLI. +Install with script (macOS, Linux): + +```text +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Install with Homebrew (macOS, Linux): ```text @@ -80,9 +86,9 @@ echo "source <(stellar completion --shell bash)" >> ~/.bashrc ## Stellar CLI Cookbook -To understand how to get the most of the Stellar CLI, see the [Stellar CLI Cookbook](https://github.com/stellar/stellar-cli/tree/main/cookbook) for recipes and a collection of resources to teach you how to use the CLI. Examples of recipes included in the CLI cookbook include: send payments, manage contract lifecycle, extend contract instance/storage/wasm, and more. +To understand how to get the most of the Stellar CLI, see the [Stellar CLI Cookbook](./cookbook/README.mdx) for recipes and a collection of resources to teach you how to use the CLI. Examples of recipes included in the CLI cookbook include: send payments, manage contract lifecycle, extend contract instance/storage/wasm, and more. ## Video Tutorials -- Video Tutorial on `network container`, `keys`, and `contract init`: https://developers.stellar.org/meetings/2024/06/27 -- Video Tutorial on `alias` and `snapshot`: https://developers.stellar.org/meetings/2024/09/12 +- Video Tutorial on `network container`, `keys`, and `contract init` from the [2024-06-27 developers meeting](/meetings/2024/06/27) +- Video Tutorial on `alias` and `snapshot` from the [2024-09-12 developers meeting](/meetings/2024/09/12) diff --git a/docs/tools/cli/plugins-list.mdx b/docs/tools/cli/plugins-list.mdx new file mode 100644 index 0000000000..8559673e30 --- /dev/null +++ b/docs/tools/cli/plugins-list.mdx @@ -0,0 +1,3 @@ +# Plugins List + +Stub file: the real file is generated in build time by `yarn stellar-cli:build`. diff --git a/docs/tools/cli/plugins.mdx b/docs/tools/cli/plugins.mdx index fd78cef323..906819d39e 100644 --- a/docs/tools/cli/plugins.mdx +++ b/docs/tools/cli/plugins.mdx @@ -6,15 +6,21 @@ sidebar_position: 20 # Plugins -The Stellar CLI supports plugins in a very simple way. All you need is an executable (it doesn't have to be a binary) in your `PATH` that starts with `stellar-` and the CLI will automatically detect and load it. +Plugins extend the functionality of the Stellar CLI by adding custom commands. The Stellar CLI automatically detects and loads any executable (which doesn't have to be a binary) in your `PATH` that starts with `stellar-`. -You can also install plugins that are made available publicly. One example is [rs-stellar-strkey](https://github.com/stellar/rs-stellar-strkey); you can install it using Rust's cargo: +## How Plugins Work + +Plugins are executables (scripts or binaries) that follow a simple naming convention: they must start with `stellar-`. When you run a command like `stellar hello`, the CLI first checks for a built-in command. If none is found, it searches for a plugin named `stellar-hello` in your `PATH` and executes it if found. + +## Installing Plugins + +You can install plugins that are made available publicly. For example, you can install [rs-stellar-strkey](https://github.com/stellar/rs-stellar-strkey) using Rust's cargo: ```sh cargo install --locked stellar-strkey --features cli ``` -That will install the `stellar-strkey` binary in your `~/.cargo/bin` directory. For the purpose of this example, we'll assume that directory is already on your `$PATH`. +This installs the `stellar-strkey` binary in your `~/.cargo/bin` directory. Make sure this directory is in your `$PATH` for the CLI to detect it. :::danger Security Warning @@ -24,22 +30,28 @@ Be careful! Plugins have the same access to your system as the Stellar CLI itsel ## Listing Available Plugins -To list available plugins on your system, use the command `stellar plugins --list`: +To list available plugins on your system, use the command `stellar plugin ls`: ```console -$ stellar plugins --list +$ stellar plugin ls Installed Plugins: strkey ``` ## Creating a New Plugin -As mentioned, before, plugins just need to be an executable available in your `PATH` that start with `stellar-`. Start by creating a new file named `stellar-hello`. This example shows how to create a plugin using `bash`, so you need a system that supports it (Unix-based, or Windows' WSL). +To create a plugin, you need an executable file in your `PATH` that starts with `stellar-`. This example shows how to create a simple plugin using `bash` (works on Unix-based systems or Windows' WSL). + +### Step 1: Create the Plugin File + +Create a new file named `stellar-hello` in a directory that's in your `PATH` (for example, `~/.bin`): ```sh touch ~/.bin/stellar-hello ``` +### Step 2: Add the Plugin Code + Add the following content to the file: ```bash @@ -48,41 +60,64 @@ Add the following content to the file: echo "hello from stellar plugin" ``` -Now, make the file executable with `chmod`: +### Step 3: Make It Executable + +Make the file executable: ```sh chmod +x ~/.bin/stellar-hello ``` -If everything is set up properly (i.e. the `~/.bin` is in your `PATH` and `~/.bin/stellar-hello` is executable), you should be able to find it: +### Step 4: Verify Installation + +If everything is set up correctly (the directory is in your `PATH` and the file is executable), you should see your plugin listed: ```console -$ stellar plugins --list +$ stellar plugin ls Installed Plugins: hello strkey ``` -Finally, you can execute it by calling `stellar hello`: +### Step 5: Use Your Plugin + +You can now execute your plugin by calling `stellar hello`: ```console $ stellar hello hello from stellar plugin ``` +## Plugin Naming and Subcommands + +The Stellar CLI automatically searches for plugins when no built-in command matches. This works for both simple commands and subcommands. + +For example, if you create a plugin named `stellar-contract-bindings-ruby`, users can execute it using either: + +- `stellar contract-bindings-ruby` (with dashes) +- `stellar contract bindings ruby` (with spaces as subcommands) + +The CLI converts spaces to dashes when searching for the plugin executable, so both formats work. + :::tip If you're using GitHub to host your plugin's repository, consider adding a `stellar-cli-plugin` [repository topic](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics). This way, your plugin will be listed by `stellar plugin search`. ::: -When you run a command and no built-in command is found, the Stellar CLI falls back to searching for a plugin. This happens even for subcommands. For instance, let's say you're creating a new plugin to generate Ruby bindings for your contract; you can have something like `stellar-contract-bindings-ruby`, and users could execute `stellar contract bindings ruby` rather than the dasherized version. +## Troubleshooting -### Troubleshooting +If the Stellar CLI can't find your plugin, check the following: -If Stellar CLI can't find your plugin, make sure you clear all items above: +- **Naming**: Ensure the file starts with `stellar-` +- **Permissions**: Verify it's executable using `chmod +x` +- **PATH**: Check that the plugin's directory is in your `PATH` environment variable +- **Shell**: Restart your terminal or reload your shell configuration (e.g., run `source ~/.zshrc` or `source ~/.bashrc`) + +You can verify your plugin is in your PATH by running: + +```sh +which stellar-hello +``` -- Ensure the file starts with `stellar-` -- Verify it's executable (`chmod +x`) -- Check that its location is in your `PATH` -- Restart your terminal or reload your shell configuration +If this returns a path, your plugin is accessible. If it returns nothing, the plugin's directory is not in your PATH. diff --git a/docs/tools/developer-tools/building-with-ai.mdx b/docs/tools/developer-tools/building-with-ai.mdx new file mode 100644 index 0000000000..3792fd897a --- /dev/null +++ b/docs/tools/developer-tools/building-with-ai.mdx @@ -0,0 +1,116 @@ +--- +title: Building with AI +description: Use Stellar documentation with AI assistants and Large Language Models +sidebar_label: Building with AI +sidebar_position: 118 +--- + +# Building with AI + +Stellar provides resources to help AI assistants and Large Language Models (LLMs) understand our documentation, making it easier for you to get accurate answers about Stellar development. + +## Using llms.txt + +[`llms.txt`](https://developers.stellar.org/llms.txt) is a standardized way to provide documentation context to AI systems. This file contains a structured overview of Stellar's developer documentation optimized for LLM consumption. + +When you ask an AI assistant about Stellar, it can reference this file to: + +- Understand the structure of our documentation +- Find relevant pages for your questions +- Provide more accurate, up-to-date answers + +## Using with AI assistants + +### ChatGPT, Claude, and other LLMs + +You can paste the contents of `llms.txt` into your conversation to give the AI context about Stellar: + +``` +Please read this documentation overview and help me with Stellar development: +[paste contents of https://developers.stellar.org/llms.txt] +``` + +### AI-powered coding assistants + +Tools like GitHub Copilot, Cursor, Claude or Gemini can benefit from having `llms.txt` in your project context when working on Stellar-related code. + +#### Cursor + +You can provide Cursor with Stellar development context in two ways: + +**Option 1: Using Cursor Settings** + +1. Open **Cursor Settings** (the gear icon in the sidebar) +2. Navigate to **Rules** (under the **Features** section) +3. Click **Add Rule** +4. Add your Stellar development guidelines and save + +**Option 2: Using a `.cursorrules` file** + +Create a `.cursorrules` file in your project root: + +```text title=".cursorrules" +When developing on Stellar, refer to the official documentation at https://developers.stellar.org + +For comprehensive documentation context, fetch and reference: https://developers.stellar.org/llms.txt + +Key resources: +- Smart Contracts: https://developers.stellar.org/docs/build/smart-contracts +- Stellar CLI: https://developers.stellar.org/docs/tools/cli +- SDKs: https://developers.stellar.org/docs/tools/sdks +``` + +The Settings approach applies rules globally across all projects, while `.cursorrules` files are project-specific. + +#### ChatGPT + +ChatGPT offers two ways to provide persistent context: + +- **Custom Instructions**: Go to Settings → Personalization → Custom Instructions to add information about yourself and how you'd like ChatGPT to respond. You can include that you're a Stellar developer and prefer references to official documentation. + +- **Custom GPTs**: Create a custom GPT with Stellar documentation context built in. You can configure it to reference `llms.txt` and provide specialized Stellar development assistance. + +#### Claude + +Claude provides context customization through: + +- **Projects**: Create a project and add custom instructions along with knowledge files. You can upload relevant documentation or add instructions to always reference the Stellar docs. + +- **Memory**: Claude can remember details from past conversations. You can ask Claude to remember that you're working on Stellar development, and it will retain this context across sessions. + +#### Gemini + +Google's Gemini offers context customization through: + +- **Gems**: Create custom Gems (specialized AI assistants) with specific instructions for Stellar development. Go to the Gems section in Gemini and create a new Gem with your Stellar context and guidelines. + +- **Saved Info**: In Gemini settings, you can add saved information about yourself, including that you're a Stellar developer, which Gemini will reference in future conversations. + +### Custom AI applications + +If you're building an AI application that answers questions about Stellar, you can fetch and include `llms.txt` in your prompt context: + +```javascript +const response = await fetch("https://developers.stellar.org/llms.txt"); +const stellarContext = await response.text(); + +// Include stellarContext in your LLM prompt +``` + +## Stella: Your Stellar AI Assistant + +In addition to `llms.txt`, Stellar provides [Stella](https://developers.stellar.org/docs/tools/developer-tools/ai-bot), an AI assistant specifically trained on Stellar documentation, code examples, and community knowledge. + +Stella can help you with: + +- Smart contract development questions +- Understanding Stellar concepts +- Debugging and troubleshooting +- Finding relevant documentation + +You can chat with Stella right here by clicking the yellow icon at the bottom of this page, or join the `#stella-help` channel in the [Stellar Developer Discord](https://discord.gg/stellardev). + +## Additional resources + +- [Stella AI Bot](https://developers.stellar.org/docs/tools/developer-tools/ai-bot) - Stellar's built-in AI assistant +- [Stellar Developer Discord](https://discord.gg/stellardev) - Ask questions in #stella-help diff --git a/docs/tools/developer-tools/node-operator-tools.mdx b/docs/tools/developer-tools/node-operator-tools.mdx index afba032bbf..9c3115c198 100644 --- a/docs/tools/developer-tools/node-operator-tools.mdx +++ b/docs/tools/developer-tools/node-operator-tools.mdx @@ -7,6 +7,6 @@ sidebar_position: 100 # Node Operator Tools -### [GitHub Repository](https://github.com/stellar/go/tree/master/tools) +### [GitHub Repository](https://github.com/stellar/go-stellar-sdk/tree/master/tools) A GitHub repository with tools like Stellar Archivist (for Stellar Core archive maintenance) and Horizon cmp (compares responses of two Horizon servers). diff --git a/docs/tools/developer-tools/online-ide.mdx b/docs/tools/developer-tools/online-ide.mdx new file mode 100644 index 0000000000..e163ef7480 --- /dev/null +++ b/docs/tools/developer-tools/online-ide.mdx @@ -0,0 +1,12 @@ +--- +title: Online IDE +description: An online IDE for Stellar smart contract development. +sidebar_label: Online IDE +sidebar_position: 72 +--- + +# Online IDE + +### [Soropg](https://soropg.com/) + +Soropg is an online IDE specifically designed for Stellar smart contract development. It provides a browser-based environment where developers can write, compile, and test Stellar smart contracts without needing to set up a local development environment. diff --git a/docs/tools/developer-tools/security-tools.mdx b/docs/tools/developer-tools/security-tools.mdx index ebe9807cb1..9c2429e231 100644 --- a/docs/tools/developer-tools/security-tools.mdx +++ b/docs/tools/developer-tools/security-tools.mdx @@ -20,3 +20,7 @@ Almanax uses LLMs to identify complex security vulnerabilities in both smart con ### [Certora Sunbeam](https://docs.certora.com/en/latest/docs/sunbeam/index.html) Sunbeam is a formal verification tool developed by Certora for Soroban smart contracts on the Stellar blockchain. Designed specifically for WebAssembly (Wasm) bytecode, Sunbeam verifies the deployed contract code—not just the Rust source—eliminating the need to trust the Rust compiler. Developers write correctness properties using a lightweight spec language embedded in Rust, and Sunbeam rigorously checks that the compiled Wasm upholds those properties. + +### [The Soroban Security Portal](https://sorobansecurity.com) + +The Soroban Security Portal is a security platform developed by Inferara. It is a community-driven solution, based on the constantly maintained database of security audits and vulnerability reports related to Soroban smart contract development. The user experience is enriched with semantic search and other features, enabling smooth search and work with security-related data. The Portal also warps to Stellar ecosystem projects, auditors, tools, and many more. diff --git a/docs/tools/developer-tools/wallets.mdx b/docs/tools/developer-tools/wallets.mdx index 77e5d8306b..b7862ea565 100644 --- a/docs/tools/developer-tools/wallets.mdx +++ b/docs/tools/developer-tools/wallets.mdx @@ -57,4 +57,4 @@ View the [docs](https://docs.dfns.co/d/api-docs/wallets/broadcast-transaction/st Wallet infrastructure that enables users to programmatically create a new wallet within their applications. -Follow this [guide](https://docs.privy.io/wallets/wallets/create/from-my-server) to create a Stellar wallet. +Follow this [guide](https://docs.privy.io/wallets/wallets/create/create-a-wallet) to create a Stellar wallet. diff --git a/docs/tools/lab/README.mdx b/docs/tools/lab/README.mdx index 7dfa47e868..fd78e884f2 100644 --- a/docs/tools/lab/README.mdx +++ b/docs/tools/lab/README.mdx @@ -9,30 +9,33 @@ sidebar_position: 30 ### [Stellar Lab](https://lab.stellar.org) -Stellar Lab is our new go-to tool for development, experimenting, and testing, as well as exploring APIs developers use to interact with the Stellar network. Whether you're a developer seeking to test transactions, explore RPC methods or Horizon endpoints, or dive deeper into the ecosystem, Stellar Lab provides a modern and user-friendly interface that makes the process smooth and intuitive. +Stellar Lab is our go-to tool for development, experimenting, and testing, as well as [exploring APIs](https://lab.stellar.org/endpoints) developers use to interact with the Stellar network. Whether you're a developer seeking to [test transactions](https://lab.stellar.org/transaction/build), [deploy](https://lab.stellar.org/smart-contracts/deploy-contract) and [invoke smart contracts](https://lab.stellar.org/smart-contracts/contract-explorer), or explore RPC methods or Horizon endpoints, Stellar Lab provides a modern and user-friendly interface that makes the process smooth and intuitive. -![Lab: Homepage](/assets/lab/lab.png) +![Lab: Homepage](/assets/lab/lab-01232026.png) ### Features of Stellar Lab -- Easily Create Accounts: Create Accounts on Mainnet, Testnet, and Futurenet using a web UI. You can use Friendbot to fund those accounts directly on Lab for Testnet and Futurenet. -- Access RPC Methods and Horizon Endpoints: Leverage powerful Stellar RPC methods and Stellar Horizon endpoints in a web UI to interact with the Stellar network and obtain crucial data. Try RPC methods to get states from the ledger like accounts, trustlines, contract wasm, and more. -- Simulate and Submit: Lab supports the ability to use custom RPC providers so that you could simulate transactions, save transactions, and submit transactions directly using Lab. You can also submit transactions using Horizon. -- Save and Share API Requests: Easily save your requests and transactions for the future or share them with teammates to build faster together. -- XDR ⇔ JSON Support: We have introduced a canonical [XDR to JSON mapping](https://www.npmjs.com/package/@stellar/stellar-xdr-json-web) which is used on Stellar Lab (also used in the [Stellar CLI](https://github.com/stellar/stellar-cli)). You can see this at work in the Lab where [XDR can be converted to JSON](https://lab.stellar.org/xdr/view). -- Mobile Friendly: We heard that you use Lab on the mobile, so we optimized the Lab to have a mobile responsive layout. +- **[Easily Create Accounts](https://lab.stellar.org/account/create)**: Create Accounts on Mainnet, Testnet, and Futurenet using a web UI. You can use [Friendbot](https://lab.stellar.org/account/fund?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;;) to fund those accounts directly on Lab for Testnet and Futurenet. You can also add a trustline to USDC and EURC on Testnet. -![Lab XDR to JSON](/assets/lab/xdr-json-lab.png) +- **[Smart Contract Deployment](https://lab.stellar.org/smart-contracts/deploy-contract)**: Deploy smart contracts directly from the Lab interface without needing command-line tools. Upload your contract WASM files and deploy them to the network with a user-friendly workflow. -These are the features that are available now. There will be more upcoming features to support smart contracts. We look forward to showing you the future of Stellar Lab. +- **[Invoke Smart Contracts](https://lab.stellar.org/smart-contracts/contract-explorer)**: Interact with deployed smart contracts through an intuitive interface. Select contract functions, fill in parameters with type hints, simulate transactions, and invoke contract methods — all from your browser. -### Video Tutorial for Stellar Lab +- **[Transaction Dashboard](https://lab.stellar.org/transaction-dashboard)**: View comprehensive transaction details including XDR, operations, results, and metadata. Explore transaction history, examine individual operations, and debug transaction failures with detailed error information. + +- **[Access RPC Methods and Horizon Endpoints](https://lab.stellar.org/endpoints)**: Leverage powerful Stellar RPC methods and Stellar Horizon endpoints in a web UI to interact with the Stellar network and obtain crucial data. Try RPC methods to get states from the ledger like accounts, trustlines, contract WASM, and more. + +- **[Simulate](https://lab.stellar.org/transaction/simulate) and [Submit](https://lab.stellar.org/transaction/submit)**: Lab supports the ability to use custom RPC providers so that you can simulate transactions, save transactions, and submit transactions directly using Lab. You can also submit transactions using Horizon. -- Video Tutorial for Lab: https://developers.stellar.org/meetings/2024/11/14 +- **[Save and Share API Requests](https://lab.stellar.org/endpoints/saved)**: Easily save your requests and transactions for the future or share them with teammates to build faster together. -### What About the Old Lab? +- **[XDR ⇔ JSON Support](https://lab.stellar.org/xdr/view)**: We have introduced a canonical [XDR to JSON mapping](https://www.npmjs.com/package/@stellar/stellar-xdr-json-web) which is used on Stellar Lab (also used in the [Stellar CLI](https://github.com/stellar/stellar-cli)). You can see this at work in the Lab where [XDR can be converted to JSON](https://lab.stellar.org/xdr/view). + +- **Mobile Friendly**: We heard that you use Lab on mobile, so we optimized the Lab to have a mobile responsive layout. + +### Video Tutorial for Stellar Lab -In case you need it, the previous version of Stellar Lab is still accessible [here](https://old-lab.stellar.org). However, it will no longer be actively maintained. We encourage you to explore the new Lab and if you think there is anything that’s missing, please reach out to us on the [Stellar Github](https://github.com/stellar/laboratory/issues). +- Video Tutorials for Lab are available on [Lumen Loop's YouTube Channel](https://www.youtube.com/watch?v=sv2gV13q7FI&list=PLj3KReXFn3x73pPlgSun-2FYTrP4tZVPL) ### Help Us Improve! diff --git a/docs/tools/lab/account.mdx b/docs/tools/lab/account.mdx index 5fbeeeac00..60cfb7874d 100644 --- a/docs/tools/lab/account.mdx +++ b/docs/tools/lab/account.mdx @@ -1,14 +1,14 @@ --- title: Account description: Explore Stellar Lab's Account Page by creating and funding account on Stellar -sidebar_position: 10 +sidebar_position: 15 --- # Account ## [Create Account Keypair](https://lab.stellar.org/account/create) -![Lab: Create Account](/assets/lab/lab-account-create.png) +![Lab: Create Account](/assets/lab/lab-keypair-01232026.png) From the Lab’s main navigation, click on the "Account" link to expand sub-navigation. Click the "Create Account Keypair" page. Here you can generate a [keypair](../../learn/glossary.mdx#keypair) by following these steps: @@ -29,11 +29,11 @@ The Friendbot can be used for new account or accounts with balance under a start ::: -4. Optionally, to save the generated keypair, click the "Save Keypair" button. Enter the name in the pop-up and click the "Save" button to save the keypair in the browser's local storage. Click the "Saved" link on the main menu to expand the submenu, then click on the "Keypairs" link to view saved keypairs. The save feature is available only on Testnet and Futurenet networks. +4. Optionally, to save the generated keypair, click the "Save Keypair" button. Enter the name in the pop-up and click the "Save" button to save the keypair in the browser's local storage. Click the "Saved" link on the main menu to expand the submenu, then click on the "[Keypairs](./saved/keypairs)" link to view saved keypairs. The save feature is available only on Testnet and Futurenet networks. ## [Fund Account](https://lab.stellar.org/account/fund) -![Lab: Fund Account](/assets/lab/lab-account-fund.png) +![Lab: Fund Account](/assets/lab/lab-fund-01232026.png) If you already have a keypair you want to fund, go to the "Fund Account" page (under the "Account" item in the main menu). @@ -41,23 +41,10 @@ If you already have a keypair you want to fund, go to the "Fund Account" page (u 2. You can always manually input a public key. 3. Once you enter the public key, click the "Get lumens" button to fund the account with 10,000 XLM on the Testnet or Futurenet network. 4. You will see a response message once the operation is completed. +5. Once an account is funded with 10,000 XLM, you can create a trustline with USDC or EURC to interact with these assets. :::info You can also create an account using a Stellar SDK. Follow a guide [here](../../build/guides/transactions/create-account.mdx). ::: - -## [Saved Keypairs](https://lab.stellar.org/account/saved) - -![Lab: Saved Keypairs](/assets/lab/lab-account-saved.png) - -This page shows you saved keypairs for the selected network (only Testnet and Futurenet) in the browser's local storage. Every keypair has the following: - -1. Name - makes it easy to find the keypair you're looking for. You can update the name anytime by clicking the edit button and saving the new name. -2. Public key - the public account address. You can quickly copy it with a click of a button. -3. Secret key - the secret key of the account. Click the Eye button to toggle between masked and clear text format. Like the Public key, you can copy it by clicking the Copy button. -4. Delete the saved keypair if it's no longer needed. -5. The last saved date and time. -6. XLM balance if the account is funded. -7. If the account is unfunded, you can get 10,000 XLM by clicking the "Fund with Friendbot" button. This might be useful after the Testnet or Futurenet reset, as all your saved accounts will also be reset. diff --git a/docs/tools/lab/api-explorer/README.mdx b/docs/tools/lab/api-explorer/README.mdx index c7e2cb34cb..4c910db122 100644 --- a/docs/tools/lab/api-explorer/README.mdx +++ b/docs/tools/lab/api-explorer/README.mdx @@ -1,6 +1,6 @@ --- title: API Explorer -sidebar_position: 20 +sidebar_position: 40 --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/tools/lab/api-explorer/horizon-endpoint.mdx b/docs/tools/lab/api-explorer/horizon-endpoint.mdx index 9a48a07c46..5cf0d7c74b 100644 --- a/docs/tools/lab/api-explorer/horizon-endpoint.mdx +++ b/docs/tools/lab/api-explorer/horizon-endpoint.mdx @@ -145,7 +145,7 @@ The Payments for Account endpoint `/accounts/:account-id/payments` provides succ ![Lab: Horizon - Payments](/assets/lab/horizon-payments.png) -When I click the **Submit** button, the endpoint returns the records of payments (see the [api reference](https://developers.stellar.org/docs/data/horizon/api-reference/get-payments-by-account-id) for more information on the response format) including the [payment object](https://developers.stellar.org/docs/data/horizon/api-reference/resources/payments/object) that were submitted successfully in the account in `JSON` format. +When I click the **Submit** button, the endpoint returns the records of payments (see the [api reference](../../../data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx) for more information on the response format) including the [payment object](../../../data/apis/horizon/api-reference/resources/payments/object.mdx) that were submitted successfully in the account in `JSON` format. ![Lab: Horizon - Payments Response](/assets/lab/horizon-payments-response.png) @@ -275,7 +275,7 @@ When I click the **Submit** button, the `/assets` endpoint returns the `USDC` as ![Lab: Horizon - Assets Page](/assets/lab/horizon-assets-usdc-response.png) -The JSON response for the `USDC` asset includes [the asset object](https://developers.stellar.org/docs/data/horizon/api-reference/resources/assets/object), which contains details about USDC, such as the asset's TOML file (also known as [the Stellar info file](https://developers.stellar.org/docs/tokens/publishing-asset-info)), the number of claimable balances, liquidity pools, contracts, accounts, balances, and flags. +The JSON response for the `USDC` asset includes [the asset object](../../../data/apis/horizon/api-reference/resources/assets/object.mdx), which contains details about USDC, such as the asset's TOML file (also known as [the Stellar info file](../../../tokens/publishing-asset-info.mdx)), the number of claimable balances, liquidity pools, contracts, accounts, balances, and flags. It shows that `auth_revocable` is set to `true` under `flags`, indicating that this account (in this case, the `USDC` issuer) can freeze the balance of a holder of an asset it has issued. @@ -353,8 +353,4 @@ Clicking the icon opens a modal. We recommend providing an identifiable name to ![Lab: Horizon - Modal](/assets/lab/horizon-save-modal.png) -Saved endpoints are located in the main menu under the "Saved" menu, "Requests" submenu. They include requests for both the **RPC Methods** and **Horizon Endpoints**. - -![Lab: Horizon - Saved Requests Page](/assets/lab/horizon-saved-requests.png) - -On the Saved Requests page, you can update a request name at any time by clicking the edit button and saving the new name. The **View** button redirects you to the respective endpoint page on the Stellar Lab, while the copy icon serves as the Share Feature we discussed earlier. You can also delete saved requests from this page. +Saved endpoints are located in the main menu under the "Saved" menu, "[Requests](../saved/requests.mdx)" submenu. diff --git a/docs/tools/lab/api-explorer/rpc-methods.mdx b/docs/tools/lab/api-explorer/rpc-methods.mdx index c6f39e9464..5f2eaeeee1 100644 --- a/docs/tools/lab/api-explorer/rpc-methods.mdx +++ b/docs/tools/lab/api-explorer/rpc-methods.mdx @@ -30,23 +30,4 @@ The Stellar Lab allows you to share RPC methods with filled data. Simply click o ## Saved Requests -You can save methods in the browser’s local storage by clicking the Save button (next to the Share button). Once you click that button, a modal will pop up, where you will need to enter the name and click save. To view your saved RPC methods in the Lab, click the "Saved" link in the main menu, then click the "Requests" submenu link. Then click the "RPC Methods" tab in the top right. - -:::info - -Only items for the selected network are shown. If you don’t see the item you’re looking for, try changing the network. - -::: - -![Lab: Saved RPC Methods](/assets/lab/rpc-methods-saved.png) - -Every saved request item has the following: - -1. RPC method name - quickly identify the method you need. -2. Name - makes finding the RPC method you’re looking for easy. You can update the name anytime by clicking the edit button and saving the new name. -3. RPC URL - where to submit the request. -4. Share the URL to view the method with all the data in the Lab. -5. View the item in the API Explorer, where you can submit it. -6. View payload. -7. The last saved date and time. -8. Delete the item if it’s no longer needed. +You can save methods in the browser’s local storage by clicking the Save button (next to the Share button). Once you click that button, a modal will pop up, where you will need to enter the name and click save. To view your saved RPC methods in the Lab, click the "Saved" link in the main menu, then click the "[Requests](../saved/requests.mdx)" submenu link. Then click the "RPC Methods" tab in the top right. diff --git a/docs/tools/lab/quickstart-with-lab.mdx b/docs/tools/lab/quickstart-with-lab.mdx index 0675588784..9f4815a085 100644 --- a/docs/tools/lab/quickstart-with-lab.mdx +++ b/docs/tools/lab/quickstart-with-lab.mdx @@ -6,7 +6,7 @@ ## Prerequisites -- [Stellar CLI](/docs/tools/cli/install-cli) +- [Stellar CLI](../cli/install-cli.mdx) - [Docker](https://www.docker.com/) ## Start Quickstart @@ -27,7 +27,7 @@ Quickstart will usually start on `http://localhost:8000`. With this information, 2. Select `Custom` network in the dropdown. 3. For the RPC URL, input `http://localhost:8000/rpc`. 4. For the Horizon URL, input `http://localhost:8000.`. -5. For the [network passphrase](/docs/networks), input `Test SDF Network ; September 2015` +5. For the [network passphrase](../../networks/README.mdx), input `Test SDF Network ; September 2015` 6. Click the button `Switch to Custom Network` and switched to using your Quickstart. You should be able to use Horizon endpoints, RPC endpoints, Friendbot on Lab, with requests now send to your local environment (Quickstart). Lab gives you a user friendly interface to interact with you local environment. diff --git a/docs/tools/lab/saved/README.mdx b/docs/tools/lab/saved/README.mdx new file mode 100644 index 0000000000..8f958c099a --- /dev/null +++ b/docs/tools/lab/saved/README.mdx @@ -0,0 +1,12 @@ +--- +title: Saved +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +# Saved + +View keypairs, requests, and transactions saved in local storage. + + diff --git a/docs/tools/lab/saved/keypairs.mdx b/docs/tools/lab/saved/keypairs.mdx new file mode 100644 index 0000000000..05d0e1a3ef --- /dev/null +++ b/docs/tools/lab/saved/keypairs.mdx @@ -0,0 +1,46 @@ +--- +title: "Keypairs" +sidebar_label: Keypairs +description: "View saved keypairs (accounts)." +sidebar_position: 0 +--- + +# [Keypairs](https://lab.stellar.org/account/saved) + +:::important + +You can only save keypairs on test networks—never on Mainnet—and you should never reuse Mainnet keypairs on test networks or share your secret keys with anyone. + +::: + +## Overview + +![Lab: Saved Keypairs](/assets/lab/lab-account-saved.png) + +This page shows you saved keypairs for the selected network (only Testnet and Futurenet) in the browser's local storage. Every keypair has the following: + +1. Name - makes it easy to find the keypair you're looking for. You can update the name anytime by clicking the edit button and saving the new name. +2. Public key - the public account address. You can quickly copy it with a click of a button. +3. Secret key - the secret key of the account. Click the Eye button to toggle between masked and clear text format. Like the Public key, you can copy it by clicking the Copy button. +4. Recovery phrase - the 12 or 24-word passphrase. Click the Eye button to toggle between masked and clear text format. Like the Public key, you can copy it by clicking the Copy button. +5. Delete button - click this button to delete the keypair. +6. Delete the saved keypair if it's no longer needed. +7. The last saved date and time. +8. XLM balance if the account is funded. +9. If the account is unfunded, you can get 10,000 XLM by clicking the "Fund with Friendbot" button. This might be useful after the Testnet or Futurenet reset, as all your saved accounts will also be reset. + +## Manually save keypair + +To add a keypair manually, click the "Add keypair manually" button located in the top right corner of the screen. This will open a modal where you can enter a name for your keypair along with the [Stellar secret key](../../../learn/glossary.mdx#secret-private-key) (which begins with the letter "S") or recovery passphrase (a 12 or 24-word phrase). + +![Lab: Add keypair manually](/assets/lab/lab-account-saved-manual.png) + +## Using saved keypairs + +Saved keypairs make it easy to work with Stellar accounts and sign transactions. When building a transaction, click the "Get address" button in the Source Account input and choose your desired account from the dropdown. + +![Lab: Use saved public key](/assets/lab/lab-account-saved-usage-public.png) + +When it's time to sign, head to the Signatures section on the Sign Transaction page. If you don't see it, import your transaction XDR first. Then click "Use secret key" in the "Sign with secret key" section and select the account key you'd like to use. + +![Lab: Use saved secret key](/assets/lab/lab-account-saved-usage-secret.png) diff --git a/docs/tools/lab/saved/requests.mdx b/docs/tools/lab/saved/requests.mdx new file mode 100644 index 0000000000..2947c4c9ed --- /dev/null +++ b/docs/tools/lab/saved/requests.mdx @@ -0,0 +1,44 @@ +--- +title: "Requests" +sidebar_label: Requests +description: "View saved Horizon endpoints and RPC methods." +sidebar_position: 1 +--- + +# [Requests](https://lab.stellar.org/endpoints/saved) + +On this page, you can view saved requests for both the **RPC Methods** and **Horizon Endpoints**. Select the tab you want to view in the top right corner. + +:::info + +Only items for the selected network are shown. If you don’t see the item you’re looking for, try changing the network. + +::: + +## RPC Methods + +![Lab: Saved RPC Methods](/assets/lab/lab-rpc-methods-saved.png) + +Every saved RPC request item has the following: + +1. RPC method name - quickly identify the method you need. +2. Name - makes finding the RPC method you’re looking for easy. You can update the name anytime by clicking the edit button and saving the new name. +3. RPC URL - where to submit the request. +4. Share the URL to view the method with all the data in the Lab. +5. View the item in the API Explorer, where you can submit it. +6. View payload. +7. The last saved date and time. +8. Delete the item if it’s no longer needed. + +## Horizon Endpoints + +![Lab: Horizon - Saved Requests Page](/assets/lab/lab-horizon-saved-requests.png) + +Saved Horizon Endpoints have the following: + +1. Name - You can update the name anytime by clicking the edit button and saving the new name. +2. Horizon URL - endpoint to fetch the data from. +3. Share the URL to view the endpoint with all the data in the Lab. +4. View the item in the API Explorer, where you can submit it. +5. The last saved date and time. +6. Delete the item if it’s no longer needed. diff --git a/docs/tools/lab/saved/transactions.mdx b/docs/tools/lab/saved/transactions.mdx new file mode 100644 index 0000000000..6957e235a6 --- /dev/null +++ b/docs/tools/lab/saved/transactions.mdx @@ -0,0 +1,22 @@ +--- +title: "Transactions" +sidebar_label: Transactions +description: "View saved transactions." +sidebar_position: 2 +--- + +# [Transactions](https://lab.stellar.org/transaction/saved) + +![Lab: Saved Transactions](/assets/lab/lab-transactions-saved.png) + +On this page, you'll see transactions saved in your browser's local storage. It only shows the transactions on the selected network, which you can change in the upper right corner. + +Saved transactions have the following: + +1. Name - makes finding the transaction you're looking for easy. You can update the name anytime by clicking the edit button and saving the new name. +2. Operations - list of operations in this transaction. +3. Delete the saved transaction. +4. The last saved date and time. +5. The share button to get a shareable link to this transaction. +6. Transactions saved on the "Transaction Builder" page have the "View in builder" button to take you to the "Build Transaction" page. +7. Transactions saved on the "Submit Transaction" page have the "View in submitter" button to take you to that page. diff --git a/docs/tools/lab/smart-contracts/README.mdx b/docs/tools/lab/smart-contracts/README.mdx index 34d9deb159..c7d0a48c20 100644 --- a/docs/tools/lab/smart-contracts/README.mdx +++ b/docs/tools/lab/smart-contracts/README.mdx @@ -1,18 +1,29 @@ --- title: Smart Contracts -sidebar_position: 20 +sidebar_position: 50 --- import DocCardList from "@theme/DocCardList"; -# Smart Contracts - -In this section, you can explore Stellar smart contracts by ID and view a list of smart contracts on the selected Stellar network. +Stellar Lab provides a comprehensive suite of tools for exploring, testing, and interacting with smart contracts on the Stellar network. These tools are designed to help developers understand contract behavior, debug issues, and test contract interactions without writing additional code. :::tip -If you don't know any Stellar smart contract ID, view the list and click on any of the items. This will direct you to the "Contract Explorer" page, where the selected ID is pre-filled. Load the contract and check it out! +If you don't know any Stellar smart contract ID, view [Smart Contract List](https://lab.stellar.org/smart-contracts/contract-list) and click on any of the items. This will direct you to the "Contract Explorer" page, where the selected ID is pre-filled. Load the contract and check it out! ::: +### Tips for New Developers + +- **Start with Testnet**: Always begin your development and testing on Testnet where XLM is free and mistakes have no real-world consequences +- **Examine Example Contracts**: Study well-known contracts to understand common patterns and best practices +- **Save Your Configurations**: Type in the Contract ID you want to explore on [Contract Explorer](https://lab.stellar.org/smart-contracts/contract-explorer), it will give you an option to save for quick access via 'Save Contract ID' +- **Check Network Status**: Ensure you're connected to the correct network + +## Additional Resources + +- [Smart Contracts Documentation](../../../build/smart-contracts/README.mdx) +- [Soroban CLI Tools](../../cli/README.mdx) +- [Example Contracts](../../../build/smart-contracts/example-contracts/README.mdx) + diff --git a/docs/tools/lab/smart-contracts/contract-explorer.mdx b/docs/tools/lab/smart-contracts/contract-explorer.mdx index a10243e9c5..6ab32108d6 100644 --- a/docs/tools/lab/smart-contracts/contract-explorer.mdx +++ b/docs/tools/lab/smart-contracts/contract-explorer.mdx @@ -1,38 +1,42 @@ +--- +title: "Contract Explorer" +sidebar_label: Contract Explorer +description: "Explore and interact with deployed Stellar smart contracts through a browser-based interface. View contract specs, source code, storage, build info, version history, and invoke contract methods directly." +sidebar_position: 0 +--- + # Contract Explorer -On the "Contract Explorer" page, you can take a deep dive into Stellar smart contracts. Here, you can view high-level contract information, invoke contract methods directly from the browser, explore the contract specification, source code, contract storage, build information, and version history. +The [Contract Explorer](https://lab.stellar.org/smart-contracts/contract-explorer) is your primary interface for examining deployed smart contracts on the Stellar network. Through an intuitive browser-based interface, you can access comprehensive insights into [contract specifications](#contract-spec), [source code](#source-code), [storage state](#contract-storage), [build information](#build-info), [version history](#version-history), and [client bindings](#bindings) — plus [invoke contract](#invoke-contract) methods directly without any command-line tools. :::warning -RPC URL is required to view the contract information. You can update or set the RPC URL in the network selector in the top right corner. +RPC URL is required to view the contract information. You can update or set the RPC URL in the network selector in the top right corner. See [RPC Providers](../../../data/apis/rpc/providers.mdx). ::: ![Lab: Contract Explorer](/assets/lab/lab-contract-explorer.png) -Let's load `CAJJZSGMMM3PD7N33TAPHGBUGTB43OC73HVIK2L2G6BNGGGYOSSYBXBD` contract ID on the Mainnet network, and see what we can learn about it. - -## Contract Info +## Getting Started -In the "Contract Info" section, we can view the date when the contract was created and the creator's Stellar address. It also displays the Wasm hash and GitHub repository, along with a link to the source code of this contract. Also, you can see how many contract storage entries this contract has. +To explore a contract: -![Lab: Contract Explorer: Contract Info](/assets/lab/lab-contract-explorer-info.png) +1. Navigate to the [Contract Explorer](https://lab.stellar.org/smart-contracts/contract-explorer) +2. Select your network `Testnet` or `Mainnet` +3. Enter a contract ID +4. Browse through the tabs to familiarize yourself with the contract's structure and capabilities -## Invoke Contract +Let's load `CAJJZSGMMM3PD7N33TAPHGBUGTB43OC73HVIK2L2G6BNGGGYOSSYBXBD` contract ID on the `Mainnet` network, and see what we can learn about it. -This feature allows you to directly interact with and execute methods of a Stellar smart contract from the Lab UI in your browser. - -:::warning - -A connected wallet is required to invoke the contract. +## Contract Info -::: +In the "Contract Info" section, we can view the date when the contract was created and the creator's Stellar address. It also displays the Wasm hash and GitHub repository, along with a link to the source code of this contract. Also, you can see how many contract storage entries this contract has. -![Lab: Contract Explorer: Invoke Contract](/assets/lab/lab-contract-explorer-invoke.png) +![Lab: Contract Explorer: Contract Info](/assets/lab/lab-contract-explorer-info.png) ## Contract Spec -In this section, you can view [Contract Meta](../../../learn/fundamentals/contract-development/overview#contract-meta), [Contract Env Meta](../../../learn/fundamentals/contract-development/overview#environment-meta), and [Contract Spec](../../../learn/fundamentals/contract-development/overview#contract-spec) from the Wasm file. You can view each section in JSON or XDR formats, by selecting the type from the dropdown in the top-right corner of the editor view. You can also download each section individually in the chosen format (the download button is located next to the type dropdown), or download the entire Wasm file by clicking the "Download Wasm" button at the bottom of the section. +In this section, you can view [Contract Meta](../../../learn/fundamentals/contract-development/overview#contract-meta), [Contract Env Meta](../../../learn/fundamentals/contract-development/overview#environment-meta), and [Contract Spec](../../../learn/fundamentals/contract-development/overview#contract-spec) from the Wasm file. You can view each section in `Interface`, `JSON` or `XDR` formats, by selecting the type from the dropdown in the top-right corner of the editor view. You can also download each section individually in the chosen format (the download button is located next to the type dropdown), or download the entire Wasm file by clicking the "Download Wasm" button at the bottom of the section. ![Lab: Contract Explorer: Contract Spec](/assets/lab/lab-contract-explorer-spec.png) @@ -44,10 +48,26 @@ In the code editor, you can view the `README.md` file of the smart contract repo ## Contract Storage -Here you can view stored data entries for this smart contract in human-readable format. You can filter this data by Key and Value, as well as sort it by Durability, TTL, or Updated columns. You can also export this data in XDR or JSON formats. +This section displays all stored data entries for the smart contract in a human-readable format. The data can be filtered by `Key` and `Value`, sorted by `Durability`, `TTL`, or `Updated` columns, and exported in either `XDR` or `JSON` formats. ![Lab: Contract Explorer: Contract Storage](/assets/lab/lab-contract-explorer-storage.png) +### Restore Footprint + +Archived storage entries can be restored by clicking the `Restore` button next to the entry. + +![Lab: Contract Explorer: Contract Storage Restore](/assets/lab/stellar-lab-restore.png) + +This action redirects you to the [Build Transactions page](https://lab.stellar.org/transaction/build) with a `RestoreFootprintOp` operation automatically configured with the necessary parameters to restore the archived footprint. + +![Lab: Contract Explorer: Contract Storage Restore in action](/assets/lab/restore-footprint.gif) + +:::tip + +Verify that the prepared Soroban Transaction XDR includes the contract data you want to restore in its `footprint.read_write` resources, and confirm that both read and write bytes are non-zero. + +::: + ## Build Info If the smart contract has build verification configured (following the [Contract Source Validation SEP](https://github.com/orgs/stellar/discussions/1573)), this section displays information from the GitHub attestation. @@ -69,3 +89,38 @@ In this section, you can find the Wasm history of changes. ## Bindings Bindings are a feature of the [Stellar CLI](../../cli) that generate fully typed client libraries for your smart contracts, tailored to your chosen programming language, including TypeScript, JSON, Rust, Python, and Java. This makes it easy to integrate Stellar contracts into your application as if they were native modules. Each binding provides type-safe functions corresponding to your contract’s methods. To learn more about generating bindings, please see the [Stellar CLI’s bindings command](../../cli/stellar-cli#stellar-contract-bindings). + +## Invoke Contract + +The Invoke Contract page lets you interact with smart contracts directly through the web interface—no command-line tools or custom scripts required. + +:::warning + +A connected wallet is required to invoke the contract. + +::: + +### How to Use + +1. **Connect Your Wallet**: Choose to connect a browser wallet by clicking "Connect Wallet" in the top right corner. +2. **Select the network**: `Testnet` or `Mainnet` in the top right corner. +3. **Enter Contract Details**: Provide the contract ID +4. **Select a Function**: Choose which contract function you want to invoke from the available options. +5. **Fill in Parameters**: Enter the required parameters for your selected function. Lab provides type hints based on the [Contract Spec](#contract-spec). +6. **Simulate**: Simulate the transaction to get the correct fee amount and see the result before submitting to the network. By default, you'll see the result of the invoked function. If you want the full response of the invoke contract, simply toggle "Show full response". +7. **Submit**: Only use this when it's a `Write` operation and you want to change the data on the network. + +![Lab: Contract Explorer: Invoke Contract](/assets/lab/lab-contract-explorer-invoke.gif) + +:::info + +Once you simulate the function, you will see a tooltip that says either `Read` or `Write` next to the title of the function you invoked. When a transaction doesn't change the state of the contract, it is considered a `Read` operation. In this scenario, it is not necessary to submit the transaction to the network, as it does not modify any data. You can simply simulate the transaction to see the results without incurring any costs. + +::: + +### Use Cases + +- **Testing**: Quickly test contract functions during development without deploying test scripts +- **Debugging**: Investigate issues by invoking functions with different parameters and examining outputs +- **Education**: Learn how contracts work by exploring and invoking public contracts +- **Prototyping**: Experiment with contract interactions before building full applications diff --git a/docs/tools/lab/smart-contracts/smart-contract-list.mdx b/docs/tools/lab/smart-contracts/smart-contract-list.mdx index 724a0ade8c..885ff71472 100644 --- a/docs/tools/lab/smart-contracts/smart-contract-list.mdx +++ b/docs/tools/lab/smart-contracts/smart-contract-list.mdx @@ -1,5 +1,12 @@ +--- +title: "Smart Contract List" +sidebar_label: Smart Contract List +description: "A list of Stellar smart contracts on the selected network" +sidebar_position: 1 +--- + # Smart Contract List -This page shows a list of Stellar smart contracts on the selected network. The table displays the smart contract ID or address, along with its creation date and time. Clicking on the contract address will direct you to the "Contract Explorer" page, where the selected address is pre-filled. +This page shows a list of recent Stellar smart contracts on the selected network. On Mainnet, there's an option to view popular contracts list. The table displays the smart contract ID or address, along with its creation date and time. Clicking on the contract address will direct you to the "Contract Explorer" page, where the selected address is pre-filled. -![Lab: Smart Contract List](/assets/lab/lab-smart-contract-list.png) +![Lab: Smart Contract List](/assets/lab/smart-contract-list-01232026.png) diff --git a/docs/tools/lab/smart-contracts/upload-deploy-contract.mdx b/docs/tools/lab/smart-contracts/upload-deploy-contract.mdx new file mode 100644 index 0000000000..175b05ebb4 --- /dev/null +++ b/docs/tools/lab/smart-contracts/upload-deploy-contract.mdx @@ -0,0 +1,39 @@ +--- +title: "Upload and Deploy Contract" +sidebar_label: Upload and Deploy Contract +description: "Upload your contract's WASM bytecode and deploy the contract to the network." +sidebar_position: 2 +--- + +# Upload and Deploy Contract + +There are several ways to upload and deploy contracts to the Stellar network. If you are familiar with the CLI workflow, you can easily upload and deploy contracts using two different commands on the [Stellar CLI](../../cli/README.mdx). If you prefer to do it all in a web interface, the ["Upload and Deploy Contract"](https://lab.stellar.org/smart-contracts/deploy-contract) page on Stellar Lab provides a convenient way to upload and deploy contracts to the network. + +![Lab: Contract Explorer](/assets/lab/lab-upload-deploy-page.png) + +The deployment process consists of two distinct phases: + +1. **Upload phase**: Uploading `WASM` bytecode to the network +2. **Deploy phase**: Deploying a contract instance from the successfully uploaded bytecode + +:::tip + +Each upload and deploy phase requires creating a transaction and signing the transaction. + +::: + +## Upload Phase + +The "Upload phase" accepts `.wasm` files through drag-and-drop or file browser selection. During this phase, the Lab checks whether the uploaded `.wasm` file already exists on the network. If it's not on the network, it creates an upload transaction that you need to sign using any of the following methods: secret key, hardware wallet, extension wallet, or signature. + +![Lab: Upload and Deploy Contract - uploading contract](/assets/lab/lab-upload-contract.gif) + +If the requested `WASM` bytecode is already uploaded on the network, the Lab skips the "Upload contract" section and opens the "Deploy contract" section by default. You will see a message: "This contract `WASM` has already been uploaded. Wasm hash: \*\*\*\*" + +![Lab: Upload and Deploy Contract - skipping uploading contract](/assets/lab/lab-already-uploaded.gif) + +## Deploy Phase + +During the "Deploy phase", the Lab checks whether the `WASM` contract metadata has a constructor and what arguments it requires. Once all the required fields are filled, it creates a deployment transaction. After the transaction is signed and successfully submitted, you can check your contract on blockchain explorers like [Stellar.Expert](https://stellar.expert/explorer/) or [Stellar Lab's contract explorer](https://lab.stellar.org/smart-contracts/contract-explorer) right away. + +![Lab: Upload and Deploy Contract - deploying contract](/assets/lab/lab-deploy-contract.gif) diff --git a/docs/tools/lab/transaction-dashboard.mdx b/docs/tools/lab/transaction-dashboard.mdx new file mode 100644 index 0000000000..39521bea08 --- /dev/null +++ b/docs/tools/lab/transaction-dashboard.mdx @@ -0,0 +1,97 @@ +--- +title: Transaction Dashboard +description: Use Stellar Lab's Transaction Dashboard Page to get a comprehensive view of transaction details for both classic and smart contracts +sidebar_position: 60 +--- + +# Transaction Dashboard + +![Lab: Transaction Dashboard](/assets/lab/ab-tx-dashboard-01232026.png) + +The [Transaction Dashboard](https://lab.stellar.org/transaction-dashboard) provides a comprehensive view of transaction details. For classic transactions, it offers deep insights into operations. For smart contract transactions, it offers details on its interactions (token summary, contracts, events, state change), resource consumption, signatures, and fee breakdowns. + +![Transaction Details](/assets/lab/lab-tx-details.png) + +Transaction details for both smart contract and classic transactions include the status of the transaction, transaction hash, source account for the transaction, sequence number, the date it was processed, fee, and fee source account if applicable. In classic transactions, it includes `memo` and the number of `operations`. Whether you're debugging a failed transaction, analyzing contract behavior, or optimizing performance, the Transaction Dashboard gives you all the information you need in an organized, easy-to-understand interface. + +The dashboard automatically detects whether you're viewing a classic transaction or a smart contract transaction and displays the relevant tabs accordingly. + +:::note + +This feature uses an RPC and RPC retains at maximum 7 days of historical data. Any transaction older than 7 days will be displayed as invalid. + +See [Indexers](/docs/data/indexers) and [Block Explorers](/docs/tools/developer-tools/block-explorers#stellarexpert) for reference + +::: + +## Dashboard Tabs for Smart Contracts + +The Transaction Dashboard organizes transaction information into multiple tabs, each focusing on a specific aspect of the transaction: + +### Token Summary + +The Token Summary tab displays information about token transfers and balance changes that occurred during the transaction. This tab is particularly useful for tracking asset movements and understanding the financial impact of a transaction. + +![Token Summary tab](/assets/lab/lab-token-summary.png) + +**What you'll see:** Tokens transferred with asset codes and amounts, sender and receiver addresses for each transfer + +### Contracts + +The Contracts tab shows detailed information about smart contracts involved in the transaction, including which contracts were invoked. + +![Contracts tab](/assets/lab/lab-token-contracts.png) + +**What you'll see:** Contract IDs for all invoked contracts and their verification status + +### Events + +The Events tab displays all events emitted during transaction execution. Events are logged outputs from smart contracts that track state changes and important occurrences, providing visibility into what happened inside contract execution. + +![Events tab](/assets/lab/lab-events.png) + +**What you'll see:** Event topics, event data payloads with decoded values, Contract ID that emitted each event, chronological order of all events, and token events + +### State Change + +The State Change tab shows how ledger entries changed before and after the transaction, giving you a complete picture of the transaction's impact on blockchain state. + +![State change tab](/assets/lab/lab-state-change.png) + +**What you'll see:** Contract storage modifications (data read, written, or deleted), account balance changes, trustline updates, contract instance changes, state archival and restoration information, ledger footprint details (which entries were accessed) + +### Resource Profiler + +The Resource Profiler provides detailed metrics on resource consumption during transaction execution, helping you understand performance characteristics and optimize costs. + +![Resource Profiler tab](/assets/lab/lab-resource-profiler.png) + +**What you'll see:** CPU instructions, consumed Memory (RAM) bytes used, ledger read and write bytes, transaction size metrics, resource fee calculations, and etc. + +### Signatures + +The Signatures tab displays all signing and authorization information for the transaction, essential for understanding multi-signature setups and contract authorization. + +![Signatures tab](/assets/lab/lab-signatures.png) + +**What you'll see:** Required signers for the transaction, actual signatures provided, public keys of all signers. + +### Fee Breakdown + +The Fee Breakdown tab provides a detailed analysis of all costs associated with the transaction, showing exactly where XLM was spent. + +![Fee Breakdown tab](/assets/lab/lab-fee.png) + +**What you'll see:** Base network fee, resource fee, fee charged versus fee refunded, and final fee + +## Dashboard Tabs for Classic + +The Transaction Dashboard for classic transactions is straightforward and focused on operations. It displays all operations that occurred in the transaction, with support for up to 100 operations per page. + +![Classic Dashboard](/assets/lab/tx-dashboard-classic.png) + +### Operations + +For more information on operations, check [List of Operations](https://developers.stellar.org/docs/learn/fundamentals/transactions/list-of-operations). + +![Classic Dashboard Operations](/assets/lab/tx-dashboard-ops.png) diff --git a/docs/tools/lab/transactions.mdx b/docs/tools/lab/transactions.mdx index bcb7e12f8e..a03737973b 100644 --- a/docs/tools/lab/transactions.mdx +++ b/docs/tools/lab/transactions.mdx @@ -1,3 +1,9 @@ +--- +title: Transactions +description: Explore Stellar Lab's Build Transaction Page by creating and submitting a transaction on Stellar +sidebar_position: 30 +--- + # Transactions ## [Build Transaction](https://lab.stellar.org/transaction/build) @@ -24,7 +30,7 @@ Select the operation type from the dropdown to get the fields for that operation If you wish to add more operations, click the "Add Operation" button at the bottom of the operations section. You can also duplicate, delete, and move the operation by clicking the appropriate button on the upper right of the individual operation section. -You can also save a valid transaction by clicking the save button at the bottom of the operations section. You will need to enter a name for this transaction in a pop-up and click the "Save" button. The transactions are saved in the browser's local storage and can be found on the "Saved Transactions" page (accessed by clicking the link in the left-side navigation). +You can also save a valid transaction by clicking the save button at the bottom of the operations section. You will need to enter a name for this transaction in a pop-up and click the "Save" button. The transactions are saved in the browser's local storage and can be found on the "[Saved Transactions](./saved/transactions)" page (accessed by clicking the Saved link in the left navigation and clicking on the "Transactions" submenu item). Clicking the share button (right next to the save button) allows you to share a link with all the transaction information provided. You can share any transaction, even if it's invalid or incomplete. @@ -37,19 +43,3 @@ The validation section at the bottom of the page shows the built transaction inf If there are errors in this transaction, you will see them grouped by section (params and every operation) to make it easier to tell what needs fixing. ![Lab: Transaction validation error](/assets/lab/lab-transactions-response-error.png) - -## [Saved Transactions](https://lab.stellar.org/transaction/saved) - -![Lab: Saved Transactions](/assets/lab/lab-transactions-saved.png) - -On this page, you'll see transactions saved in your browser's local storage. It only shows the transactions on the selected network, which you can change in the upper right corner. - -Saved transactions have the following: - -1. Name - makes finding the transaction you're looking for easy. You can update the name anytime by clicking the edit button and saving the new name. -2. Operations - list of operations in this transaction. -3. Delete the saved transaction. -4. The last saved date and time. -5. The share button to get a shareable link to this transaction. -6. Transactions saved on the "Transaction Builder" page have the "View in builder" button to take you to the "Build Transaction" page. -7. Transactions saved on the "Submit Transaction" page have the "View in submitter" button to take you to that page. diff --git a/docs/tools/lab/view-xdr/README.mdx b/docs/tools/lab/view-xdr/README.mdx new file mode 100644 index 0000000000..4ea9dc0181 --- /dev/null +++ b/docs/tools/lab/view-xdr/README.mdx @@ -0,0 +1,12 @@ +--- +title: View XDR +sidebar_position: 10 +--- + +import DocCardList from "@theme/DocCardList"; + +# View XDR + +This section provides tools to work with [XDR](../../../learn/fundamentals/data-format/xdr.mdx) (External Data Representation) data. You can decode XDR into easy-to-read JSON format, convert JSON back into XDR format, or compare two XDR data sets to view their differences side-by-side. Learn more about XDR-JSON conversion [here](../../../learn/fundamentals/data-format/xdr-json.mdx). + + diff --git a/docs/tools/lab/view-xdr/diff-xdr.mdx b/docs/tools/lab/view-xdr/diff-xdr.mdx new file mode 100644 index 0000000000..a53f6f69df --- /dev/null +++ b/docs/tools/lab/view-xdr/diff-xdr.mdx @@ -0,0 +1,32 @@ +--- +title: "Diff XDRs" +sidebar_label: Diff XDRs +description: "The Diff XDRs tool compares two base-64 encoded XDRs and highlights the differences between them in JSON format." +sidebar_position: 2 +--- + +# Diff XDRs + +:::info + +Learn more about XDR to JSON conversion tools [here](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +## Accessing the Diff XDRs Tool + +To access the [Diff XDRs](https://lab.stellar.org/xdr/diff) page, select "View XDR" from the left-hand navigation menu, then choose the "Diff XDRs" option from the submenu. + +![Lab: Diff XDRs page](/assets/lab/lab-xdr-diff.png) + +## Comparing XDR Data + +On this page, you can compare two base-64 encoded [XDRs](../../../learn/fundamentals/data-format/xdr.mdx) by viewing their JSON difference. Enter the Original XDR in the first input field, followed by the Changed XDR in the second field. Both XDRs must share the same XDR type, which is automatically populated when a valid Original XDR value is entered. If the suggested type appears incorrect, you can select an alternative from the dropdown menu. A search function is available to help locate the appropriate type. + +![Lab: XDR type dropdown](/assets/lab/lab-xdr-diff-dropdown.png) + +## Understanding the Output + +Once both XDR values are entered, a comparison view will display below, highlighting the differences between the two objects. Below each difference, you will find a button to copy the corresponding JSON data. + +![Lab: Diff XDRs output](/assets/lab/lab-xdr-diff-filled.png) diff --git a/docs/tools/lab/view-xdr/json-to-xdr.mdx b/docs/tools/lab/view-xdr/json-to-xdr.mdx new file mode 100644 index 0000000000..e273e78dcb --- /dev/null +++ b/docs/tools/lab/view-xdr/json-to-xdr.mdx @@ -0,0 +1,33 @@ +--- +title: "JSON to XDR" +sidebar_label: JSON to XDR +description: "The JSON to XDR converter transforms JSON objects into base-64 encoded XDR format." +sidebar_position: 1 +--- + +# JSON to XDR + +:::info + +Learn more about JSON to XDR conversion tools [here](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +## Accessing the JSON to XDR Converter + +To access the [JSON to XDR](https://lab.stellar.org/xdr/to) page, select "View XDR" from the left-hand navigation menu, then choose the "JSON to XDR" option from the submenu. + +![Lab: JSON to XDR page](/assets/lab/lab-xdr-from-json.png) + +## Inputting JSON Data + +On this page, you can enter a valid [XDR](../../../learn/fundamentals/data-format/xdr.mdx) JSON object into the input field. To get sample data, navigate to the "[XDR to JSON](./xdr-to-json.mdx)" page, then use the "Copy JSON" button located below the JSON output to copy a formatted object for testing purposes. + +## Understanding the Output + +After entering a valid JSON object, the interface displays two key components: + +1. **XDR Type** – The identified type of XDR data, with an automatically pre-selected value. If the suggested type appears incorrect, you can select an alternative from the dropdown menu. A search function is available to help locate the appropriate type. ![Lab: XDR type dropdown](/assets/lab/lab-xdr-from-json-dropdown.png) +2. **XDR Output** – A base-64 encoded XDR generated based on the selected XDR type. You can copy this output by clicking the copy button located below the field. + +![Lab: JSON to XDR output](/assets/lab/lab-xdr-from-json-filled.png) diff --git a/docs/tools/lab/view-xdr/xdr-to-json.mdx b/docs/tools/lab/view-xdr/xdr-to-json.mdx new file mode 100644 index 0000000000..f33da65372 --- /dev/null +++ b/docs/tools/lab/view-xdr/xdr-to-json.mdx @@ -0,0 +1,32 @@ +--- +title: "XDR to JSON" +sidebar_label: XDR to JSON +description: "The XDR to JSON converter transforms base-64 encoded XDR data into readable JSON format." +sidebar_position: 0 +--- + +# XDR to JSON + +:::info + +Learn more about XDR to JSON conversion tools [here](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +To access the [XDR to JSON](https://lab.stellar.org/xdr/view) page, select "View XDR" from the left-hand navigation menu, then choose the "XDR to JSON" option from the submenu. + +![Lab: XDR to JSON page](/assets/lab/lab-xdr-to-json.png) + +## Inputting XDR Data + +On this page, you can enter a base-64 encoded [XDR](../../../learn/fundamentals/data-format/xdr.mdx) into the input field located at the top. Alternatively, you can get a sample XDR by selecting the "fetch the latest transaction" link positioned below the input field. + +## Understanding the Output + +After loading a valid XDR (for example, by fetching the latest transaction), the interface displays three key components: + +1. **Transaction Hash** – A read-only field containing the transaction hash, which can be copied for use in other tools, such as retrieving transaction details via [API Explorer > RPC Methods > getTransaction](https://lab.stellar.org/endpoints/rpc/get-transaction). +2. **XDR Type** – The identified type of XDR data, with an automatically pre-selected value. If the suggested type appears incorrect, you can select an alternative from the dropdown menu. A search function is available to help locate the appropriate type. ![Lab: XDR type dropdown](/assets/lab/lab-xdr-to-json-dropdown.png) +3. **JSON Output** – A JSON object generated based on the selected XDR type. You can copy this object by clicking the "Copy JSON" button located below the output. + +![Lab: XDR to JSON output](/assets/lab/lab-xdr-to-json-filled.png) diff --git a/docs/tools/openzeppelin-contracts.mdx b/docs/tools/openzeppelin-contracts.mdx index 3542e3222e..9b7a9d9b0b 100644 --- a/docs/tools/openzeppelin-contracts.mdx +++ b/docs/tools/openzeppelin-contracts.mdx @@ -1,13 +1,19 @@ --- -title: OpenZeppelin Stellar Contracts -description: OpenZeppelin Stellar Contract Library and Contract Wizard -sidebar_label: OpenZeppelin Contracts +title: OpenZeppelin Contracts and Toolings +description: OpenZeppelin Contract Library and Toolings +sidebar_label: OpenZeppelin Contracts and Toolings sidebar_position: 44 --- -To bring battle-tested smart contracts to the Stellar developer community, OpenZeppelin is actively contributing towards a library of smart contracts and extensions, as well as developer tooling. +::::note + +OpenZeppelin is bringing its trusted [smart contracts libraries](https://github.com/OpenZeppelin/stellar-contracts) and developer workflows to Stellar, a Rust-based blockchain. Developers can build payments, stablecoins, and DeFi apps on Stellar using familiar, audited building blocks. To see more, go to: https://www.openzeppelin.com/networks/stellar. + +For latest OpenZeppelin developer docs, please visit: [https://docs.openzeppelin.com/stellar-contracts](https://docs.openzeppelin.com/stellar-contracts/). + +:::: ## Getting started with Contract Wizard @@ -58,20 +64,43 @@ OpenZeppelin Stellar Contracts is a collection of audited contracts and utilitie - **Allowlist**: Restrict transfers to approved addresses - **Blocklist**: Prevent transfers from/to blocked addresses +**RWA (ERC-3643) Token** The RWA token extends the standard fungible token functionality with regulatory features required for security tokens, including: + +- Features: + - **Identity Management**: Integration with identity registries for KYC/AML compliance + - **Compliance Framework**: Modular compliance rules and validation for transfers and minting + - **Transfer Controls**: Sophisticated transfer restrictions and validations + - **Freezing Mechanisms**: Address-level and partial token freezing capabilities + - **Recovery System**: Lost/old account recovery for verified investors + - **Pausable Operations**: Emergency pause functionality for the entire token + - **Role-Based Access Control (RBAC)**: Flexible privilege management for administrative functions + +**Token Vault** The Fungible Token Vault extends the Fungible Token and implents [SEP-56 Tokenized Vault Standard](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0056.md), enabling fungible tokens to represent shares in an underlying asset pool. The tokenized vault standard is the formalized interface for yield-bearing vaults that hold underlying assets. Vault shares enable hyperfungible collaterals in DeFi and remain fully compatible with standard fungible token operations. + +**Smart Accounts** + +Smart Accounts are contract based wallets made for flexible and programmable authorization. This framework takes a context-centric approach, separating three distinct concerns: who is allowed to sign (signers), what they are allowed to do (scope/context rules), and how those permissions are enforced (policies). The initial release includes policies for multisig and spending limits. + +- Components: + - **Context rules**: Routing table for authorization + - **Signers**: List of authorized signers (delegated address, or external signers) + - **Policies**: Enforcement module attached to context rules + - **Verifiers**: Trust contracts that validate signatures on behalf of smart accounts + **Utilities** - **Pausable and Upgradeable Utilities** - **Role-based and Ownable Access Control** - **Merkle Distributor** +- **Fixed point math (WAD)** +- **Time lock** **Coming Soon** -- Security Token (ERC-3643) -- Multisig -- Passkey signer -- Token Vault (ERC-4626) +- Governor +- Confidential Token Standard -These implementations are being released over time, ensuring that Stellar developers have access to extensible contract options. All contracts and extensions are audited by OpenZeppelin's security team, enhancing security and reliability of the contracts and extensions. To use the library, please go to: https://github.com/OpenZeppelin/stellar-contracts. +All contracts and extensions are audited by OpenZeppelin's security team, enhancing security and reliability of the contracts and extensions. Additional formal verification is being completed by Certora. To use the library, please visit: https://github.com/OpenZeppelin/stellar-contracts. ``` Repository Structure @@ -79,15 +108,23 @@ Repository Structure │── docs/ # Documentation │── examples/ # Example contracts │── packages/ -│ ├── tokens/ # Various token types (fungible, non-fungible, etc.) +│ ├── access/ # Access control, ownable, and role transfer utilities +│ ├── accounts/ # Smart account framework │ ├── contract-utils/ # Utilities for token types (pausable, upgradable, etc.) -│ ├── constants/ # Shared constants +│ ├── fee-abstraction/ # Utilities for implementing fee abstraction +│ ├── governance/ # Utilities like timelock +│ ├── macros/ # Macros for Stellar contractk │ ├── test-utils/ # Utilities for tests - +│ ├── tokens/ # Various token types (fungible, non-fungible, RWA, vault, etc.) ``` -To provide feedback, please open issues here: [https://github.com/OpenZeppelin/stellar-contracts/issues](https://github.com/OpenZeppelin/stellar-contracts/issues) +To provide feedback on these contracts and utilties, please open issues at: [https://github.com/OpenZeppelin/stellar-contracts/issues](https://github.com/OpenZeppelin/stellar-contracts/issues) -## Docs for OpenZeppelin Stellar Contracts +## OpenZeppelin Open Source Tools -For additional docs on Stellar smart contracts by OpenZeppelin, please visit: [https://docs.openzeppelin.com/stellar-contracts](https://docs.openzeppelin.com/stellar-contracts/.). +- [Relayer](https://github.com/OpenZeppelin/openzeppelin-relayer): Infrastructure for relaying transactions on Stellar. +- [Monitor](https://github.com/OpenZeppelin/openzeppelin-monitor): Infrastructure tool for monitoring blockchain events and transactions. +- [UI Builder](https://builder.openzeppelin.com/): Open source tool for creating UI forms for contracts. +- [MCP Server](https://mcp.openzeppelin.com/): Generate secure Stellar smart contracts based on OpenZeppelin templates. +- [Role Manager](https://github.com/OpenZeppelin/role-manager): Access control management interface for smart contracts. Visualize roles, permissions, and execute administrative actions. +- [Soroban Security Detector SDK](https://github.com/OpenZeppelin/soroban-security-detectors-sdk): Spot issues in contracts before they reach mainnet. This SDK enables developers to build custom static-analysis scanners and comes with prebuilt checks to catch common pitfalls early. diff --git a/docs/tools/openzeppelin-relayer.mdx b/docs/tools/openzeppelin-relayer.mdx new file mode 100644 index 0000000000..e56daf8d70 --- /dev/null +++ b/docs/tools/openzeppelin-relayer.mdx @@ -0,0 +1,559 @@ +--- +title: OpenZeppelin Relayer +description: OpenZeppelin Relayer is a service that provides infrastructure to relay transactions to the Stellar network. +sidebar_label: OpenZeppelin Relayer +sidebar_position: 43 +--- + +Launchtube, which served as an experimental service for fee sponsorship and contract invocations, has been instrumental in early-stage deployments and developer experimentation. However, while functional for testing and early use cases, Launchtube does not have the maturity, scalability and auditing as OpenZeppelin’s Relayer service, which is why the Stellar Development Foundation is discontinuing the Launchtube service and provides the Relayer service as a replacement. + +OpenZeppelin Relayer, also known as [Stellar Channels Service](https://docs.openzeppelin.com/relayer/1.3.x/guides/stellar-channels-guide), is a managed infrastructure for submitting Stellar Soroban transactions with automatic parallel processing and fee management. The service handles all the complexity of transaction submission, allowing you to focus on building your application. + +## OpenZeppelin Relayer Status + +To see live status of the OpenZeppelin relayer, please visit this [Status] page: https://status.channels.openzeppelin.com/. + +## Smart contract invocation + +Let’s create a simple application that submits a transaction, invoking a smart contract function, using Relayer. The application calls the Increment smart contract and returns the current counter value. + +The application is based on the Next.js framework and has server side code and client side code. The OpenZeppelin Relayer SDK makes HTTPS-requests to OpenZeppelin endpoints, which will trigger CORS errors when run client side, but by using the SDK server side, CORS will not be an issue. + +### Prerequisites + +This guide assumes you have deployed the Increment smart contract example code found [here](https://github.com/stellar/soroban-examples/tree/v22.0.1/increment). See the [Getting Started](../build/smart-contracts/getting-started) tutorial section 3 and 4 for more information about building and deploying the Increment contract. + +### Server Side + +In this simple application we only have one function server side, and that’s a function calling a smart contract function, by submitting a transaction through Relayer. + +#### 1. Initialize Relayer client + +First the two necessary SDKs are imported, and the Relayer client is initialized. In this tutorial we use testnet, so the Relayer service endpoint for testnet is used as the base URL. The API key can be generated [here](https://channels.openzeppelin.com/testnet/gen). + +```js +"use server"; +import * as StellarSDK from "@stellar/stellar-sdk"; +import * as RPChannels from "@openzeppelin/relayer-plugin-channels"; + +// Initialize Channels Client +const client = new RPChannels.ChannelsClient({ + baseUrl: "https://channels.openzeppelin.com/testnet", + apiKey: "c344ee79-6294-4dc3-8f7d-000000000000", +}); +``` + +#### 2. Initialize contract, RPC and account + +Next we initialize the resources we need to build the transaction. Both the `contractId` and `sourceId` are arguments of the function and will be provided client side. + +```js +// Initialize Contract and RPC Server +const contract = new StellarSDK.Contract(contractId); +const rpc = new StellarSDK.rpc.Server("https://soroban-testnet.stellar.org"); +// Get Source Account +const account = await rpc.getAccount(sourceId); +``` + +#### 3. Build transaction + +`TransactionBuilder` takes the user account and network information as parameters, and operations can be added. In this case we want to add the contract invocation by using `contract.call()`, with the contract function name and arguments as parameters. + +```js +const tx = new StellarSDK.TransactionBuilder(account, { + fee: "100", + networkPassphrase: StellarSDK.Networks.TESTNET, +}) + .addOperation(contract.call(func, ...args)) + .setTimeout(30) + .build(); +``` + +#### 4. Simulate transaction and get XDRs + +The final steps before we can submit the transaction to Relayer is to simulate the transaction, bundle the transaction and simulation, and extract the transaction’s function and auth XDRs. + +We are extracting the function and auth from the assembled transaction, in XDR format, because that’s what we need to submit to Relayer. + +```js +// Simulate to get auth entries +const simulation = await rpc.simulateTransaction(tx); +const assembled = StellarSDK.rpc.assembleTransaction(tx, simulation).build(); +// Extract function and auth XDRs +const op = assembled.operations[0]; +const contractFunc = op.func.toXDR("base64"); +const contractAuth = (op.auth ?? []).map((a) => a.toXDR("base64")); +``` + +#### 5. Build Relayer request and submit it + +Now we have completed all necessary steps to submit a transaction to Relayer. First the request is built, and then the request is submitted to Relayer. + +```typescript +// Build request for Relayer +const request: RPChannels.ChannelsFuncAuthRequest = { + func: contractFunc, + auth: contractAuth, +}; +// Submit to Channels Relayer +const response: RPChannels.ChannelsTransactionResponse = + await client.submitSorobanTransaction(request); +``` + +A successful submission will return a response of the following format: + +```js +{ + transactionId: string; // Internal tracking ID + hash: string; // Stellar transaction hash + status: string; // Transaction status (e.g., "confirmed") +} +``` + +#### 6. Get returned value from contract + +The invoked Increment contract function will return the updated, incremented value so let’s get this value so we can show it in the client (frontend). + +To get the return value we simply poll for the transaction result until we get a response with `rpc.pollTransaction()`, which will return an object with more details than we need, so only the value is returned. + +```js +// Poll for transaction result +let txResponse = await rpc.pollTransaction(response.hash!); +// Return the result using the public SDK helper +return StellarSDK.scValToNative(txResponse.returnValue); +``` + +#### 7. The complete code + +The previous six steps contain all the functionality needed for invoking a smart contract function through Relayer. This is the complete code for the function that we will call from the client side (frontend): + +```js title="backend/index.tsx" +"use server"; +import * as StellarSDK from '@stellar/stellar-sdk'; +import * as RPChannels from '@openzeppelin/relayer-plugin-channels'; + +// Initialize Channels Client +const client = new RPChannels.ChannelsClient({ + baseUrl: 'https://channels.openzeppelin.com/testnet', + apiKey: 'c344ee79-6294-4dc3-8f7d-000000000000', +}); + +export const SendContractTransaction = async (sourceId: string, contractId: string, func: string, args: StellarSDK.xdr.ScVal[]) => { + // Initialize Contract and RPC Server + const contract = new StellarSDK.Contract(contractId); + const rpc = new StellarSDK.rpc.Server('https://soroban-testnet.stellar.org'); + // Get Source Account + const account = await rpc.getAccount(sourceId); + // Build the transaction + const tx = new StellarSDK.TransactionBuilder(account, { + fee: '100', + networkPassphrase: StellarSDK.Networks.TESTNET, + }) + .addOperation(contract.call(func, ...args)) + .setTimeout(30) + .build(); + // Simulate to get auth entries + const simulation = await rpc.simulateTransaction(tx); + const assembled = StellarSDK.rpc.assembleTransaction(tx, simulation).build(); + // Extract function and auth XDRs + const op = assembled.operations[0]; + const contractFunc = op.func.toXDR('base64'); + const contractAuth = (op.auth ?? []).map((a) => a.toXDR('base64')); + // Build request for Relayer + const request: RPChannels.ChannelsFuncAuthRequest = { + func: contractFunc, + auth: contractAuth, + }; + // Submit to Channels Relayer + const response: RPChannels.ChannelsTransactionResponse = await client.submitSorobanTransaction(request); + // Poll for transaction result + let txResponse = await rpc.pollTransaction(response.hash!); + // Return the decoded result from the ScVal + return StellarSDK.scValToNative(txResponse.returnValue); +} +``` + +### Client Side + +The client side code shows a button on the page in the browser, and when clicked, the server side function will be called with the relevant parameters. When the function returns a value, the value is shown on the page instead of the button. The functionality is very simple, but serves well as an end-to-end example of submitting a transaction with Relayer. + +#### 1. Call server side function + +The client code has a function `callContract()` that can be invoked from the button click. The function calls the server side function `SendContractTransaction()` with the `sourceId`, `contractId`, contract function name and auth. + +```js +const [result, setResult] = React.useState(""); + +const callContract = async () => { + const response = await SendContractTransaction( + "GAZQUIHE242WV4CK7LLM5ZV4SM6SLV4CEY4LLAKEYD2O000000000000", + "CDAZOG4V2KAPVBBKCAMHUT367AUGYWYEHD652UOJVER5ERNYGSOROBAN", + "increment", + [], + ); + + setResult(response); +}; +``` + +The response is stored as the result state. + +#### 2. Markup code + +The page markup code checks if result contains a value. If not, the button for invoking the callContract function is shown, and if result does contain a value, it’s shown on the page instead. That’s all there is to the client side markup code. + +```html +
+
+ {result ? ( +

+ Result from Relayer: {result} +

+ ) : ( +

+ +

+ )} +
+
+``` + +3. The complete code This is the complete code for the client side (frontend): + +```jsx title="page.tsx" +"use client" +import React from "react"; +import { SendContractTransaction } from "./backend"; + +export default function Home() { + const [result, setResult] = React.useState(''); + + const callContract = async () => { + const args: [] = []; + const response = await SendContractTransaction( + 'GAZQUIHE242WV4CK7LLM5ZV4SM6SLV4CEY4LLAKEYD2O000000000000', + 'CDAZOG4V2KAPVBBKCAMHUT367AUGYWYEHD652UOJVER5ERNYGSOROBAN', + "increment", + [], + ); + + setResult(response); + } + + return ( +
+
+ {result ? ( +

+ Result from Relayer: {result} +

+ ) : ( +

+ +

+ )} +
+
+ ); +} +``` + +## Account transfer + +Let’s create another simple application, this application submits a transfer transaction, sending XLM tokens from one account to another, using Relayer. + +The application is based on the Next.js framework and has server side code and client side code. The OpenZeppelin Relayer SDK makes HTTPS-requests to OpenZeppelin endpoints, which will trigger CORS errors when run client side, but by using the SDK server side, CORS will not be an issue. + +### Server Side + +In this simple application we only have one function server side, and that’s a function making a transfer of XLM tokens from one account to another, by submitting a transaction through Relayer. + +#### 1. Initialize Relayer client + +First the two necessary SDKs are imported, and the Relayer client is initialized. In this tutorial we use testnet, so the Relayer service endpoint for testnet is used as the base URL. The API key can be generated [here](https://channels.openzeppelin.com/testnet/gen). + +```js +"use server"; +import * as StellarSDK from "@stellar/stellar-sdk"; +import * as RPChannels from "@openzeppelin/relayer-plugin-channels"; + +// Initialize Channels Client +const client = new RPChannels.ChannelsClient({ + baseUrl: "https://channels.openzeppelin.com/testnet", + apiKey: "c344ee79-6294-4dc3-8f7d-000000000000", +}); +``` + +#### 2. Initialize RPC and source account + +Next we initialize the resources we need to build the transaction. In this example code the source secret key is hardcoded, but this must be handled in a more secure manner in production applications. + +```js +// Initialize RPC Server +const rpc = new StellarSDK.rpc.Server("https://soroban-testnet.stellar.org"); + +// Define source account details - this should be securely managed and not hardcoded in production +const sourceSecret = "SADMGRVM3MDTZ54FN3SBEKSTRCVEY4WE5JAVCERJJBFR000000000000"; +// Load the source account from the secret key +const sourceKeypair = StellarSDK.Keypair.fromSecret(sourceSecret); +const sourcePublicKey = sourceKeypair.publicKey(); + +// Load account details from the network +const sourceAccount = await rpc.getAccount(sourcePublicKey); +``` + +#### 3. Build and sign transaction + +`TransactionBuilder` takes the source account and network information as parameters, and operations can be added. In this case we want to add the `payment()` operation to transfer an amount of XLM tokens (native asset) from the source account to the destination. The transaction is signed with the source keypair. + +```js +// Build the transaction +const transaction = new StellarSDK.TransactionBuilder(sourceAccount, { + fee: StellarSDK.BASE_FEE, + networkPassphrase: StellarSDK.Networks.TESTNET, +}) + .addOperation( + StellarSDK.Operation.payment({ + destination: destinationPublicKey, + asset: StellarSDK.Asset.native(), + amount: amount.toString(), + }), + ) + .setTimeout(30) + .build(); + +transaction.sign(sourceKeypair); +``` + +#### 4. Submit the transaction + +Now we have completed all necessary steps to submit the transaction to Relayer. The Relayer SDK function `submitTransaction()` takes the transaction in XDR-format as an argument. + +```js +// Submit to Channels Relayer +const response = await client.submitTransaction({ + xdr: transaction.toXDR(), +}); +``` + +A successful submission will return a response of the following format: + +```js +{ + transactionId: string; // Internal tracking ID + hash: string; // Stellar transaction hash + status: string; // Transaction status (e.g., "confirmed") +} +``` + +#### 5. Return the transaction hash + +As a final step the transaction hash is returned. + +```js +return response.hash; +``` + +#### 6. The complete code + +The previous five steps contain all the functionality needed for transferring XLM tokens from the source account to another account through Relayer. This is the complete code for the function that we will call from the client side (frontend): + +```js title="backend/index.tsx" +"use server"; +import * as StellarSDK from '@stellar/stellar-sdk'; +import * as RPChannels from '@openzeppelin/relayer-plugin-channels'; + +// Initialize Channels Client +const client = new RPChannels.ChannelsClient({ + baseUrl: 'https://channels.openzeppelin.com/testnet', + apiKey: 'c344ee79-6294-4dc3-8f7d-000000000000', +}); + +export const SendTransaction = async (destinationPublicKey: string, amount: string) => { + // Initialize RPC Server + const rpc = new StellarSDK.rpc.Server('https://soroban-testnet.stellar.org'); + + // Define source account details - this should be securely managed and not hardcoded in production + const sourceSecret = 'SADMGRVM3MDTZ54FN3SBEKSTRCVEY4WE5JAVCERJJBFR000000000000'; + // Load the source account from the secret key + const sourceKeypair = StellarSDK.Keypair.fromSecret(sourceSecret); + const sourcePublicKey = sourceKeypair.publicKey(); + + // Load account details from the network + const sourceAccount = await rpc.getAccount(sourcePublicKey); + + try { + // Build the transaction + const transaction = new StellarSDK.TransactionBuilder(sourceAccount, { + fee: StellarSDK.BASE_FEE, // Or use server.fetchBaseFee() for dynamic fees + networkPassphrase: StellarSDK.Networks.TESTNET // Use Networks.PUBLIC for mainnet + }) + .addOperation( + StellarSDK.Operation.payment({ + destination: destinationPublicKey, + asset: StellarSDK.Asset.native(), // XLM is the native asset + amount: amount.toString() // Amount in XLM (e.g., "10" for 10 XLM) + }) + ) + .setTimeout(30) // Transaction expires after 30 seconds + .build(); + + // Sign the transaction + transaction.sign(sourceKeypair); + + const response = await client.submitTransaction({ + xdr: transaction.toXDR(), // base64 envelope XDR + }); + + return response.hash; + } catch (error) { + console.error('Failed to submit Stellar transaction via OpenZeppelin Relayer:', error); + throw error; + } +} +``` + +### Client Side + +The client side code shows a form with input fields for a transfer-to-address, and amount to transfer, on the page in the browser. When the form is filled out and submitted, the server side function will be called with the form values as parameters. When the function returns with the transaction hash, the hash is shown on the page instead of the form. The functionality is very simple, but serves well as an end-to-end example of submitting a token transfer transaction with Relayer. + +#### 1. Call server side function + +The client code has a function `sendXLM()` that works as a form action function. The function calls the server side function `SendTransaction()` with the transfer destination public key and amount as parameters. + +```js +const [result, setResult] = React.useState(''); + +const sendXLM = async (formData: FormData) => { + const to = formData.get('toAddress') as string; + const amount = formData.get('amount') as string; + + const response = await SendTransaction(to, amount); + setResult(response); +}; +``` + +The response is stored as the result state. + +#### 2. Markup code + +The page markup code checks if `result` contains a value. If not, the form for submitting a transfer is shown, and if `result` does contain a value, it’s shown on the page instead. That’s all there is to the client side markup code. + +```html +
+
+ {result ? ( +

+ Transaction Hash: {result} +

+ ) : ( +
+
+ + +
+
+ + +
+ +
+ )} +
+
+``` + +#### 3. The complete code + +This is the complete code for the client side (frontend): + +```js title="page.tsx" +"use client" +import React from "react"; +import { SendTransaction } from "./backend"; + +export default function Home() { + const [result, setResult] = React.useState(''); + + const sendXLM = async (formData: FormData) => { + const to = formData.get('toAddress') as string; + const amount = formData.get('amount') as string; + + const response = await SendTransaction(to, amount); + setResult(response); + }; + + return ( +
+
+ {result ? ( +

+ Transaction Hash: {result} +

+ ) : ( +
+
+ + +
+
+ + +
+ +
+ )} +
+
+ ); +} +``` + +### OpenZeppelin Relayer documentation + +For more information see the OpenZeppelin Relayer documentation [here](https://github.com/OpenZeppelin/openzeppelin-relayer). diff --git a/docs/tools/quickstart/advanced-usage/container.mdx b/docs/tools/quickstart/advanced-usage/container.mdx index 378e24ce5c..f4547b8d99 100644 --- a/docs/tools/quickstart/advanced-usage/container.mdx +++ b/docs/tools/quickstart/advanced-usage/container.mdx @@ -13,8 +13,8 @@ The Quickstart [docker image](https://hub.docker.com/r/stellar/quickstart) uses - [PostgreSQL](https://www.postgresql.org) - [stellar-core](https://github.com/stellar/stellar-core) -- [horizon](https://github.com/stellar/go/tree/master/services/horizon) -- [friendbot](https://github.com/stellar/go/tree/master/services/friendbot) +- [horizon](https://github.com/stellar/stellar-horizon) +- [friendbot](https://github.com/stellar/friendbot) - [stellar-rpc](https://github.com/stellar/stellar-rpc/tree/main/cmd/stellar-rpc) - [supervisord](http://supervisord.org/) diff --git a/docs/tools/quickstart/faucet.mdx b/docs/tools/quickstart/faucet.mdx index 97166e7be9..3d8a15ee37 100644 --- a/docs/tools/quickstart/faucet.mdx +++ b/docs/tools/quickstart/faucet.mdx @@ -8,7 +8,7 @@ sidebar_position: 30 Quickstart uses Friendbot as a native asset faucet for testnet, futurenet, and local networks, just like Friendbot is used on the public testnet and futurenet. -Friendbot is available on `:8000/friendbot` and can be used to fund a new account. For example: +Friendbot is available on `:8000/friendbot` and can be used to fund accounts and contracts. For example: ```sh curl http://localhost:8000/friendbot?addr=G... diff --git a/docs/tools/ramps/README.mdx b/docs/tools/ramps/README.mdx index a60d51c7d4..dbf590aabc 100644 --- a/docs/tools/ramps/README.mdx +++ b/docs/tools/ramps/README.mdx @@ -11,6 +11,6 @@ Stellar has anchor services operating worldwide. View the [Anchor Directory](htt Anchors can issue their own assets on the Stellar network, or they can honor assets that already exist. -You can set up an anchor by using the SDF-maintained [Anchor Platform](/platforms/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). +You can set up an anchor by using the SDF-maintained [Anchor Platform](../../platforms/anchor-platform/README.mdx), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). diff --git a/docs/tools/scaffold-stellar.mdx b/docs/tools/scaffold-stellar.mdx index 45e80e509b..e96c9db929 100644 --- a/docs/tools/scaffold-stellar.mdx +++ b/docs/tools/scaffold-stellar.mdx @@ -7,7 +7,7 @@ sidebar_position: 45 **Scaffold Stellar** is a developer toolkit for building decentralized applications (dApps) and smart contracts on the Stellar blockchain. It helps you go from idea to working full-stack dApp faster — by providing CLI tools, reusable contract templates, a smart contract registry, and a modern frontend. -Visit the [Scaffold Stellar](https://scaffoldstellar.com) homepage for guides, docs, and more. +Visit the [Scaffold Stellar](https://scaffoldstellar.org) homepage for guides, docs, and more. ## Prerequisites @@ -27,42 +27,46 @@ Install the required CLI tools: ```bash # Install stellar-scaffold CLI -cargo install stellar-scaffold-cli +cargo install --locked stellar-scaffold-cli # Install registry CLI (to easily deploy your contract to the registry) -cargo install stellar-registry-cli +cargo install --locked stellar-registry-cli ``` -### Creating a New Project +:::tip For a faster install, use cargo-binstall -1. Initialize a new project: +Instead of building from source, you can speed up the installation by getting the binary directly using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall). This is especially useful in CI environments. ```bash -stellar scaffold init my-project -cd my-project +# Install cargo-binstall (see other install methods in their README linked above) +cargo install cargo-binstall + +# Install the binaries +cargo binstall stellar-scaffold-cli stellar-registry-cli ``` -You will have a few sample contracts already in the project, or you can start from the [OpenZeppelin Wizard](./openzeppelin-contracts) to customize your contract and start a Scaffold Stellar project from there. +::: -2. Set up your development environment: +### Creating a New Project -```bash -# Copy and configure environment variables -cp .env.example .env +1. Initialize a new project: -# Install frontend dependencies -npm install +```bash +stellar scaffold init my-project +cd my-project ``` -3. Start development environment: +This will create the project scaffold in the directory you specified with a few sample contracts. Or you can start from the [OpenZeppelin Wizard](./openzeppelin-contracts) to customize your contract and start a Scaffold Stellar project from there. + +2. Start the app: ```bash -npm run dev +npm start ``` -You'll have a running dApp, with a couple of contracts to start with, ready to start building! +You'll have a running dApp integrated with the starter contracts, ready to start building! -Explore the `environments.toml` file to customize your development environment(s). +Explore the `environments.toml` file to customize your development environment(s) that's set by your `.env` file. ## Project Structure @@ -70,17 +74,17 @@ When you run `stellar scaffold init`, it creates a full-stack project structure ``` my-project/ -├── contracts/ # Rust smart contracts (compiled to WASM) -├── packages/ # Auto-generated TypeScript contract clients +├── contracts/ # Rust smart contracts (compiled to WASM) +├── packages/ # Auto-generated TypeScript contract clients ├── src/ # React frontend code │ ├── components/ # Reusable UI components │ ├── contracts/ # Contract interaction logic -│ ├── App.tsx # Main app component -│ └── main.tsx # Entry point +│ ├── App.tsx # Main app component +│ └── main.tsx # Entry point ├── environments.toml # Configuration per environment (dev/test/prod) -├── .env # Local environment variables -├── package.json # Frontend packages -└── target/ # Build outputs +├── .env # Local environment variables +├── package.json # Frontend packages +└── target/ # Build outputs ``` This template provides a ready-to-use frontend application with example smart contracts and their TypeScript clients. The frontend is set up with `Vite`, `React`, and includes basic components for interacting with the contracts. @@ -109,3 +113,16 @@ This template provides a ready-to-use frontend application with example smart co ### More Resources For more information, check out the [project on GitHub](https://github.com/theahaco/scaffold-stellar)! + +## Video Series + +Check out the [Scaffold Stellar video series on YouTube](https://www.youtube.com/playlist?list=PLmr3tp_7-7Gjj6gn5-bBn-QTMyaWzwOU5) for step-by-step tutorials and guides: + +- [Scaffold Stellar | A Boilerplate For Stellar Developers](https://www.youtube.com/watch?v=7wKD3d9w5d0) - Comprehensive walkthrough of Scaffold Stellar as a boilerplate for Stellar development. +- [Scaffold Stellar: Getting Started and Guess the Number](https://www.youtube.com/watch?v=86hWe8Ragtg) - A practical tutorial that walks through improving the default "Guess the Number" dApp included in Scaffold Stellar. +- [Building dApps with Scaffold Stellar](https://www.youtube.com/watch?v=t85jrhsTYV8) - An overview of the open source Scaffold Stellar development toolkit and how it streamlines the creation and management of Stellar apps. +- [Live Demo of Scaffold Stellar](https://www.youtube.com/watch?v=0syGaIn3ULk) - A live demonstration showing Scaffold Stellar in action. +- [Intro to Scaffold Stellar](https://www.youtube.com/watch?v=559ht4K4pkM) - Introduction to the Scaffold Stellar toolkit and its features. +- [Which Frontend?](https://www.youtube.com/watch?v=pz7O54Oia_w) - Guide on choosing and working with frontend frameworks in Scaffold Stellar. +- [Scaffold Stellar: Get started building](https://www.youtube.com/watch?v=H-M962aPuTk) - Learn how to install Scaffold Stellar, review included libraries and integrations, and get your development environment up and running. +- [Rapid Application Development with Scaffold Stellar | Meridian 2025](https://www.youtube.com/watch?v=sx77r9qQOeE) - Introduction to Scaffold Stellar's rapid development environment, showing how to go from prototype to production. diff --git a/docs/tools/sdks/client-sdks.mdx b/docs/tools/sdks/client-sdks.mdx index 252d195abb..0079226147 100644 --- a/docs/tools/sdks/client-sdks.mdx +++ b/docs/tools/sdks/client-sdks.mdx @@ -113,10 +113,10 @@ The PHP Stellar SDK is maintained by dedicated community developer, Soneso. **The Go SDK is maintained by SDF.** -This SDK is split up into separate packages, all of which you can find in the [Go monorepo README](https://github.com/stellar/go/blob/master/docs/reference/readme.md). The key libraries are: +This SDK is split up into separate packages, all of which you can find in the [Go SDK](https://github.com/stellar/go-stellar-sdk). The key libraries are: -- `txnbuild` [SDK](https://github.com/stellar/go/tree/master/txnbuild) | [Docs](https://godoc.org/github.com/stellar/go/txnbuild): enables the construction, signing, and encoding of Stellar transactions. -- `Horizon Client` [SDK](https://github.com/stellar/go/tree/master/clients/horizonclient) | [Docs](https://godoc.org/github.com/stellar/go/clients/horizonclient): provides a web client for interfacing with Horizon server REST endpoints to retrieve ledger information and submit transactions built with `txnbuild`. +- `txnbuild` [SDK](https://github.com/stellar/go-stellar-sdk/tree/main/txnbuild) | [Docs](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild): enables the construction, signing, and encoding of Stellar transactions. +- `Horizon Client` [SDK](https://github.com/stellar/go-stellar-sdk/tree/main/clients/horizonclient) | [Docs](https://godoc.org/github.com/stellar/go-stellar-sdk/clients/horizonclient): provides a web client for interfacing with Horizon server REST endpoints to retrieve ledger information and submit transactions built with `txnbuild`. - `RPC Client` [SDK](https://github.com/stellar/stellar-rpc/tree/main/client) | [Docs](https://pkg.go.dev/github.com/stellar/stellar-rpc/client): provide sdk wrapper to invoke RPC endpoints. - [Ingest SDK](../../data/indexers/build-your-own/ingest-sdk/README.mdx): acquire and parse data from the Stellar network. diff --git a/docs/tools/sdks/contract-sdks.mdx b/docs/tools/sdks/contract-sdks.mdx index 10f913e249..b7eb9c3c62 100644 --- a/docs/tools/sdks/contract-sdks.mdx +++ b/docs/tools/sdks/contract-sdks.mdx @@ -40,6 +40,20 @@ soroban-sdk = $VERSION soroban-sdk = { version = $VERSION, features = ["testutils"] } ``` +## Solidity SDK + +[Hyperledger Solang compiler](https://github.com/hyperledger-solang/solang) | [Docs](https://solang.readthedocs.io/en/v0.3.4/) + +**The Solang compiler is maintained by the Hyperledger community.** + +Solang is an llvm-based compiler for Solidity that can target multiple blockchains, including Stellar. + +The supported Solidity examples can be found within the [Solang repository](https://github.com/hyperledger-solang/solang/tree/main/examples/soroban). + +You can report issues and add requests for features to the Solang repository [here](https://github.com/hyperledger-solang/solang/issues/new/choose). + +Solang compiler also provides a Web IDE that you can use to compile, deploy and interact with Solidity contracts on Soroban. You can access the Web IDE [here](https://solang.io/). + ## AssemblyScript SDK [AssemblyScript SDK](https://github.com/Soneso/as-soroban-sdk) diff --git a/docs/validators/README.mdx b/docs/validators/README.mdx index 43679b8432..b2c709339b 100644 --- a/docs/validators/README.mdx +++ b/docs/validators/README.mdx @@ -7,8 +7,6 @@ sidebar_position: 10 # Validators Introduction -import { Alert } from "@site/src/components/Alert"; - Stellar is a peer-to-peer network made up of nodes, which are computers that keep a common distributed [ledger](../learn/fundamentals/stellar-data-structures/ledgers.mdx), and that communicate to validate and add [transactions](../learn/fundamentals/transactions/operations-and-transactions.mdx) to it. Nodes use a program called Stellar Core — an implementation of the [Stellar Consensus Protocol](../learn/fundamentals/stellar-consensus-protocol.mdx) — to stay in sync as they work to agree on the validity of transaction sets and to apply them to the ledger. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 3-5 seconds. This section of the docs explains how to run a validator node, which participates in consensus to validate transactions and determine network settings. A validator node _should not_ be used for network data access and transaction submission. There are two varieties of _non-validating_ nodes that can be used for those purposes, each of which has its own process for set up, interaction, maintenance, and monitoring. They are: @@ -47,11 +45,11 @@ The basic flow, which you can navigate through using the "Admin Guide" on the le There are two types of validator nodes, and they perform the same basic functions: they run Stellar Core, connect to peers, submit transactions, and store the state of the ledger. The difference is this: a **Basic Validator** does not publish a history archive; a **Full Validator** does. - +:::info Non-validating nodes, like Stellar RPC or Galexie, bundle an optimized "Captive" Core to serve their operational needs. - +::: ### Basic Validator diff --git a/docs/validators/admin-guide/commands.mdx b/docs/validators/admin-guide/commands.mdx index 60c9e43e32..fda51c677d 100644 --- a/docs/validators/admin-guide/commands.mdx +++ b/docs/validators/admin-guide/commands.mdx @@ -3,17 +3,15 @@ title: Commands sidebar_position: 120 --- -import { Alert } from "@site/src/components/Alert"; - Stellar Core can be controlled using a robust CLI. - +:::info We will cover a selection of the _essential_ commands and syntax here, but the **very best resource** for utilizing the `stellar-core` command line is located in the [stellar-core GitHub repo]. Additionally, while the commands on this page are _CLI_ commands, there is an additional set of [_HTTP_ endpoint commands] that provide further administrative control over a running core node. - +::: ## Get `--help` Anywhere @@ -67,11 +65,11 @@ The **`catchup`** command will execute a catchup from history archives without c - `--metadata-output-stream `: Filename or file-descriptor number `fd:N` to stream metadata to. - `--force-back`: Force ledger state to a previous state, preserving older historical data. - +:::info To reiterate, this page covers a selection of the _essential_ commands, but we've only scratched the surface. The **very best, most comprehensive resource** for utilizing the `stellar-core` command line is located in the [stellar-core GitHub repo]. - +::: [stellar-core GitHub repo]: https://github.com/stellar/stellar-core/blob/master/docs/software/commands.md [_HTTP_ endpoint commands]: https://github.com/stellar/stellar-core/blob/master/docs/software/commands.md#http-commands diff --git a/docs/validators/admin-guide/configuring.mdx b/docs/validators/admin-guide/configuring.mdx index 34c027009f..d85008fe43 100644 --- a/docs/validators/admin-guide/configuring.mdx +++ b/docs/validators/admin-guide/configuring.mdx @@ -3,13 +3,11 @@ title: Configuring sidebar_position: 40 --- -import { Alert } from "@site/src/components/Alert"; - - +:::info Before attempting to configure stellar-core, it is highly recommended to first try running a private network or joining the test network. - +::: ## Configuration Basics @@ -25,11 +23,11 @@ When installing using official Debian packages systemd unit file is configured t This page will walk you through the key fields you'll need to include in your config file to get your node up and runninig. - +:::info This page attempts (as strictly as is possible) to focus on the specific fields and values that you may need to modify in your Stellar Core configuration file. To keep this page concise, we try to avoid conceptual context and background information. You will likely find some of that related information on the [prerequisites](./prerequisites.mdx) or [environment preparation](./environment-preparation.mdx) pages, if you'd like. - +::: ### Example Configurations @@ -106,11 +104,11 @@ If you want other validators to add your node to their quorum sets, you should a To create your quorum set, Stellar Core relies on two arrays of tables: `[[HOME_DOMAINS]]` and `[[VALIDATORS]]`. Check out the example config's [`HOME_DOMAINS` array] and [`VALIDATORS` array] to see them in action. - +:::info It is beneficial to take a brief detour here and explore some background information of validator quorums and network consensus. If you'd like, you can skip ahead and begin creating your [home domains array](#home-domains-array) now. Otherwise, read on, my friend! - +::: No matter what kind of node you run — Basic or Full Validator — you need to select a quorum set, which consists of validators (grouped by organization) that your node checks with to determine whether to apply a transaction set to a ledger. If you want to know more about how quorum sets work, check this article about [how Stellar approaches quorums]. If you want to see what a quorum set consisting of all the Tier 1 validators looks like — a tried and true setup — check out the [public network config for a Full Validator]. diff --git a/docs/validators/admin-guide/environment-preparation.mdx b/docs/validators/admin-guide/environment-preparation.mdx index 337a98adea..1361059e18 100644 --- a/docs/validators/admin-guide/environment-preparation.mdx +++ b/docs/validators/admin-guide/environment-preparation.mdx @@ -3,8 +3,6 @@ title: Environment Preparation sidebar_position: 50 --- -import { Alert } from "@site/src/components/Alert"; - ## Initialize the Database and Local State After configuring your [database](./configuring.mdx#database) and [buckets](./configuring.mdx#buckets) settings, before running Stellar Core for the first time, you must initialize the database: @@ -41,11 +39,11 @@ Some deployments of Stellar Core will want to retain metadata for the _entire hi This can be especially costly if it must be run more than once. For instance, when bringing a new node online. Or when needing to reingest historical data to include more meta in your stored data (as happened in [Protocol 23](https://stellar.org/blog/developers/stellar-events-retroactive-events)). - +:::info Due to the very large size requirements, we **recommend against** retaining metadata for the whole network history unless absolutely necessary for your use-case. - +::: Some operators therefore prefer to shut down their stellar-core processes and _take filesystem-level snapshots_ or _database-level dumps_ of the contents of Stellar Core's database and bucket directory, after metadata generation has occurred the first time. Such snapshots can then be restored, putting stellar-core in a state containing metadata without performing full replay. diff --git a/docs/validators/admin-guide/installation.mdx b/docs/validators/admin-guide/installation.mdx index 6f25f42772..9e59b92406 100644 --- a/docs/validators/admin-guide/installation.mdx +++ b/docs/validators/admin-guide/installation.mdx @@ -3,8 +3,6 @@ title: Installing sidebar_position: 30 --- -import { Alert } from "@site/src/components/Alert"; - There are three common ways to install and run Stellar Core: 1. **Using published [packages](#package-based-installation).** For production use, we recommend installing Stellar Core using published packages. @@ -75,11 +73,11 @@ The Stellar Core source code repository contains extensive and thorough instruct SDF maintains a [quickstart image](https://github.com/stellar/quickstart) that runs a Stellar Core validator, a "Captive Core" bundled with Stellar RPC, and all other necessary components to support local development. It's a quick way to set up a default, non-validating, ephemeral configuration that should work for most developers. Additionally, the quickstart image can be spun up pre-configured for use as a Mainnet, Testnet, Futurenet, or Local network node. - +:::info The quickstart image is not intended to serve as a production-level instance node. Please plan your production instance(s) carefully. - +::: ### Production Environments diff --git a/docs/validators/admin-guide/logging.mdx b/docs/validators/admin-guide/logging.mdx index e4dff1b782..8d30dc68dc 100644 --- a/docs/validators/admin-guide/logging.mdx +++ b/docs/validators/admin-guide/logging.mdx @@ -3,8 +3,6 @@ title: Logging sidebar_position: 70 --- -import { Alert } from "@site/src/components/Alert"; - Stellar Core sends logs to standard error and `stellar-core.log` by default, configurable with the `LOG_FILE_PATH` field. Log messages are classified by progressive _priority levels_: `TRACE`, `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `FATAL`. The logging system only emits those messages at or above its configured logging level. @@ -27,11 +25,11 @@ sudo -u stellar stellar-core --conf /etc/stellar/stellar-core.cfg http-command " Against a running system. - +:::info Please take a look at the [HTTP Commands reference] for more information about the partitions available for use in the `ll` command. - +::: The default log level is `INFO`, which is moderately verbose and should emit progress messages every few seconds under normal operation. diff --git a/docs/validators/admin-guide/monitoring.mdx b/docs/validators/admin-guide/monitoring.mdx index c373fa1f88..e07724b574 100644 --- a/docs/validators/admin-guide/monitoring.mdx +++ b/docs/validators/admin-guide/monitoring.mdx @@ -3,17 +3,15 @@ title: Monitoring sidebar_position: 80 --- -import { Alert } from "@site/src/components/Alert"; - Once your node is up and running, it's important to keep an eye on it to make sure it stays afloat and continues to contribute to the health of the overall network. To help with that, Stellar Core exposes vital information that you can use to monitor your node and diagnose potential problems. You can access this information using commands and inspecting Stellar Core's output. The first half of this page will cover this approach. You can also connect [Prometheus](#using-prometheus) to make monitoring easier, combine it with [Alertmanager](#configure-notifications-using-alertmanager) to automate notification, and use pre-built [Grafana dashboards](#visualize-metrics-using-grafana) to create visual representations of your node's well-being. - +:::info [**Stellarbeat**](https://www.stellarbeat.io), a community-run monitoring dashboard, can also be useful for viewing network health as a whole. You should keep a very close eye on your own node(s) using some of the tools suggested on this page, but monitoring performance of all the network's nodes can also be useful to understand how they all interact with each other. - +::: However you decide to monitor, the most important thing is that you have a system in place to ensure that your integration keeps ticking. @@ -229,7 +227,7 @@ for more info about any given subcommand. This section walks through an example of running an overlay survey by calling the survey HTTP endpoints directly. We highly recommend using the overlay survey script instead. This section may be useful to anyone who wants to modify the survey script, or anyone who is curious about the lower-level details of how the survey works and the data it includes. -In this example, we have three nodes `GBBN`, `GDEX`, and `GBUI` (we'll refer to them by the first four letters of their public keys). We will execute the commands below from `GBUI`, and note that `GBBN` has `SURVEYOR_KEYS=["$self"]` in it's config file, so `GBBN` will not relay or respond to any survey messages. +In this example, we have three nodes `GBBN`, `GDEX`, and `GBUI` (we'll refer to them by the first four letters of their public keys). We will execute the commands below from `GBUI`, and note that `GBBN` has `SURVEYOR_KEYS=["$self"]` in its config file, so `GBBN` will not relay or respond to any survey messages. ```bash # 1. Begin the surveyor collecting phase diff --git a/docs/validators/admin-guide/publishing-history-archives.mdx b/docs/validators/admin-guide/publishing-history-archives.mdx index 69770bd28f..f40cca66c5 100644 --- a/docs/validators/admin-guide/publishing-history-archives.mdx +++ b/docs/validators/admin-guide/publishing-history-archives.mdx @@ -191,7 +191,7 @@ At this stage your validator is successfully publishing its history, which enabl ## Complete History Archive -The [stellar-archivist](https://github.com/stellar/go/tree/master/tools/stellar-archivist) command line tool can be used to mirror, scan, and repair existing archives. Using the [SDF package repositories](https://github.com/stellar/packages), you can install `stellar-archivist` by running: +The [stellar-archivist](https://github.com/stellar/go-stellar-sdk/tree/main/tools/stellar-archivist) command line tool can be used to mirror, scan, and repair existing archives. Using the [SDF package repositories](https://github.com/stellar/packages), you can install `stellar-archivist` by running: ```bash apt-get install stellar-archivist diff --git a/docs/validators/admin-guide/soroban-settings.mdx b/docs/validators/admin-guide/soroban-settings.mdx index ca5a0e0239..12ba867215 100644 --- a/docs/validators/admin-guide/soroban-settings.mdx +++ b/docs/validators/admin-guide/soroban-settings.mdx @@ -3,19 +3,17 @@ title: Soroban Settings sidebar_position: 110 --- -import { Alert } from "@site/src/components/Alert"; - Soroban has a large collection of settings stored on-ledger that can be modified through a validator vote. Here you can find out how to propose a new settings upgrade as well as how to examine a proposed upgrade. You can also look at the [Commands page](./commands.mdx) for more details on the stellar-core commands used below. ## Propose a Settings Upgrade This section will describe how to propose a settings upgrade, but take a look at the [Upgrading the Network page](./network-upgrades.mdx#upgrading-soroban-settings) for more information on how the settings upgrade mechanism works internally. - +:::info If you are being asked to vote for an upgrade, please move on to the [Examine a Proposed Upgrade](#examine-a-proposed-upgrade) section for details on how to accomplish that. - +::: ## Helper Script @@ -35,7 +33,7 @@ The output of the phase 2 JSON file, for example, would look like: AAAAAgAAAAEAAAAAHc1lAAAAAAAF9eEAAAAAAAAAABkCgAAAAAAAAgAAAMgAB6EgAAAAfQABEXAAAAAoAAIIAAAAABkAAQQAAAAAAAAAGGoAAAAAAAAnEAAAAAAAAAb6AAAAAukO3QD///////0NfwAAAAAAAOFfAAAD6A== ``` - +:::info `stellar` CLI can be installed using brew or cargo: @@ -47,7 +45,7 @@ cargo install --locked stellar-cli You can also download a [precompiled binary] of the latest release for your system from GitHub. - +::: ### 2. Generate Settings Upgrade Transactions diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 6dc69df0f9..3f7570a17f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -2,14 +2,15 @@ import remarkMath from 'remark-math'; import rehypeKatex from 'rehype-katex'; import { themes as prismThemes } from 'prism-react-renderer'; -import { makeEditUrl, DEFAULT_LOCALE } from './config/constants'; -import { anchorPlatformPluginInstances } from './config/anchorPlatform.config'; -import { disbursementPlatformPluginInstances } from './config/disbursementPlatform.config'; +// import { makeEditUrl, DEFAULT_LOCALE, GOOGLE_TRANSLATE_ELEMENT } from './config/constants'; import navbarItems from './config/theme/navbar'; import footerColumns from './config/theme/footer'; +import { headTags } from './config/theme/headTags'; import type { Config } from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; +import type * as Plugin from '@docusaurus/types/src/plugin'; +import type * as OpenApiPlugin from 'docusaurus-plugin-openapi-docs'; const config: Config = { // future: { @@ -23,14 +24,19 @@ const config: Config = { trailingSlash: false, onBrokenAnchors: "ignore", onBrokenLinks: "throw", - onBrokenMarkdownLinks: "throw", favicon: "img/docusaurus/favicon-96x96.png", organizationName: "stellar", projectName: "stellar-docs", - i18n: { - defaultLocale: DEFAULT_LOCALE, - locales: ["en", "es"], - }, + // i18n: { + // defaultLocale: DEFAULT_LOCALE, + // locales: ["en", "es"], + // }, + scripts: [ + { + src: 'https://translate.google.com/translate_a/element.js', + async: true, + }, + ], plugins: [ "docusaurus-plugin-sass", [ @@ -51,21 +57,42 @@ const config: Config = { sidebarOptions: { groupPathsBy: "tagGroup", }, - }, - }, + } satisfies OpenApiPlugin.Options, + ap_platform: { + specPath: "openapi/anchor-platform/bundled-platform.yaml", + outputDir: "docs/platforms/anchor-platform/api-reference/platform/transactions", + hideSendButton: true, + template: "src/template.mustache", + } satisfies OpenApiPlugin.Options, + ap_callbacks: { + specPath: "openapi/anchor-platform/bundled-callbacks.yaml", + outputDir: "docs/platforms/anchor-platform/api-reference/callbacks", + hideSendButton: true, + template: "src/template.mustache", + } satisfies OpenApiPlugin.Options, + stellar_disbursement_platform: { + specPath: "openapi/stellar-disbursement-platform/bundled.yaml", + outputDir: "docs/platforms/stellar-disbursement-platform/api-reference", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: 'tag', + }, + template: "src/template.mustache", + } satisfies OpenApiPlugin.Options, + } satisfies Plugin.PluginOptions, }, ], - ...anchorPlatformPluginInstances, - ...disbursementPlatformPluginInstances, - require("./src/analytics-module"), - require("./src/dev-server-plugin"), - require("./src/route-export-plugin"), + './src/plugins/route-export/index.ts', + './src/plugins/analytics-module/index.ts', ], markdown: { mermaid: true, mdx1Compat: { headingIds: true, }, + hooks: { + onBrokenMarkdownLinks: 'throw', + }, }, themes: ["docusaurus-theme-openapi-docs", "@docusaurus/theme-mermaid"], presets: [ @@ -94,8 +121,9 @@ const config: Config = { rehypePlugins: [rehypeKatex], sidebarPath: "config/sidebars.ts", sidebarItemsGenerator: require("./src/sidebar-generator"), - editUrl: makeEditUrl, - exclude: ['**/component/**', '**/README.md'], + // editUrl: makeEditUrl, + editUrl: "https://github.com/stellar/stellar-docs/edit/main", + exclude: ['**/component/**', '**/CONTRIBUTING.md'], }, theme: { customCss: [require.resolve("./src/css/custom.scss")], @@ -103,7 +131,10 @@ const config: Config = { gtag: { trackingID: "G-ZCT4GYX8KN", anonymizeIP: true, - } + }, + googleTagManager: { + containerId: "GTM-M2JLH37", + }, } satisfies Preset.Options, ], ], @@ -114,11 +145,8 @@ const config: Config = { integrity: 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM', crossorigin: 'anonymous', }, - { - href: "https://use.fontawesome.com/releases/v6.5.2/css/all.css", - type: 'text/css', - }, ], + headTags: headTags, themeConfig: { announcementBar: { id: 'announcementBar-translation', @@ -130,6 +158,9 @@ const config: Config = { }, }, image: 'img/docusaurus/dev-docs-preview.png', + metadata: [ + { name: 'facebook-domain-verification', content: 'd0o7hha86jfxvtqyxz3d9i5wtfanmy' } + ], navbar: { logo: { width: 100, @@ -145,16 +176,7 @@ const config: Config = { navbarItems.tools, navbarItems.networks, navbarItems.validators, - { - type: 'docsVersionDropdown', - docsPluginId: 'ap', - dropdownActiveClassDisabled: true, - position: 'right', - }, - { - type: 'localeDropdown', - position: 'right', - }, + ...navbarItems.translation, { href: "https://github.com/stellar/stellar-docs", position: "right", diff --git a/i18n/en/code.json b/i18n/en/code.json index 8113d34899..852068e0f9 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -15,10 +15,6 @@ "message": "Documentation for this language is currently work in progress. Some of information may not be applicable for this language, or missing. Code samples may be incomplete.", "description": "For the Wallets SDK, if a given programming language is incomplete, display an admonition warning the user" }, - "components.CanvasFeeGraphs.Loading": { - "message": "Loading...", - "description": "Placeholder loading string for when the real-time fee graphs are loading" - }, "components.ExampleResponse.Example": { "message": "Example", "description": "The default title for a table of example API responses" @@ -31,14 +27,6 @@ "message": "Did you find this page helpful?", "description": "A prompt to invite the reader to click a thumbsup/thumbsdown button" }, - "components.ReaderFeedback.ThumbsUp.Alt": { - "message": "Like", - "description": "The alt value for the thumbsup icon" - }, - "components.ReaderFeedback.ThumbsDown.Alt": { - "message": "Dislike", - "description": "The alt value for the thumbsdown icon" - }, "theme.NotFound.title": { "message": "Page Not Found", "description": "The title of the 404 page" @@ -249,7 +237,7 @@ }, "theme.colorToggle.ariaLabel": { "message": "Switch between dark and light mode (currently {mode})", - "description": "The ARIA label for the navbar color mode toggle" + "description": "The ARIA label for the color mode toggle" }, "theme.colorToggle.ariaLabel.mode.dark": { "message": "dark mode", @@ -475,7 +463,7 @@ }, "theme.SearchPage.algoliaLabel": { "message": "Search by Algolia", - "description": "The ARIA label for Algolia mention" + "description": "The description label for Algolia mention" }, "theme.SearchPage.noResultsText": { "message": "No results were found", @@ -503,15 +491,15 @@ }, "theme.SearchModal.startScreen.noRecentSearchesText": { "message": "No recent searches", - "description": "The text when no recent searches" + "description": "The text when there are no recent searches" }, "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { "message": "Save this search", - "description": "The label for save recent search button" + "description": "The title for save recent search button" }, "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { "message": "Remove this search from history", - "description": "The label for remove recent search button" + "description": "The title for remove recent search button" }, "theme.SearchModal.startScreen.favoriteSearchesTitle": { "message": "Favorite", @@ -519,63 +507,63 @@ }, "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { "message": "Remove this search from favorites", - "description": "The label for remove favorite search button" + "description": "The title for remove favorite search button" }, "theme.SearchModal.errorScreen.titleText": { "message": "Unable to fetch results", - "description": "The title for error screen of search modal" + "description": "The title for error screen" }, "theme.SearchModal.errorScreen.helpText": { "message": "You might want to check your network connection.", - "description": "The help text for error screen of search modal" + "description": "The help text for error screen" }, "theme.SearchModal.footer.selectText": { "message": "to select", - "description": "The explanatory text of the action for the enter key" + "description": "The select text for footer" }, "theme.SearchModal.footer.selectKeyAriaLabel": { "message": "Enter key", - "description": "The ARIA label for the Enter key button that makes the selection" + "description": "The ARIA label for select key in footer" }, "theme.SearchModal.footer.navigateText": { "message": "to navigate", - "description": "The explanatory text of the action for the Arrow up and Arrow down key" + "description": "The navigate text for footer" }, "theme.SearchModal.footer.navigateUpKeyAriaLabel": { "message": "Arrow up", - "description": "The ARIA label for the Arrow up key button that makes the navigation" + "description": "The ARIA label for navigate up key in footer" }, "theme.SearchModal.footer.navigateDownKeyAriaLabel": { "message": "Arrow down", - "description": "The ARIA label for the Arrow down key button that makes the navigation" + "description": "The ARIA label for navigate down key in footer" }, "theme.SearchModal.footer.closeText": { "message": "to close", - "description": "The explanatory text of the action for Escape key" + "description": "The close text for footer" }, "theme.SearchModal.footer.closeKeyAriaLabel": { "message": "Escape key", - "description": "The ARIA label for the Escape key button that close the modal" + "description": "The ARIA label for close key in footer" }, "theme.SearchModal.footer.searchByText": { "message": "Search by", - "description": "The text explain that the search is making by Algolia" + "description": "The 'Powered by' text for footer" }, "theme.SearchModal.noResultsScreen.noResultsText": { "message": "No results for", - "description": "The text explains that there are no results for the following search" + "description": "The text when there are no results" }, "theme.SearchModal.noResultsScreen.suggestedQueryText": { "message": "Try searching for", - "description": "The text for the suggested query when no results are found for the following search" + "description": "The text for suggested query" }, "theme.SearchModal.noResultsScreen.reportMissingResultsText": { "message": "Believe this query should return results?", - "description": "The text for the question where the user thinks there are missing results" + "description": "The text for reporting missing results" }, "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { "message": "Let us know.", - "description": "The text for the link to report missing results" + "description": "The link text for reporting missing results" }, "theme.SearchModal.placeholder": { "message": "Search docs", @@ -632,5 +620,129 @@ "theme.tags.tagsPageTitle": { "message": "Tags", "description": "The title of the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "system mode", + "description": "The name for the system color mode" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Expand the dropdown", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Collapse the dropdown", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "components.ReaderFeedback.ThumbsUp.Title": { + "message": "Like", + "description": "The title value for the thumbsup icon" + }, + "components.ReaderFeedback.ThumbsDown.Title": { + "message": "Dislike", + "description": "The title value for the thumbsdown icon" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.SearchModal.searchBox.placeholderText": { + "message": "Search docs", + "description": "The placeholder text for the main search input field" + }, + "theme.SearchModal.searchBox.placeholderTextAskAi": { + "message": "Ask another question...", + "description": "The placeholder text when in AI question mode" + }, + "theme.SearchModal.searchBox.placeholderTextAskAiStreaming": { + "message": "Answering...", + "description": "The placeholder text for search box when AI is streaming an answer" + }, + "theme.SearchModal.searchBox.enterKeyHint": { + "message": "search", + "description": "The hint for the search box enter key text" + }, + "theme.SearchModal.searchBox.enterKeyHintAskAi": { + "message": "enter", + "description": "The hint for the Ask AI search box enter key text" + }, + "theme.SearchModal.searchBox.searchInputLabel": { + "message": "Search", + "description": "The ARIA label for search input" + }, + "theme.SearchModal.searchBox.backToKeywordSearchButtonText": { + "message": "Back to keyword search", + "description": "The text for back to keyword search button" + }, + "theme.SearchModal.searchBox.backToKeywordSearchButtonAriaLabel": { + "message": "Back to keyword search", + "description": "The ARIA label for back to keyword search button" + }, + "theme.SearchModal.startScreen.recentConversationsTitle": { + "message": "Recent conversations", + "description": "The title for recent conversations" + }, + "theme.SearchModal.startScreen.removeRecentConversationButtonTitle": { + "message": "Remove this conversation from history", + "description": "The title for remove recent conversation button" + }, + "theme.SearchModal.resultsScreen.askAiPlaceholder": { + "message": "Ask AI: ", + "description": "The placeholder text for Ask AI input" + }, + "theme.SearchModal.askAiScreen.disclaimerText": { + "message": "Answers are generated with AI which can make mistakes. Verify responses.", + "description": "The disclaimer text for AI answers" + }, + "theme.SearchModal.askAiScreen.relatedSourcesText": { + "message": "Related sources", + "description": "The text for related sources" + }, + "theme.SearchModal.askAiScreen.thinkingText": { + "message": "Thinking...", + "description": "The text when AI is thinking" + }, + "theme.SearchModal.askAiScreen.copyButtonText": { + "message": "Copy", + "description": "The text for copy button" + }, + "theme.SearchModal.askAiScreen.copyButtonCopiedText": { + "message": "Copied!", + "description": "The text for copy button when copied" + }, + "theme.SearchModal.askAiScreen.copyButtonTitle": { + "message": "Copy", + "description": "The title for copy button" + }, + "theme.SearchModal.askAiScreen.likeButtonTitle": { + "message": "Like", + "description": "The title for like button" + }, + "theme.SearchModal.askAiScreen.dislikeButtonTitle": { + "message": "Dislike", + "description": "The title for dislike button" + }, + "theme.SearchModal.askAiScreen.thanksForFeedbackText": { + "message": "Thanks for your feedback!", + "description": "The text for thanks for feedback" + }, + "theme.SearchModal.askAiScreen.preToolCallText": { + "message": "Searching...", + "description": "The text before tool call" + }, + "theme.SearchModal.askAiScreen.duringToolCallText": { + "message": "Searching for ", + "description": "The text during tool call" + }, + "theme.SearchModal.askAiScreen.afterToolCallText": { + "message": "Searched for", + "description": "The text after tool call" + }, + "theme.SearchModal.footer.submitQuestionText": { + "message": "Submit question", + "description": "The submit question text for footer" + }, + "theme.SearchModal.footer.backToSearchText": { + "message": "Back to search", + "description": "The back to search text for footer" } } diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/current.json b/i18n/en/docusaurus-plugin-content-docs-ap/current.json index a74b4275d7..93c37fc0b7 100644 --- a/i18n/en/docusaurus-plugin-content-docs-ap/current.json +++ b/i18n/en/docusaurus-plugin-content-docs-ap/current.json @@ -11,18 +11,6 @@ "message": "Admin Guide", "description": "The label for category Admin Guide in sidebar anchor_platform" }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, "sidebar.anchor_platform.category.Custody Services": { "message": "Custody Services", "description": "The label for category Custody Services in sidebar anchor_platform" @@ -62,5 +50,21 @@ "sidebar.anchor_platform.category.Custody Server": { "message": "Custody Server", "description": "The label for category Custody Server in sidebar anchor_platform" + }, + "sidebar.anchor_platform.category.SEP Guides": { + "message": "SEP Guides", + "description": "The label for category SEP Guides in sidebar anchor_platform" + }, + "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals (SEP-24)": { + "message": "Hosted Deposits and Withdrawals (SEP-24)", + "description": "The label for category Hosted Deposits and Withdrawals (SEP-24) in sidebar anchor_platform" + }, + "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals (SEP-6)": { + "message": "Programmatic Deposits and Withdrawals (SEP-6)", + "description": "The label for category Programmatic Deposits and Withdrawals (SEP-6) in sidebar anchor_platform" + }, + "sidebar.anchor_platform.category.Cross-Border Payments (SEP-31)": { + "message": "Cross-Border Payments (SEP-31)", + "description": "The label for category Cross-Border Payments (SEP-31) in sidebar anchor_platform" } } diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.10.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-2.10.json deleted file mode 100644 index 029ecd8d12..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.10.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2.10", - "description": "The label for version 2.10" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.11.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-2.11.json deleted file mode 100644 index 8d0c884b8f..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.11.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2.11", - "description": "The label for version 2.11" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.8.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-2.8.json deleted file mode 100644 index 6b8faf835f..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.8.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2.8", - "description": "The label for version 2.8" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.9.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-2.9.json deleted file mode 100644 index 2349533abc..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-2.9.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2.9", - "description": "The label for version 2.9" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-3.0.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-3.0.json deleted file mode 100644 index 5a79e16696..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-3.0.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "3.0", - "description": "The label for version 3.0" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs-ap/version-3.1.json b/i18n/en/docusaurus-plugin-content-docs-ap/version-3.1.json deleted file mode 100644 index d7a1ee8838..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs-ap/version-3.1.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "3.1", - "description": "The label for version 3.1" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Hosted Deposits and Withdrawals", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Programmatic Deposits and Withdrawals", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Cross-Border Payments", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Custody Services", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Event Handling", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Platform Server", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Methods", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Callbacks Server", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Custody Server", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json b/i18n/en/docusaurus-plugin-content-docs/current.json index c16bca40a1..aef4377bc3 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/i18n/en/docusaurus-plugin-content-docs/current.json @@ -5,590 +5,1010 @@ }, "sidebar.build.category.Build Smart Contracts": { "message": "Build Smart Contracts", - "description": "The label for category Build Smart Contracts in sidebar build" + "description": "The label for category 'Build Smart Contracts' in sidebar 'build'" }, "sidebar.build.category.Getting Started": { "message": "Getting Started", - "description": "The label for category Getting Started in sidebar build" + "description": "The label for category 'Getting Started' in sidebar 'build'" }, "sidebar.build.category.Example Contracts": { "message": "Example Contracts", - "description": "The label for category Example Contracts in sidebar build" + "description": "The label for category 'Example Contracts' in sidebar 'build'" }, "sidebar.build.category.Build Applications": { "message": "Build Applications", - "description": "The label for category Build Applications in sidebar build" + "description": "The label for category 'Build Applications' in sidebar 'build'" }, "sidebar.build.category.Build a Wallet with the Wallet SDK": { "message": "Build a Wallet with the Wallet SDK", - "description": "The label for category Build a Wallet with the Wallet SDK in sidebar build" + "description": "The label for category 'Build a Wallet with the Wallet SDK' in sidebar 'build'" }, "sidebar.build.category.Build a Payment App with the JS SDK": { "message": "Build a Payment App with the JS SDK", - "description": "The label for category Build a Payment App with the JS SDK in sidebar build" + "description": "The label for category 'Build a Payment App with the JS SDK' in sidebar 'build'" }, "sidebar.build.category.Anchor Integration": { "message": "Anchor Integration", - "description": "The label for category Anchor Integration in sidebar build" + "description": "The label for category 'Anchor Integration' in sidebar 'build'" }, "sidebar.build.category.Build Custom Network Ingestion Pipeline": { "message": "Build Custom Network Ingestion Pipeline", - "description": "The label for category Build Custom Network Ingestion Pipeline in sidebar build" + "description": "The label for category 'Build Custom Network Ingestion Pipeline' in sidebar 'build'" }, "sidebar.build.category.Build a Passkey Powered Guestbook Dapp": { "message": "Build a Passkey Powered Guestbook Dapp", - "description": "The label for category Build a Passkey Powered Guestbook Dapp in sidebar build" + "description": "The label for category 'Build a Passkey Powered Guestbook Dapp' in sidebar 'build'" }, "sidebar.build.category.How-To Guides": { "message": "How-To Guides", - "description": "The label for category How-To Guides in sidebar build" + "description": "The label for category 'How-To Guides' in sidebar 'build'" }, "sidebar.build.category.Contract Conventions": { "message": "Contract Conventions", - "description": "The label for category Contract Conventions in sidebar build" + "description": "The label for category 'Contract Conventions' in sidebar 'build'" }, "sidebar.build.category.Contract Events": { "message": "Contract Events", - "description": "The label for category Contract Events in sidebar build" + "description": "The label for category 'Contract Events' in sidebar 'build'" }, "sidebar.build.category.Contract Storage": { "message": "Contract Storage", - "description": "The label for category Contract Storage in sidebar build" + "description": "The label for category 'Contract Storage' in sidebar 'build'" }, "sidebar.build.category.Contract Testing": { "message": "Contract Testing", - "description": "The label for category Contract Testing in sidebar build" + "description": "The label for category 'Contract Testing' in sidebar 'build'" }, "sidebar.build.category.Dapp Development": { "message": "Dapp Development", - "description": "The label for category Dapp Development in sidebar build" + "description": "The label for category 'Dapp Development' in sidebar 'build'" }, "sidebar.build.category.Fees & Metering": { "message": "Fees & Metering", - "description": "The label for category Fees & Metering in sidebar build" + "description": "The label for category 'Fees & Metering' in sidebar 'build'" }, "sidebar.build.category.Freighter Wallet": { "message": "Freighter Wallet", - "description": "The label for category Freighter Wallet in sidebar build" + "description": "The label for category 'Freighter Wallet' in sidebar 'build'" }, "sidebar.build.category.Stellar Basics": { "message": "Stellar Basics", - "description": "The label for category Stellar Basics in sidebar build" + "description": "The label for category 'Stellar Basics' in sidebar 'build'" }, "sidebar.build.category.RPC": { "message": "RPC", - "description": "The label for category RPC in sidebar build" - }, - "sidebar.build.category.Stellar CLI": { - "message": "Stellar CLI", - "description": "The label for category Stellar CLI in sidebar build" + "description": "The label for category 'RPC' in sidebar 'build'" }, "sidebar.build.category.State Archival": { "message": "State Archival", - "description": "The label for category State Archival in sidebar build" + "description": "The label for category 'State Archival' in sidebar 'build'" }, "sidebar.build.category.Stellar Asset Contract (SAC) Tokens": { "message": "Stellar Asset Contract (SAC) Tokens", - "description": "The label for category Stellar Asset Contract (SAC) Tokens in sidebar build" + "description": "The label for category 'Stellar Asset Contract (SAC) Tokens' in sidebar 'build'" }, "sidebar.build.category.Transactions": { "message": "Transactions", - "description": "The label for category Transactions in sidebar build" + "description": "The label for category 'Transactions' in sidebar 'build'" }, "sidebar.build.category.Type Conversions": { "message": "Type Conversions", - "description": "The label for category Type Conversions in sidebar build" + "description": "The label for category 'Type Conversions' in sidebar 'build'" }, "sidebar.build.category.Security Best Practices": { "message": "Security Best Practices", - "description": "The label for category Security Best Practices in sidebar build" + "description": "The label for category 'Security Best Practices' in sidebar 'build'" }, "sidebar.build.category.Threat Modeling": { "message": "Threat Modeling", - "description": "The label for category Threat Modeling in sidebar build" + "description": "The label for category 'Threat Modeling' in sidebar 'build'" }, "sidebar.learn.category.Core Concepts": { "message": "Core Concepts", - "description": "The label for category Core Concepts in sidebar learn" + "description": "The label for category 'Core Concepts' in sidebar 'learn'" }, "sidebar.learn.category.Stellar Data Structures": { "message": "Stellar Data Structures", - "description": "The label for category Stellar Data Structures in sidebar learn" + "description": "The label for category 'Stellar Data Structures' in sidebar 'learn'" }, "sidebar.learn.category.Operations & Transactions": { "message": "Operations & Transactions", - "description": "The label for category Operations & Transactions in sidebar learn" + "description": "The label for category 'Operations & Transactions' in sidebar 'learn'" }, "sidebar.learn.category.Smart Contracts": { "message": "Smart Contracts", - "description": "The label for category Smart Contracts in sidebar learn" + "description": "The label for category 'Smart Contracts' in sidebar 'learn'" }, "sidebar.learn.category.Contract Interactions": { "message": "Contract Interactions", - "description": "The label for category Contract Interactions in sidebar learn" + "description": "The label for category 'Contract Interactions' in sidebar 'learn'" }, "sidebar.learn.category.Types": { "message": "Types", - "description": "The label for category Types in sidebar learn" + "description": "The label for category 'Types' in sidebar 'learn'" }, "sidebar.learn.category.Storage": { "message": "Storage", - "description": "The label for category Storage in sidebar learn" + "description": "The label for category 'Storage' in sidebar 'learn'" }, "sidebar.learn.category.Errors and Debugging": { "message": "Errors and Debugging", - "description": "The label for category Errors and Debugging in sidebar learn" + "description": "The label for category 'Errors and Debugging' in sidebar 'learn'" }, "sidebar.learn.category.Data Format": { "message": "Data Format", - "description": "The label for category Data Format in sidebar learn" - }, - "sidebar.learn.category.Encyclopedia": { - "message": "Encyclopedia", - "description": "The label for category Encyclopedia in sidebar learn" - }, - "sidebar.learn.category.Transactions (specialized)": { - "message": "Transactions (specialized)", - "description": "The label for category Transactions (specialized) in sidebar learn" - }, - "sidebar.learn.category.Network Configuration": { - "message": "Network Configuration", - "description": "The label for category Network Configuration in sidebar learn" - }, - "sidebar.learn.category.SDEX": { - "message": "SDEX", - "description": "The label for category SDEX in sidebar learn" + "description": "The label for category 'Data Format' in sidebar 'learn'" }, "sidebar.learn.category.Migrate from Another Chain": { "message": "Migrate from Another Chain", - "description": "The label for category Migrate from Another Chain in sidebar learn" + "description": "The label for category 'Migrate from Another Chain' in sidebar 'learn'" }, "sidebar.learn.category.EVM Networks": { "message": "EVM Networks", - "description": "The label for category EVM Networks in sidebar learn" + "description": "The label for category 'EVM Networks' in sidebar 'learn'" }, "sidebar.learn.category.Interactive Learning": { "message": "Interactive Learning", - "description": "The label for category Interactive Learning in sidebar learn" + "description": "The label for category 'Interactive Learning' in sidebar 'learn'" }, "sidebar.data_overview.category.Analytics": { "message": "Analytics", - "description": "The label for category Analytics in sidebar data_overview" + "description": "The label for category 'Analytics' in sidebar 'data_overview'" }, "sidebar.data_overview.category.APIs": { "message": "APIs", - "description": "The label for category APIs in sidebar data_overview" + "description": "The label for category 'APIs' in sidebar 'data_overview'" }, "sidebar.data_overview.category.Indexers": { "message": "Indexers", - "description": "The label for category Indexers in sidebar data_overview" + "description": "The label for category 'Indexers' in sidebar 'data_overview'" }, "sidebar.data_overview.category.Oracles": { "message": "Oracles", - "description": "The label for category Oracles in sidebar data_overview" + "description": "The label for category 'Oracles' in sidebar 'data_overview'" }, "sidebar.data_overview.doc.Hubble": { "message": "Hubble", - "description": "The label for the doc item Hubble in sidebar data_overview, linking to the doc data/analytics/hubble/README" + "description": "The label for the doc item 'Hubble' in sidebar 'data_overview', linking to the doc data/analytics/hubble/README" }, "sidebar.data_overview.doc.Data Analytics Providers": { "message": "Data Analytics Providers", - "description": "The label for the doc item Data Analytics Providers in sidebar data_overview, linking to the doc data/analytics/analytics-providers/analytics-providers" + "description": "The label for the doc item 'Data Analytics Providers' in sidebar 'data_overview', linking to the doc data/analytics/analytics-providers/analytics-providers" }, "sidebar.data_overview.doc.RPC": { "message": "RPC", - "description": "The label for the doc item RPC in sidebar data_overview, linking to the doc data/apis/rpc/README" + "description": "The label for the doc item 'RPC' in sidebar 'data_overview', linking to the doc data/apis/rpc/README" }, "sidebar.data_overview.doc.Horizon": { "message": "Horizon", - "description": "The label for the doc item Horizon in sidebar data_overview, linking to the doc data/apis/horizon/README" + "description": "The label for the doc item 'Horizon' in sidebar 'data_overview', linking to the doc data/apis/horizon/README" }, "sidebar.data_overview.doc.Migrate Horizon to RPC": { "message": "Migrate Horizon to RPC", - "description": "The label for the doc item Migrate Horizon to RPC in sidebar data_overview, linking to the doc data/apis/migrate-from-horizon-to-rpc/migrate-from-horizon-to-rpc" - }, - "sidebar.data_overview.doc.API Providers": { - "message": "API Providers", - "description": "The label for the doc item API Providers in sidebar data_overview, linking to the doc data/apis/api-providers" + "description": "The label for the doc item 'Migrate Horizon to RPC' in sidebar 'data_overview', linking to the doc data/apis/migrate-from-horizon-to-rpc" }, "sidebar.data_overview.doc.Build Your Own Indexer": { "message": "Build Your Own Indexer", - "description": "The label for the doc item Build Your Own Indexer in sidebar data_overview, linking to the doc data/indexers/build-your-own/README" + "description": "The label for the doc item 'Build Your Own Indexer' in sidebar 'data_overview', linking to the doc data/indexers/build-your-own/README" }, "sidebar.data_overview.doc.Indexer Providers": { "message": "Indexer Providers", - "description": "The label for the doc item Indexer Providers in sidebar data_overview, linking to the doc data/indexers/indexer-providers/indexer-providers" + "description": "The label for the doc item 'Indexer Providers' in sidebar 'data_overview', linking to the doc data/indexers/indexer-providers/indexer-providers" }, "sidebar.data_overview.doc.Oracle Providers": { "message": "Oracle Providers", - "description": "The label for the doc item Oracle Providers in sidebar data_overview, linking to the doc data/oracles/oracle-providers" + "description": "The label for the doc item 'Oracle Providers' in sidebar 'data_overview', linking to the doc data/oracles/oracle-providers" }, "sidebar.tools.category.SDKs": { "message": "SDKs", - "description": "The label for category SDKs in sidebar tools" + "description": "The label for category 'SDKs' in sidebar 'tools'" }, "sidebar.tools.category.Stellar CLI": { "message": "Stellar CLI", - "description": "The label for category Stellar CLI in sidebar tools" + "description": "The label for category 'Stellar CLI' in sidebar 'tools'" }, "sidebar.tools.category.Lab": { "message": "Lab", - "description": "The label for category Lab in sidebar tools" + "description": "The label for category 'Lab' in sidebar 'tools'" }, "sidebar.tools.category.API Explorer": { "message": "API Explorer", - "description": "The label for category API Explorer in sidebar tools" + "description": "The label for category 'API Explorer' in sidebar 'tools'" }, "sidebar.tools.category.Quickstart": { "message": "Quickstart", - "description": "The label for category Quickstart in sidebar tools" + "description": "The label for category 'Quickstart' in sidebar 'tools'" }, "sidebar.tools.category.Getting Started": { "message": "Getting Started", - "description": "The label for category Getting Started in sidebar tools" + "description": "The label for category 'Getting Started' in sidebar 'tools'" }, "sidebar.tools.category.Debugging": { "message": "Debugging", - "description": "The label for category Debugging in sidebar tools" + "description": "The label for category 'Debugging' in sidebar 'tools'" }, "sidebar.tools.category.Cloud Deployment": { "message": "Cloud Deployment", - "description": "The label for category Cloud Deployment in sidebar tools" + "description": "The label for category 'Cloud Deployment' in sidebar 'tools'" }, "sidebar.tools.category.Advanced Usage": { "message": "Advanced Usage", - "description": "The label for category Advanced Usage in sidebar tools" + "description": "The label for category 'Advanced Usage' in sidebar 'tools'" }, "sidebar.tools.category.More Developer Tools": { "message": "More Developer Tools", - "description": "The label for category More Developer Tools in sidebar tools" + "description": "The label for category 'More Developer Tools' in sidebar 'tools'" }, "sidebar.tools.category.Ramps": { "message": "Ramps", - "description": "The label for category Ramps in sidebar tools" + "description": "The label for category 'Ramps' in sidebar 'tools'" }, "sidebar.tools.category.Infrastructure Tools": { "message": "Infrastructure Tools", - "description": "The label for category Infrastructure Tools in sidebar tools" + "description": "The label for category 'Infrastructure Tools' in sidebar 'tools'" }, "sidebar.tools.link.Anchor Platform": { "message": "Anchor Platform", - "description": "The label for link Anchor Platform in sidebar tools, linking to /platforms/anchor-platform" + "description": "The label for link 'Anchor Platform' in sidebar 'tools', linking to '/docs/platforms/anchor-platform'" }, "sidebar.tools.link.Stellar Disbursement Platform": { "message": "Stellar Disbursement Platform", - "description": "The label for link Stellar Disbursement Platform in sidebar tools, linking to /platforms/stellar-disbursement-platform" + "description": "The label for link 'Stellar Disbursement Platform' in sidebar 'tools', linking to '/docs/platforms/stellar-disbursement-platform'" }, "sidebar.validators.category.Admin Guide": { "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar validators" + "description": "The label for category 'Admin Guide' in sidebar 'validators'" }, "sidebar.hubble.category.Hubble": { "message": "Hubble", - "description": "The label for category Hubble in sidebar hubble" + "description": "The label for category 'Hubble' in sidebar 'hubble'" }, "sidebar.hubble.category.Analyst Guide": { "message": "Analyst Guide", - "description": "The label for category Analyst Guide in sidebar hubble" + "description": "The label for category 'Analyst Guide' in sidebar 'hubble'" }, "sidebar.hubble.category.Developer Guide": { "message": "Developer Guide", - "description": "The label for category Developer Guide in sidebar hubble" + "description": "The label for category 'Developer Guide' in sidebar 'hubble'" }, "sidebar.hubble.category.Backfill": { "message": "Backfill", - "description": "The label for category Backfill in sidebar hubble" + "description": "The label for category 'Backfill' in sidebar 'hubble'" }, "sidebar.hubble.category.Source System Ingestion": { "message": "Source System Ingestion", - "description": "The label for category Source System Ingestion in sidebar hubble" + "description": "The label for category 'Source System Ingestion' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Curation": { "message": "Data Curation", - "description": "The label for category Data Curation in sidebar hubble" + "description": "The label for category 'Data Curation' in sidebar 'hubble'" }, "sidebar.hubble.category.Visualization": { "message": "Visualization", - "description": "The label for category Visualization in sidebar hubble" + "description": "The label for category 'Visualization' in sidebar 'hubble'" }, "sidebar.hubble.category.Scheduling and Orchestration": { "message": "Scheduling and Orchestration", - "description": "The label for category Scheduling and Orchestration in sidebar hubble" + "description": "The label for category 'Scheduling and Orchestration' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Catalog": { "message": "Data Catalog", - "description": "The label for category Data Catalog in sidebar hubble" + "description": "The label for category 'Data Catalog' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Dictionary": { "message": "Data Dictionary", - "description": "The label for category Data Dictionary in sidebar hubble" + "description": "The label for category 'Data Dictionary' in sidebar 'hubble'" }, "sidebar.galexie.category.Galexie": { "message": "Galexie", - "description": "The label for category Galexie in sidebar galexie" + "description": "The label for category 'Galexie' in sidebar 'galexie'" }, "sidebar.galexie.category.Admin Guide": { "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar galexie" - }, - "sidebar.galexie.category.Example Usages": { - "message": "Example Usages", - "description": "The label for category Example Usages in sidebar galexie" + "description": "The label for category 'Admin Guide' in sidebar 'galexie'" }, "sidebar.ingest.category.Ingest SDK": { "message": "Ingest SDK", - "description": "The label for category Ingest SDK in sidebar ingest" + "description": "The label for category 'Ingest SDK' in sidebar 'ingest'" }, "sidebar.ingest.category.Developer Guide": { "message": "Developer Guide", - "description": "The label for category Developer Guide in sidebar ingest" + "description": "The label for category 'Developer Guide' in sidebar 'ingest'" }, "sidebar.ingest.category.Ledger Backends": { "message": "Ledger Backends", - "description": "The label for category Ledger Backends in sidebar ingest" - }, - "sidebar.ingest.category.Example Usages": { - "message": "Example Usages", - "description": "The label for category Example Usages in sidebar ingest" + "description": "The label for category 'Ledger Backends' in sidebar 'ingest'" }, "sidebar.soroban_rpc.category.Stellar RPC": { "message": "Stellar RPC", - "description": "The label for category Stellar RPC in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar soroban_rpc" + "description": "The label for category 'Stellar RPC' in sidebar 'soroban_rpc'" }, "sidebar.soroban_rpc.category.Methods": { "message": "Methods", - "description": "The label for category Methods in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.Structure": { - "message": "Structure", - "description": "The label for category Structure in sidebar soroban_rpc" + "description": "The label for category 'Methods' in sidebar 'soroban_rpc'" }, "sidebar.analytics.category.Analytics": { "message": "Analytics", - "description": "The label for category Analytics in sidebar analytics" + "description": "The label for category 'Analytics' in sidebar 'analytics'" }, "sidebar.analytics.category.Hubble": { "message": "Hubble", - "description": "The label for category Hubble in sidebar analytics" + "description": "The label for category 'Hubble' in sidebar 'analytics'" }, "sidebar.analytics.category.Analyst Guide": { "message": "Analyst Guide", - "description": "The label for category Analyst Guide in sidebar analytics" + "description": "The label for category 'Analyst Guide' in sidebar 'analytics'" }, "sidebar.analytics.category.Developer Guide": { "message": "Developer Guide", - "description": "The label for category Developer Guide in sidebar analytics" + "description": "The label for category 'Developer Guide' in sidebar 'analytics'" }, "sidebar.analytics.category.Backfill": { "message": "Backfill", - "description": "The label for category Backfill in sidebar analytics" + "description": "The label for category 'Backfill' in sidebar 'analytics'" }, "sidebar.analytics.category.Source System Ingestion": { "message": "Source System Ingestion", - "description": "The label for category Source System Ingestion in sidebar analytics" + "description": "The label for category 'Source System Ingestion' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Curation": { "message": "Data Curation", - "description": "The label for category Data Curation in sidebar analytics" + "description": "The label for category 'Data Curation' in sidebar 'analytics'" }, "sidebar.analytics.category.Visualization": { "message": "Visualization", - "description": "The label for category Visualization in sidebar analytics" + "description": "The label for category 'Visualization' in sidebar 'analytics'" }, "sidebar.analytics.category.Scheduling and Orchestration": { "message": "Scheduling and Orchestration", - "description": "The label for category Scheduling and Orchestration in sidebar analytics" + "description": "The label for category 'Scheduling and Orchestration' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Catalog": { "message": "Data Catalog", - "description": "The label for category Data Catalog in sidebar analytics" + "description": "The label for category 'Data Catalog' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Dictionary": { "message": "Data Dictionary", - "description": "The label for category Data Dictionary in sidebar analytics" + "description": "The label for category 'Data Dictionary' in sidebar 'analytics'" }, "sidebar.apis.category.APIs": { "message": "APIs", - "description": "The label for category APIs in sidebar apis" + "description": "The label for category 'APIs' in sidebar 'apis'" }, "sidebar.apis.category.RPC": { "message": "RPC", - "description": "The label for category RPC in sidebar apis" - }, - "sidebar.apis.category.Admin Guide": { - "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar apis" - }, - "sidebar.apis.category.API Reference": { - "message": "API Reference", - "description": "The label for category API Reference in sidebar apis" + "description": "The label for category 'RPC' in sidebar 'apis'" }, "sidebar.apis.category.Methods": { "message": "Methods", - "description": "The label for category Methods in sidebar apis" - }, - "sidebar.apis.category.Structure": { - "message": "Structure", - "description": "The label for category Structure in sidebar apis" + "description": "The label for category 'Methods' in sidebar 'apis'" }, "sidebar.apis.category.Horizon": { "message": "Horizon", - "description": "The label for category Horizon in sidebar apis" + "description": "The label for category 'Horizon' in sidebar 'apis'" }, "sidebar.apis.category.Resources": { "message": "Resources", - "description": "The label for category Resources in sidebar apis" + "description": "The label for category 'Resources' in sidebar 'apis'" }, "sidebar.apis.category.Accounts": { "message": "Accounts", - "description": "The label for category Accounts in sidebar apis" + "description": "The label for category 'Accounts' in sidebar 'apis'" }, "sidebar.apis.category.Assets": { "message": "Assets", - "description": "The label for category Assets in sidebar apis" + "description": "The label for category 'Assets' in sidebar 'apis'" }, "sidebar.apis.category.Claimable Balances": { "message": "Claimable Balances", - "description": "The label for category Claimable Balances in sidebar apis" + "description": "The label for category 'Claimable Balances' in sidebar 'apis'" }, "sidebar.apis.category.Effects": { "message": "Effects", - "description": "The label for category Effects in sidebar apis" + "description": "The label for category 'Effects' in sidebar 'apis'" }, "sidebar.apis.category.Ledgers": { "message": "Ledgers", - "description": "The label for category Ledgers in sidebar apis" + "description": "The label for category 'Ledgers' in sidebar 'apis'" }, "sidebar.apis.category.Liquidity Pools": { "message": "Liquidity Pools", - "description": "The label for category Liquidity Pools in sidebar apis" + "description": "The label for category 'Liquidity Pools' in sidebar 'apis'" }, "sidebar.apis.category.Offers": { "message": "Offers", - "description": "The label for category Offers in sidebar apis" + "description": "The label for category 'Offers' in sidebar 'apis'" }, "sidebar.apis.category.Operations": { "message": "Operations", - "description": "The label for category Operations in sidebar apis" + "description": "The label for category 'Operations' in sidebar 'apis'" }, "sidebar.apis.category.The Operation Object": { "message": "The Operation Object", - "description": "The label for category The Operation Object in sidebar apis" + "description": "The label for category 'The Operation Object' in sidebar 'apis'" }, "sidebar.apis.category.Payments": { "message": "Payments", - "description": "The label for category Payments in sidebar apis" + "description": "The label for category 'Payments' in sidebar 'apis'" }, "sidebar.apis.category.Trades": { "message": "Trades", - "description": "The label for category Trades in sidebar apis" + "description": "The label for category 'Trades' in sidebar 'apis'" }, "sidebar.apis.category.Transactions": { "message": "Transactions", - "description": "The label for category Transactions in sidebar apis" + "description": "The label for category 'Transactions' in sidebar 'apis'" }, "sidebar.apis.category.Pagination": { "message": "Pagination", - "description": "The label for category Pagination in sidebar apis" + "description": "The label for category 'Pagination' in sidebar 'apis'" }, "sidebar.apis.category.Aggregations": { "message": "Aggregations", - "description": "The label for category Aggregations in sidebar apis" + "description": "The label for category 'Aggregations' in sidebar 'apis'" }, "sidebar.apis.category.Order Books": { "message": "Order Books", - "description": "The label for category Order Books in sidebar apis" + "description": "The label for category 'Order Books' in sidebar 'apis'" }, "sidebar.apis.category.Paths": { "message": "Paths", - "description": "The label for category Paths in sidebar apis" + "description": "The label for category 'Paths' in sidebar 'apis'" }, "sidebar.apis.category.Trade Aggregations": { "message": "Trade Aggregations", - "description": "The label for category Trade Aggregations in sidebar apis" + "description": "The label for category 'Trade Aggregations' in sidebar 'apis'" }, "sidebar.apis.category.Fee Stats": { "message": "Fee Stats", - "description": "The label for category Fee Stats in sidebar apis" + "description": "The label for category 'Fee Stats' in sidebar 'apis'" }, "sidebar.apis.category.Errors": { "message": "Errors", - "description": "The label for category Errors in sidebar apis" + "description": "The label for category 'Errors' in sidebar 'apis'" }, "sidebar.apis.category.HTTP Status Codes": { "message": "HTTP Status Codes", - "description": "The label for category HTTP Status Codes in sidebar apis" + "description": "The label for category 'HTTP Status Codes' in sidebar 'apis'" }, "sidebar.apis.category.Horizon-Specific Status Codes": { "message": "Horizon-Specific Status Codes", - "description": "The label for category Horizon-Specific Status Codes in sidebar apis" + "description": "The label for category 'Horizon-Specific Status Codes' in sidebar 'apis'" }, "sidebar.apis.category.Result Codes": { "message": "Result Codes", - "description": "The label for category Result Codes in sidebar apis" + "description": "The label for category 'Result Codes' in sidebar 'apis'" }, "sidebar.apis.category.Operation-Specific Result Codes": { "message": "Operation-Specific Result Codes", - "description": "The label for category Operation-Specific Result Codes in sidebar apis" + "description": "The label for category 'Operation-Specific Result Codes' in sidebar 'apis'" }, "sidebar.indexers.category.Indexers": { "message": "Indexers", - "description": "The label for category Indexers in sidebar indexers" + "description": "The label for category 'Indexers' in sidebar 'indexers'" }, "sidebar.indexers.category.Build Your Own Indexer": { "message": "Build Your Own Indexer", - "description": "The label for category Build Your Own Indexer in sidebar indexers" + "description": "The label for category 'Build Your Own Indexer' in sidebar 'indexers'" }, "sidebar.indexers.category.Galexie": { "message": "Galexie", - "description": "The label for category Galexie in sidebar indexers" + "description": "The label for category 'Galexie' in sidebar 'indexers'" }, "sidebar.indexers.category.Admin Guide": { "message": "Admin Guide", - "description": "The label for category Admin Guide in sidebar indexers" - }, - "sidebar.indexers.category.Example Usages": { - "message": "Example Usages", - "description": "The label for category Example Usages in sidebar indexers" + "description": "The label for category 'Admin Guide' in sidebar 'indexers'" }, "sidebar.indexers.category.Ingest SDK": { "message": "Ingest SDK", - "description": "The label for category Ingest SDK in sidebar indexers" + "description": "The label for category 'Ingest SDK' in sidebar 'indexers'" }, "sidebar.indexers.category.Developer Guide": { "message": "Developer Guide", - "description": "The label for category Developer Guide in sidebar indexers" + "description": "The label for category 'Developer Guide' in sidebar 'indexers'" }, "sidebar.indexers.category.Ledger Backends": { "message": "Ledger Backends", - "description": "The label for category Ledger Backends in sidebar indexers" + "description": "The label for category 'Ledger Backends' in sidebar 'indexers'" }, "sidebar.oracles.category.Oracles": { "message": "Oracles", - "description": "The label for category Oracles in sidebar oracles" + "description": "The label for category 'Oracles' in sidebar 'oracles'" }, "sidebar.build.category.Contract Authorization": { "message": "Contract Authorization", - "description": "The label for category Contract Authorization in sidebar build" + "description": "The label for category 'Contract Authorization' in sidebar 'build'" }, "sidebar.tools.category.Smart Contracts": { "message": "Smart Contracts", - "description": "The label for category Smart Contracts in sidebar tools" + "description": "The label for category 'Smart Contracts' in sidebar 'tools'" }, "sidebar.indexers.category.Processors": { "message": "Processors", - "description": "The label for category Processors in sidebar indexers" + "description": "The label for category 'Processors' in sidebar 'indexers'" }, "sidebar.indexers.category.Token Transfer Processor": { "message": "Token Transfer Processor", - "description": "The label for category Token Transfer Processor in sidebar indexers" + "description": "The label for category 'Token Transfer Processor' in sidebar 'indexers'" + }, + "sidebar.tools.category.Cookbook": { + "message": "Cookbook", + "description": "The label for category 'Cookbook' in sidebar 'tools'" + }, + "sidebar.tools.category.Saved": { + "message": "Saved", + "description": "The label for category 'Saved' in sidebar 'tools'" + }, + "sidebar.tools.category.View XDR": { + "message": "View XDR", + "description": "The label for category 'View XDR' in sidebar 'tools'" + }, + "sidebar.hubble.category.Bronze 🥉": { + "message": "Bronze 🥉", + "description": "The label for category 'Bronze 🥉' in sidebar 'hubble'" + }, + "sidebar.hubble.category.Silver 🥈": { + "message": "Silver 🥈", + "description": "The label for category 'Silver 🥈' in sidebar 'hubble'" + }, + "sidebar.hubble.category.Gold 🥇": { + "message": "Gold 🥇", + "description": "The label for category 'Gold 🥇' in sidebar 'hubble'" + }, + "sidebar.analytics.category.Bronze 🥉": { + "message": "Bronze 🥉", + "description": "The label for category 'Bronze 🥉' in sidebar 'analytics'" + }, + "sidebar.analytics.category.Silver 🥈": { + "message": "Silver 🥈", + "description": "The label for category 'Silver 🥈' in sidebar 'analytics'" + }, + "sidebar.analytics.category.Gold 🥇": { + "message": "Gold 🥇", + "description": "The label for category 'Gold 🥇' in sidebar 'analytics'" + }, + "sidebar.galexie.category.galexie-example-usages": { + "message": "Example Usages", + "description": "The label for category 'Example Usages' in sidebar 'galexie'" + }, + "sidebar.ingest.category.ingest-sdk-example-usages": { + "message": "Example Usages", + "description": "The label for category 'Example Usages' in sidebar 'ingest'" + }, + "sidebar.soroban_rpc.category.rpc-admin-guide": { + "message": "Admin Guide", + "description": "The label for category 'Admin Guide' in sidebar 'soroban_rpc'" + }, + "sidebar.soroban_rpc.category.rpc-api-reference": { + "message": "API Reference", + "description": "The label for category 'API Reference' in sidebar 'soroban_rpc'" + }, + "sidebar.soroban_rpc.category.rpc-api-structure": { + "message": "Structure", + "description": "The label for category 'Structure' in sidebar 'soroban_rpc'" + }, + "sidebar.apis.category.rpc-admin-guide": { + "message": "Admin Guide", + "description": "The label for category 'Admin Guide' in sidebar 'apis'" + }, + "sidebar.apis.category.rpc-api-reference": { + "message": "API Reference", + "description": "The label for category 'API Reference' in sidebar 'apis'" + }, + "sidebar.apis.category.rpc-api-structure": { + "message": "Structure", + "description": "The label for category 'Structure' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-admin-guide": { + "message": "Admin Guide", + "description": "The label for category 'Admin Guide' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-api-reference": { + "message": "API Reference", + "description": "The label for category 'API Reference' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-api-structure": { + "message": "Structure", + "description": "The label for category 'Structure' in sidebar 'apis'" + }, + "sidebar.indexers.category.galexie-example-usages": { + "message": "Example Usages", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.indexers.category.ingest-sdk-example-usages": { + "message": "Example Usages", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.indexers.category.token-transfer-processor-example-usages": { + "message": "Example Usages", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.anchor_platform.category.Anchor Platform": { + "message": "Anchor Platform", + "description": "The label for category 'Anchor Platform' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Admin Guide": { + "message": "Admin Guide", + "description": "The label for category 'Admin Guide' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Event Handling": { + "message": "Event Handling", + "description": "The label for category 'Event Handling' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.API Reference": { + "message": "API Reference", + "description": "The label for category 'API Reference' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Platform Server": { + "message": "Platform Server", + "description": "The label for category 'Platform Server' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Transactions": { + "message": "Transactions", + "description": "The label for category 'Transactions' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.JSON-RPC API": { + "message": "JSON-RPC API", + "description": "The label for category 'JSON-RPC API' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Methods": { + "message": "Methods", + "description": "The label for category 'Methods' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Callbacks Server": { + "message": "Callbacks Server", + "description": "The label for category 'Callbacks Server' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.SEP Guides": { + "message": "SEP Guides", + "description": "The label for category 'SEP Guides' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals (SEP-6)": { + "message": "Programmatic Deposits and Withdrawals (SEP-6)", + "description": "The label for category 'Programmatic Deposits and Withdrawals (SEP-6)' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals (SEP-24)": { + "message": "Hosted Deposits and Withdrawals (SEP-24)", + "description": "The label for category 'Hosted Deposits and Withdrawals (SEP-24)' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Cross-Border Payments (SEP-31)": { + "message": "Cross-Border Payments (SEP-31)", + "description": "The label for category 'Cross-Border Payments (SEP-31)' in sidebar 'anchor_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Stellar Disbursement Platform": { + "message": "Stellar Disbursement Platform", + "description": "The label for category 'Stellar Disbursement Platform' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin Guide": { + "message": "Admin Guide", + "description": "The label for category 'Admin Guide' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin Guide.link.generated-index.description": { + "message": "All you need to know about setting up, running, and using the Stellar Disbursement Platform.", + "description": "The generated-index page description for category 'Admin Guide' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.User Interface": { + "message": "User Interface", + "description": "The label for category 'User Interface' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Reference": { + "message": "API Reference", + "description": "The label for category 'API Reference' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Reference.link.generated-index.description": { + "message": "View all Stellar Disbursement Platform API information.", + "description": "The generated-index page description for category 'API Reference' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin (Tenant Management)": { + "message": "Admin (Tenant Management)", + "description": "The label for category 'Admin (Tenant Management)' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Authentication": { + "message": "Authentication", + "description": "The label for category 'Authentication' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Keys": { + "message": "API Keys", + "description": "The label for category 'API Keys' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Balances": { + "message": "Balances", + "description": "The label for category 'Balances' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Bridge Integration": { + "message": "Bridge Integration", + "description": "The label for category 'Bridge Integration' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Disbursements": { + "message": "Disbursements", + "description": "The label for category 'Disbursements' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Organization": { + "message": "Organization", + "description": "The label for category 'Organization' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Payments": { + "message": "Payments", + "description": "The label for category 'Payments' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Profile": { + "message": "Profile", + "description": "The label for category 'Profile' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Receivers": { + "message": "Receivers", + "description": "The label for category 'Receivers' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Registration": { + "message": "Registration", + "description": "The label for category 'Registration' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Statistics": { + "message": "Statistics", + "description": "The label for category 'Statistics' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Users": { + "message": "Users", + "description": "The label for category 'Users' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Exports": { + "message": "Exports", + "description": "The label for category 'Exports' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Wallets": { + "message": "Wallets", + "description": "The label for category 'Wallets' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Tenants": { + "message": "Get All Tenants", + "description": "The label for the doc item 'Get All Tenants' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-tenants" + }, + "sidebar.stellar_disbursement_platform.doc.Create Tenant": { + "message": "Create Tenant", + "description": "The label for the doc item 'Create Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Tenant": { + "message": "Retrieve a Tenant", + "description": "The label for the doc item 'Retrieve a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Soft delete a Tenant": { + "message": "Soft delete a Tenant", + "description": "The label for the doc item 'Soft delete a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Tenant": { + "message": "Update a Tenant", + "description": "The label for the doc item 'Update a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Default Tenant": { + "message": "Default Tenant", + "description": "The label for the doc item 'Default Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/default-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Log In": { + "message": "Log In", + "description": "The label for the doc item 'Log In' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/log-in" + }, + "sidebar.stellar_disbursement_platform.doc.Refresh Token": { + "message": "Refresh Token", + "description": "The label for the doc item 'Refresh Token' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/refresh-token" + }, + "sidebar.stellar_disbursement_platform.doc.Provide Multi-Factor Authentication": { + "message": "Provide Multi-Factor Authentication", + "description": "The label for the doc item 'Provide Multi-Factor Authentication' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/authenticate-mfa" + }, + "sidebar.stellar_disbursement_platform.doc.Forgot Password": { + "message": "Forgot Password", + "description": "The label for the doc item 'Forgot Password' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/forgot-password" + }, + "sidebar.stellar_disbursement_platform.doc.Reset Rassword": { + "message": "Reset Rassword", + "description": "The label for the doc item 'Reset Rassword' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/reset-password" + }, + "sidebar.stellar_disbursement_platform.doc.List API Keys": { + "message": "List API Keys", + "description": "The label for the doc item 'List API Keys' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-api-keys" + }, + "sidebar.stellar_disbursement_platform.doc.Create API Key": { + "message": "Create API Key", + "description": "The label for the doc item 'Create API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Get API Key Details": { + "message": "Get API Key Details", + "description": "The label for the doc item 'Get API Key Details' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Update API Key": { + "message": "Update API Key", + "description": "The label for the doc item 'Update API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Delete API Key": { + "message": "Delete API Key", + "description": "The label for the doc item 'Delete API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Get Organization (Circle) Balances": { + "message": "Get Organization (Circle) Balances", + "description": "The label for the doc item 'Get Organization (Circle) Balances' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances" + }, + "sidebar.stellar_disbursement_platform.doc.Get Bridge Integration Status": { + "message": "Get Bridge Integration Status", + "description": "The label for the doc item 'Get Bridge Integration Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-bridge-integration" + }, + "sidebar.stellar_disbursement_platform.doc.Update Bridge Integration Status": { + "message": "Update Bridge Integration Status", + "description": "The label for the doc item 'Update Bridge Integration Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-bridge-integration" + }, + "sidebar.stellar_disbursement_platform.doc.List All Disbursements": { + "message": "List All Disbursements", + "description": "The label for the doc item 'List All Disbursements' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-disbursements" + }, + "sidebar.stellar_disbursement_platform.doc.Create Disbursement": { + "message": "Create Disbursement", + "description": "The label for the doc item 'Create Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Disbursement": { + "message": "Retrieve a Disbursement", + "description": "The label for the doc item 'Retrieve a Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.Deletes a Draft Disbursement": { + "message": "Deletes a Draft Disbursement", + "description": "The label for the doc item 'Deletes a Draft Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.List All Disbursement Receivers": { + "message": "List All Disbursement Receivers", + "description": "The label for the doc item 'List All Disbursement Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers" + }, + "sidebar.stellar_disbursement_platform.doc.Download Disbursement Instructions": { + "message": "Download Disbursement Instructions", + "description": "The label for the doc item 'Download Disbursement Instructions' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions" + }, + "sidebar.stellar_disbursement_platform.doc.Upload Disbursement Instructions": { + "message": "Upload Disbursement Instructions", + "description": "The label for the doc item 'Upload Disbursement Instructions' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Disbursement Status": { + "message": "Update a Disbursement Status", + "description": "The label for the doc item 'Update a Disbursement Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status" + }, + "sidebar.stellar_disbursement_platform.doc.Get Organization Info": { + "message": "Get Organization Info", + "description": "The label for the doc item 'Get Organization Info' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-info" + }, + "sidebar.stellar_disbursement_platform.doc.Update Organization Profile": { + "message": "Update Organization Profile", + "description": "The label for the doc item 'Update Organization Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-organization-profile" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Organization Logo": { + "message": "Retrieve Organization Logo", + "description": "The label for the doc item 'Retrieve Organization Logo' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-logo" + }, + "sidebar.stellar_disbursement_platform.doc.Circle Account Setup": { + "message": "Circle Account Setup", + "description": "The label for the doc item 'Circle Account Setup' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/patch-organization-circle" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Assets": { + "message": "Get All Assets", + "description": "The label for the doc item 'Get All Assets' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-assets" + }, + "sidebar.stellar_disbursement_platform.doc.Create Asset": { + "message": "Create Asset", + "description": "The label for the doc item 'Create Asset' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-asset" + }, + "sidebar.stellar_disbursement_platform.doc.Delete Asset": { + "message": "Delete Asset", + "description": "The label for the doc item 'Delete Asset' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-asset" + }, + "sidebar.stellar_disbursement_platform.doc.List All Payments": { + "message": "List All Payments", + "description": "The label for the doc item 'List All Payments' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-payments" + }, + "sidebar.stellar_disbursement_platform.doc.Create Direct Payment": { + "message": "Create Direct Payment", + "description": "The label for the doc item 'Create Direct Payment' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-direct-payment" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Payment": { + "message": "Retrieve a Payment", + "description": "The label for the doc item 'Retrieve a Payment' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment" + }, + "sidebar.stellar_disbursement_platform.doc.Get Profile": { + "message": "Get Profile", + "description": "The label for the doc item 'Get Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-profile" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Profile": { + "message": "Update User Profile", + "description": "The label for the doc item 'Update User Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-profile" + }, + "sidebar.stellar_disbursement_platform.doc.List All Receivers": { + "message": "List All Receivers", + "description": "The label for the doc item 'List All Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-receivers" + }, + "sidebar.stellar_disbursement_platform.doc.Create Receiver": { + "message": "Create Receiver", + "description": "The label for the doc item 'Create Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Receiver": { + "message": "Retrieve a Receiver", + "description": "The label for the doc item 'Retrieve a Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Receiver": { + "message": "Update a Receiver", + "description": "The label for the doc item 'Update a Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Start Wallet Registration": { + "message": "Start Wallet Registration", + "description": "The label for the doc item 'Start Wallet Registration' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/start-wallet-registration" + }, + "sidebar.stellar_disbursement_platform.doc.Send One-Time Passcode": { + "message": "Send One-Time Passcode", + "description": "The label for the doc item 'Send One-Time Passcode' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode" + }, + "sidebar.stellar_disbursement_platform.doc.Verify Receiver Registration": { + "message": "Verify Receiver Registration", + "description": "The label for the doc item 'Verify Receiver Registration' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Stellar Info File": { + "message": "Retrieve Stellar Info File", + "description": "The label for the doc item 'Retrieve Stellar Info File' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file" + }, + "sidebar.stellar_disbursement_platform.doc.Request Challenge Transaction": { + "message": "Request Challenge Transaction", + "description": "The label for the doc item 'Request Challenge Transaction' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction" + }, + "sidebar.stellar_disbursement_platform.doc.Provide Signed Challenge Transaction": { + "message": "Provide Signed Challenge Transaction", + "description": "The label for the doc item 'Provide Signed Challenge Transaction' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction" + }, + "sidebar.stellar_disbursement_platform.doc.Request Registration URL": { + "message": "Request Registration URL", + "description": "The label for the doc item 'Request Registration URL' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/request-registration-url" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve All Statistics": { + "message": "Retrieve All Statistics", + "description": "The label for the doc item 'Retrieve All Statistics' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Disbursement Statistics": { + "message": "Retrieve Disbursement Statistics", + "description": "The label for the doc item 'Retrieve Disbursement Statistics' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Users": { + "message": "Get All Users", + "description": "The label for the doc item 'Get All Users' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-users" + }, + "sidebar.stellar_disbursement_platform.doc.Create User": { + "message": "Create User", + "description": "The label for the doc item 'Create User' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-user" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Activation Status": { + "message": "Update User Activation Status", + "description": "The label for the doc item 'Update User Activation Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-activation-status" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Roles": { + "message": "Get All Roles", + "description": "The label for the doc item 'Get All Roles' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-roles" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Role": { + "message": "Update User Role", + "description": "The label for the doc item 'Update User Role' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-role" + }, + "sidebar.stellar_disbursement_platform.doc.Export Disbursements": { + "message": "Export Disbursements", + "description": "The label for the doc item 'Export Disbursements' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-disbursements" + }, + "sidebar.stellar_disbursement_platform.doc.Export Payments": { + "message": "Export Payments", + "description": "The label for the doc item 'Export Payments' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-payments-csv" + }, + "sidebar.stellar_disbursement_platform.doc.Export Receivers": { + "message": "Export Receivers", + "description": "The label for the doc item 'Export Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-receivers-csv" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Wallets": { + "message": "Get All Wallets", + "description": "The label for the doc item 'Get All Wallets' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-wallets" + }, + "sidebar.stellar_disbursement_platform.doc.Create Wallet": { + "message": "Create Wallet", + "description": "The label for the doc item 'Create Wallet' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-wallet" + }, + "sidebar.stellar_disbursement_platform.doc.Update Wallet": { + "message": "Update Wallet", + "description": "The label for the doc item 'Update Wallet' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-wallet" } } diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json index 1a38d648d7..b7831aa765 100644 --- a/i18n/en/docusaurus-theme-classic/footer.json +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -53,7 +53,7 @@ }, "link.item.label.All Tools": { "message": "All Tools", - "description": "The label of footer link with label=All Tools linking to https://developers.stellar.org/docs/tools/developer-tools" + "description": "The label of footer link with label=All Tools linking to /docs/tools" }, "link.item.label.Contribute to Docs": { "message": "Contribute to Docs", @@ -90,5 +90,9 @@ "link.item.label.Grants & Funding": { "message": "Grants & Funding", "description": "The label of footer link with label=Grants & Funding linking to https://stellar.org/foundation/grants-and-funding" + }, + "link.item.label.Developer Meetings": { + "message": "Developer Meetings", + "description": "The label of footer link with label=Developer Meetings linking to /meetings" } } diff --git a/i18n/en/docusaurus-theme-classic/navbar.json b/i18n/en/docusaurus-theme-classic/navbar.json index 5ece33baa2..fd3eac0c8d 100644 --- a/i18n/en/docusaurus-theme-classic/navbar.json +++ b/i18n/en/docusaurus-theme-classic/navbar.json @@ -27,10 +27,6 @@ "message": "Validators", "description": "Navbar item with label Validators" }, - "item.label.Meetings": { - "message": "Meetings", - "description": "Navbar item with label Meetings" - }, "item.label.Overview": { "message": "Overview", "description": "Navbar item with label Overview" @@ -111,10 +107,6 @@ "message": "RPC", "description": "Navbar item with label RPC" }, - "item.label.CLI": { - "message": "CLI", - "description": "Navbar item with label CLI" - }, "item.label.State Archival": { "message": "State Archival", "description": "Navbar item with label State Archival" @@ -167,10 +159,6 @@ "message": "Ramps (anchors)", "description": "Navbar item with label Ramps (anchors)" }, - "item.label.Glossary": { - "message": "Glossary", - "description": "Navbar item with label Glossary" - }, "item.label.Migrate from Another Chain": { "message": "Migrate from Another Chain", "description": "Navbar item with label Migrate from Another Chain" @@ -267,10 +255,6 @@ "message": "Stellar Disbursement Platform", "description": "Navbar item with label Stellar Disbursement Platform" }, - "item.label.Network Configuration": { - "message": "Network Configuration", - "description": "Navbar item with label Network Configuration" - }, "item.label.Software Versions": { "message": "Software Versions", "description": "Navbar item with label Software Versions" @@ -295,8 +279,36 @@ "message": "Contract Authorization", "description": "Navbar item with label Contract Authorization" }, + "item.label.OpenZeppelin Relayer": { + "message": "OpenZeppelin Relayer", + "description": "Navbar item with label OpenZeppelin Relayer" + }, "item.label.OpenZeppelin Contracts": { "message": "OpenZeppelin Contracts", "description": "Navbar item with label OpenZeppelin Contracts" + }, + "item.label.Tutorial: Payment Application, Swift": { + "message": "Tutorial: Payment Application, Swift", + "description": "Navbar item with label Tutorial: Payment Application, Swift" + }, + "item.label.SDEX": { + "message": "SDEX", + "description": "Navbar item with label SDEX" + }, + "item.label.RPC Providers": { + "message": "RPC Providers", + "description": "Navbar item with label RPC Providers" + }, + "item.label.Horizon Providers": { + "message": "Horizon Providers", + "description": "Navbar item with label Horizon Providers" + }, + "item.label.Scaffold Stellar": { + "message": "Scaffold Stellar", + "description": "Navbar item with label Scaffold Stellar" + }, + "item.label.Networks Overview": { + "message": "Networks Overview", + "description": "Navbar item with label Networks Overview" } } diff --git a/i18n/es/code.json b/i18n/es/code.json index 069f85031e..3ea4f3842c 100644 --- a/i18n/es/code.json +++ b/i18n/es/code.json @@ -15,10 +15,6 @@ "message": "La documentación para este idioma está actualmente en progreso. Parte de la información puede no ser aplicable a este idioma, o puede faltar. Los ejemplos de código pueden estar incompletos.", "description": "For the Wallets SDK, if a given programming language is incomplete, display an admonition warning the user" }, - "components.CanvasFeeGraphs.Loading": { - "message": "Cargando...", - "description": "Placeholder loading string for when the real-time fee graphs are loading" - }, "components.ExampleResponse.Example": { "message": "Ejemplo", "description": "The default title for a table of example API responses" @@ -31,14 +27,6 @@ "message": "¿Te fue útil esta página?", "description": "A prompt to invite the reader to click a thumbsup/thumbsdown button" }, - "components.ReaderFeedback.ThumbsUp.Alt": { - "message": "Me gusta", - "description": "The alt value for the thumbsup icon" - }, - "components.ReaderFeedback.ThumbsDown.Alt": { - "message": "No me gusta", - "description": "The alt value for the thumbsdown icon" - }, "theme.NotFound.title": { "message": "Página no encontrada", "description": "The title of the 404 page" @@ -475,7 +463,7 @@ }, "theme.SearchPage.algoliaLabel": { "message": "Buscar por Algolia", - "description": "The ARIA label for Algolia mention" + "description": "The description label for Algolia mention" }, "theme.SearchPage.noResultsText": { "message": "No se encontraron resultados", @@ -503,15 +491,15 @@ }, "theme.SearchModal.startScreen.noRecentSearchesText": { "message": "Sin búsquedas recientes", - "description": "The text when no recent searches" + "description": "The text when there are no recent searches" }, "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { "message": "Guardar esta búsqueda", - "description": "The label for save recent search button" + "description": "The title for save recent search button" }, "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { "message": "Eliminar esta búsqueda del historial", - "description": "The label for remove recent search button" + "description": "The title for remove recent search button" }, "theme.SearchModal.startScreen.favoriteSearchesTitle": { "message": "Favorito", @@ -519,63 +507,63 @@ }, "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { "message": "Eliminar esta búsqueda de favoritos", - "description": "The label for remove favorite search button" + "description": "The title for remove favorite search button" }, "theme.SearchModal.errorScreen.titleText": { "message": "No se pudieron obtener resultados", - "description": "The title for error screen of search modal" + "description": "The title for error screen" }, "theme.SearchModal.errorScreen.helpText": { "message": "Es posible que desees comprobar tu conexión de red.", - "description": "The help text for error screen of search modal" + "description": "The help text for error screen" }, "theme.SearchModal.footer.selectText": { "message": "para seleccionar", - "description": "The explanatory text of the action for the enter key" + "description": "The select text for footer" }, "theme.SearchModal.footer.selectKeyAriaLabel": { "message": "Tecla Intro", - "description": "The ARIA label for the Enter key button that makes the selection" + "description": "The ARIA label for select key in footer" }, "theme.SearchModal.footer.navigateText": { "message": "para navegar", - "description": "The explanatory text of the action for the Arrow up and Arrow down key" + "description": "The navigate text for footer" }, "theme.SearchModal.footer.navigateUpKeyAriaLabel": { "message": "Tecla de flecha hacia arriba", - "description": "The ARIA label for the Arrow up key button that makes the navigation" + "description": "The ARIA label for navigate up key in footer" }, "theme.SearchModal.footer.navigateDownKeyAriaLabel": { "message": "Tecla de flecha hacia abajo", - "description": "The ARIA label for the Arrow down key button that makes the navigation" + "description": "The ARIA label for navigate down key in footer" }, "theme.SearchModal.footer.closeText": { "message": "para cerrar", - "description": "The explanatory text of the action for Escape key" + "description": "The close text for footer" }, "theme.SearchModal.footer.closeKeyAriaLabel": { "message": "Tecla Escape", - "description": "The ARIA label for the Escape key button that close the modal" + "description": "The ARIA label for close key in footer" }, "theme.SearchModal.footer.searchByText": { "message": "Buscar por", - "description": "The text explain that the search is making by Algolia" + "description": "The 'Powered by' text for footer" }, "theme.SearchModal.noResultsScreen.noResultsText": { "message": "Sin resultados para", - "description": "The text explains that there are no results for the following search" + "description": "The text when there are no results" }, "theme.SearchModal.noResultsScreen.suggestedQueryText": { "message": "Intenta buscar", - "description": "The text for the suggested query when no results are found for the following search" + "description": "The text for suggested query" }, "theme.SearchModal.noResultsScreen.reportMissingResultsText": { "message": "¿Crees que esta consulta debería devolver resultados?", - "description": "The text for the question where the user thinks there are missing results" + "description": "The text for reporting missing results" }, "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { "message": "Háznoslo saber.", - "description": "The text for the link to report missing results" + "description": "The link text for reporting missing results" }, "theme.SearchModal.placeholder": { "message": "Buscar docs", @@ -644,5 +632,117 @@ "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { "message": "Contraer el menú desplegable", "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "components.ReaderFeedback.ThumbsUp.Title": { + "message": "Me gusta", + "description": "The title value for the thumbsup icon" + }, + "components.ReaderFeedback.ThumbsDown.Title": { + "message": "No me gusta", + "description": "The title value for the thumbsdown icon" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(se abre en una nueva pestaña)", + "description": "The ARIA label for the external link icon" + }, + "theme.SearchModal.searchBox.placeholderText": { + "message": "Buscar en la documentación", + "description": "The placeholder text for the main search input field" + }, + "theme.SearchModal.searchBox.placeholderTextAskAi": { + "message": "Haz otra pregunta...", + "description": "The placeholder text when in AI question mode" + }, + "theme.SearchModal.searchBox.placeholderTextAskAiStreaming": { + "message": "Respondiendo...", + "description": "The placeholder text for search box when AI is streaming an answer" + }, + "theme.SearchModal.searchBox.enterKeyHint": { + "message": "buscar", + "description": "The hint for the search box enter key text" + }, + "theme.SearchModal.searchBox.enterKeyHintAskAi": { + "message": "entrar", + "description": "The hint for the Ask AI search box enter key text" + }, + "theme.SearchModal.searchBox.searchInputLabel": { + "message": "Buscar", + "description": "The ARIA label for search input" + }, + "theme.SearchModal.searchBox.backToKeywordSearchButtonText": { + "message": "Volver a la búsqueda por palabra clave", + "description": "The text for back to keyword search button" + }, + "theme.SearchModal.searchBox.backToKeywordSearchButtonAriaLabel": { + "message": "Volver a la búsqueda por palabra clave", + "description": "The ARIA label for back to keyword search button" + }, + "theme.SearchModal.startScreen.recentConversationsTitle": { + "message": "Conversaciones recientes", + "description": "The title for recent conversations" + }, + "theme.SearchModal.startScreen.removeRecentConversationButtonTitle": { + "message": "Eliminar esta conversación del historial", + "description": "The title for remove recent conversation button" + }, + "theme.SearchModal.resultsScreen.askAiPlaceholder": { + "message": "Preguntar a AI: ", + "description": "The placeholder text for Ask AI input" + }, + "theme.SearchModal.askAiScreen.disclaimerText": { + "message": "Las respuestas se generan con AI, que puede cometer errores. Verifica las respuestas.", + "description": "The disclaimer text for AI answers" + }, + "theme.SearchModal.askAiScreen.relatedSourcesText": { + "message": "Fuentes relacionadas", + "description": "The text for related sources" + }, + "theme.SearchModal.askAiScreen.thinkingText": { + "message": "Pensando...", + "description": "The text when AI is thinking" + }, + "theme.SearchModal.askAiScreen.copyButtonText": { + "message": "Copiar", + "description": "The text for copy button" + }, + "theme.SearchModal.askAiScreen.copyButtonCopiedText": { + "message": "¡Copiado!", + "description": "The text for copy button when copied" + }, + "theme.SearchModal.askAiScreen.copyButtonTitle": { + "message": "Copiar", + "description": "The title for copy button" + }, + "theme.SearchModal.askAiScreen.likeButtonTitle": { + "message": "Me gusta", + "description": "The title for like button" + }, + "theme.SearchModal.askAiScreen.dislikeButtonTitle": { + "message": "No me gusta", + "description": "The title for dislike button" + }, + "theme.SearchModal.askAiScreen.thanksForFeedbackText": { + "message": "¡Gracias por tus comentarios!", + "description": "The text for thanks for feedback" + }, + "theme.SearchModal.askAiScreen.preToolCallText": { + "message": "Buscando...", + "description": "The text before tool call" + }, + "theme.SearchModal.askAiScreen.duringToolCallText": { + "message": "Buscando ", + "description": "The text during tool call" + }, + "theme.SearchModal.askAiScreen.afterToolCallText": { + "message": "Buscado por", + "description": "The text after tool call" + }, + "theme.SearchModal.footer.submitQuestionText": { + "message": "Enviar pregunta", + "description": "The submit question text for footer" + }, + "theme.SearchModal.footer.backToSearchText": { + "message": "Volver a la búsqueda", + "description": "The back to search text for footer" } } diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-01-26.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-01-26.mdx index 5f131c7b17..38cb149017 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-01-26.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-01-26.mdx @@ -29,6 +29,6 @@ tags: 2. Definitivamente hay algo aquí que deberíamos abordar para facilitar las pruebas contra el estado del ledger específico 5. ¿Cómo obtienes una lista de contratos inteligentes? - [hilo](https://discord.com/channels/897514728459468821/1199121845656486009/1199739331078803496) 1. Observar operaciones de creación de contratos a medida que los ledgers se cierran - 2. Usar un [servicio de indexación](https://developers.stellar.org/docs/tools/developer-tools/data-indexers.mdx) + 2. Usa un [servicio de indexación](/docs/data/indexers) 6. ¿Cuál es el estado del soporte de caché de contratos? - [pregunta](https://discord.com/channels/897514728459468821/1199121845656486009/1200484710447587490) 1. [respuesta](https://discord.com/channels/897514728459468821/1199121845656486009/1200516877680644276) diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-03-21.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-03-21.mdx index 01a351b791..064c9d1059 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-03-21.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-03-21.mdx @@ -18,5 +18,5 @@ tags: 2. Se explica que las invocaciones de solo lectura para contratos garantizan que ciertas funciones sigan siendo de solo lectura sin efectos secundarios. (https://github.com/stellar/stellar-protocol/discussions/1454) (https://github.com/stellar/stellar-protocol/discussions/1456) (https://github.com/stellar/stellar-protocol/discussions/1464) 3. Se introduce la habilitación del descubrimiento de contratos para mejorar la visibilidad y autenticidad de los contratos inteligentes dentro del ecosistema Stellar. 4. Se propone la implementación de un esquema de metadatos estándar de contrato para vincular contratos con código fuente y mejorar la capacidad de descubrimiento de contratos.(https://docs.rs/soroban-sdk/latest/soroban_sdk/macro.contractmeta.html) -5. Las incidencias relacionadas con las tarifas de inclusión en la red Stellar destacan la importancia de monitorear las tarifas de cerca y comprender las implicaciones de los precios de aumento. (https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee) +5. Problemas relacionados con las tarifas de inclusión en la red Stellar, destacando la importancia de monitorear las tarifas de cerca y entender las implicaciones del [precios variables](/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee) 6. Se discuten planes para diseñar un nuevo punto final RPC que brinde a los desarrolladores mejor visibilidad e información sobre el establecimiento de tarifas de inclusión, con el objetivo de mejorar la transparencia y la toma de decisiones respecto a las compensaciones de tarifas. diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-07-11.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-07-11.mdx index eff52843a2..886abc9aa6 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-07-11.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-07-11.mdx @@ -14,5 +14,5 @@ tags: 1. 2. [Las diapositivas](https://docs.google.com/presentation/d/1QsCwFLFcDF4RmNIwtSSnNrUfZb0RM0kLxOOxC7ENY5M/edit#slide=id.g2cb5821e4de_1_1143) están disponibles públicamente y son legibles de forma asíncrona. 2. 4. Comparte tus consultas y publica preguntas en #hubble en discord de Stellar, que es un canal dedicado a temas relacionados con datos. -3. Los consejos para el análisis de datos también se cubren en [la documentación](https://developers.stellar.org/docs/data/hubble/analyst-guide) +3. También se incluyen consejos para el análisis de datos en [docs](/docs/data/analytics/hubble/analyst-guide) 4. Comparte tus consultas y publica preguntas en #hubble en el Discord de Stellar, que es un canal dedicado a temas relacionados con datos. diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-08-22.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-08-22.mdx index 4b9396c67f..46b3c0fe1e 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-08-22.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-08-22.mdx @@ -16,7 +16,7 @@ tags: Los desarrolladores principales discutieron las últimas propuestas para avanzar en Stellar Core en la reunión de protocolo de esta semana. -1. La propuesta para la adición de un constructor a la variante de Rust de Soroban fue introducida en una reunión de protocolo anterior ([reunión anterior](https://developers.stellar.org/meetings/2024/07/25)), documentada en [CAP-58](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0058.md). Un constructor es una función que solo se ejecutará la primera vez que se crea el contrato. +1. La propuesta para la adición de un constructor a la variante de Rust de Soroban fue introducida en una reunión de protocolo anterior ([reunión previa](./2024-07-25.mdx)), documentada en [CAP-58](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0058.md). Un constructor es una función que solo se ejecutará la primera vez que se crea el contrato. 2. En esta reunión, Dima discutió las actualizaciones realizadas desde la última reunión: 1. Constructor por defecto - si un constructor no se define explícitamente, el contrato se trata como si tuviera un constructor 2. Semántica del valor de retorno - si la transacción tiene éxito, se requiere que devuelva un valor válido diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-12-05.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-12-05.mdx index 02803a6f0b..69bb56e4fa 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-12-05.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-12-05.mdx @@ -5,13 +5,8 @@ tags: - developer --- - -
-En la llamada de esta semana hablamos con Alberto Chaves de Trustless Work sobre desarrollar -un servicio de custodia en Stellar, seguido de una rápida introducción al uso de herramientas -basadas en IA para desarrollar contratos inteligentes Soroban. +import YouTube from "@site/src/components/YouTube"; + + + +En la llamada de esta semana hablamos con Alberto Chaves de Trustless Work sobre cómo desarrollar un servicio de depósito en Stellar, seguido de una breve introducción al uso de herramientas basadas en IA para desarrollar contratos inteligentes Soroban. diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-12-12.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-12-12.mdx index ee01b1c6b3..9ac88bf1f6 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-12-12.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-12-12.mdx @@ -5,12 +5,8 @@ tags: - developer --- - -
-En esta reunión, el defensor de desarrolladores de SDF, Chris Anatalio, habla sobre el futuro -stack, incluyendo billeteras de contratos inteligentes y Passkeys. En la segunda mitad, el ingeniero de software principal de SDF, Siddharth Suresh, habla sobre el aumento de los límites de Soroban. +import YouTube from "@site/src/components/YouTube"; + + + +En esta reunión, el Defensor del Desarrollador de SDF, Chris Anatalio, habla sobre el stack futuro, incluyendo las carteras de contratos inteligentes y Passkeys. En la segunda mitad, el Ingeniero de Software Principal de SDF, Siddharth Suresh, habla sobre el aumento de los límites de Soroban. diff --git a/i18n/es/docusaurus-plugin-content-blog/2024-12-19.mdx b/i18n/es/docusaurus-plugin-content-blog/2024-12-19.mdx index 35066af649..8af70bc77d 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2024-12-19.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2024-12-19.mdx @@ -5,12 +5,8 @@ tags: - developer --- - -
-En esta reunión, el ingeniero de software de SDF, Jay, habla sobre los bloques de construcción de BLS, -y muestra ejemplos y demostraciones. +import YouTube from "@site/src/components/YouTube"; + + + +En esta reunión, Jay, ingeniero de software principal de SDF, habla sobre los bloques constructores BLS y presenta ejemplos y demostraciones. diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-01-16.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-01-16.mdx index 75addbe719..0176940e53 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-01-16.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-01-16.mdx @@ -5,12 +5,8 @@ tags: - developer --- - -
-El equipo de DevRel del Ecosistema de Stellar Development Foundation se reunió para hablar -sobre el año pasado y lo que traerá 2025. +import YouTube from "@site/src/components/YouTube"; + + + +El equipo de DevRel del Ecosistema de Stellar Development Foundation se reunió para hablar sobre el año pasado y lo que traerá 2025. diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-01-23.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-01-23.mdx index 3274ae8906..92d42c409a 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-01-23.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-01-23.mdx @@ -5,31 +5,21 @@ tags: - developer --- - -
+import YouTube from "@site/src/components/YouTube"; + + + Parte 1 -
-En la reunión de esta semana, los fundadores de Hoops Finance, Bastian y Tim, hablan sobre el -progreso que han realizado, algunas consideraciones de diseño y el futuro de Hoops -Finance. -
-
- -
+ +En la reunión de esta semana, los fundadores de Hoops Finance, Bastian y Tim, hablaron sobre los avances que han logrado, algunas consideraciones de diseño y el futuro de Hoops Finance. + + + Parte 2 -
-Grabación de una reunión de protocolo donde se discutieron dos Propuestas de Avance Central - -CAP-0062 (Prioritización del Estado En Vivo de Soroban) y CAP-0066 (Recurso de Lectura en Memoria de Soroban). + +Grabación de una reunión del protocolo donde se discutieron dos Propuestas de Avance Central - + +Se discutieron CAP-0062 (Priorización del Estado en Vivo de Soroban) y CAP-0066 (Recurso de Lectura en Memoria de Soroban). Aquí hay varios recursos para leer: diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-01-30.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-01-30.mdx index faad32dbe7..28396ef7b2 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-01-30.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-01-30.mdx @@ -5,36 +5,21 @@ tags: - developer --- - -
+import YouTube from "@site/src/components/YouTube"; + + + Parte 1 -
-RampMeDaddy se unirá a nosotros para esta Reunión de Desarrolladores de Stellar. RampMeDaddy -está participando actualmente en el Programa Stellar x Draper Embark, y preguntamos -qué está haciendo el equipo, aprendemos más sobre lo que están desarrollando y tenemos una charla -casual sobre cómo están construyendo su dapp en Stellar/Soroban. + +RampMeDaddy se unirá a nosotros en esta Reunión de Desarrolladores de Stellar. RampMeDaddy está participando actualmente en el Programa Stellar x Draper Embark, y preguntamos qué está haciendo el equipo, aprendemos más sobre lo que están desarrollando y mantenemos una charla informal sobre cómo están creando su dapp en Stellar/Soroban. Visita su sitio web aquí: https://rampmedaddy.com -
-
- -
+ + Parte 2 -
-En esta reunión del protocolo se discuten dos Propuestas de Avance Central - Dima -presentará CAP-0064 (Autorización de Memo para Soroban), y Graydon presentará -CAP-0065 (Almacenar en Caché Módulo Reutilizable). + +En esta reunión del protocolo se discuten dos Propuestas de Avance del Núcleo: Dima presentará CAP-0064 (Autorización de Memo para Soroban), y Graydon presentará CAP-0065 (Módulo para almacenar en caché reutilizable). Aquí hay algunos recursos: diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-02-06.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-02-06.mdx index 50d0604c36..bc6d51b2bb 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-02-06.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-02-06.mdx @@ -5,14 +5,11 @@ tags: - developer --- +import YouTube from "@site/src/components/YouTube"; + ## Parte 1 - + El equipo de desarrollo detrás de Reflector y Refractor presenta sus herramientas para finanzas descentralizadas y gestión de transacciones en Stellar. Reflector ofrece feeds de precios on-chain para mejorar los protocolos DeFi, mientras que Refractor proporciona un almacenamiento de transacciones pendientes y un agregador de multisig para la firma coordinada. Cubrirán cómo estos productos admiten interacciones financieras sin confianza y mejoran la ejecución de contratos inteligentes en Stellar. @@ -20,18 +17,16 @@ Visita su sitio web aquí: https://reflector.network ## Parte 2 - + En esta reunión de protocolo discutimos dos Propuestas de Avance Central - Dima presentará CAP-0063 (Programación de Transacciones Amigable con el Paralelismo), y Siddharth presentará CAP-0067 (Eventos de Activos Unificados). Aquí hay algunos recursos para revisar: - [CAP-0063](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md) + - [Discusión de CAP-0063](https://github.com/stellar/stellar-protocol/discussions/1602) + - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [Discusión de CAP-0067](https://github.com/stellar/stellar-protocol/discussions/1553) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-02-13.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-02-13.mdx index e8998f73a1..68bf00e784 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-02-13.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-02-13.mdx @@ -5,36 +5,32 @@ tags: - developer --- +import YouTube from "@site/src/components/YouTube"; + ## Parte 1 - + OrbitLens mostrará los servicios de StellarBroker y StellarExpert. StellarBroker es un enrutador de intercambio de liquidez de múltiples fuentes que agrega liquidez de Soroban AMMs, Classic AMMs y libros de órdenes Classic. La segunda parte de la presentación se centrará en los conocimientos sobre contratos inteligentes de Stellar y en el análisis de transacciones on-chain utilizando el explorador de blockchain StellarExpert. Enlaces: - [StellarBroker](https://stellar.broker) + - [StellarExpert](https://stellar.expert) ## Parte 2 - + En esta reunión del protocolo, discutimos dos Propuestas de Avance Clave: Dima está presentando CAP-0068 y CAP-0069, ambas añaden nuevas funciones de host. Aquí hay algunos recursos para leer: - [CAP-0068](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) + - [Discusión sobre CAP-0068](https://github.com/stellar/stellar-protocol/discussions/1626) + - [CAP-0069](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md) + - [Discusión sobre CAP-0069](https://github.com/stellar/stellar-protocol/discussions/1633) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-02-20.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-02-20.mdx index 3387256032..3778b17e15 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-02-20.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-02-20.mdx @@ -5,35 +5,30 @@ tags: - developer --- +import YouTube from "@site/src/components/YouTube"; + ## Parte 1 - + Elliot Voris, defensor del SDF, da una introducción al proyecto KaleFail y cubre cómo se desarrolló, su propósito y características futuras. KaleFail se basa en el proyecto KALE de Kalepail y ambos sirven como aplicaciones de demostración totalmente desarrolladas, mostrando características clave de Stellar/Soroban. Enlaces: - [KaleFail](https://kalefail.elliotfriend.com) + - [Código Fuente](https://github.com/elliotfriend/project-kalefail) + - [KALE](https://kalepail.com/kale) ## Parte 2 - + En esta reunión del protocolo, se discute una Propuesta de Avance Central - Siddharth Suresh presentará las actualizaciones del memorándum relacionadas con CAP-0067. Aquí hay algunos recursos para leer: - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [Discusión](https://github.com/stellar/stellar-protocol/discussions/1553) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-02-27.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-02-27.mdx index c1f10255f5..b4eb1c021d 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-02-27.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-02-27.mdx @@ -5,36 +5,32 @@ tags: - developer --- +import YouTube from "@site/src/components/YouTube"; + ## Parte 1 - + Blend, un protocolo de liquidez universal desarrollado en Stellar/Soroban, se está preparando para lanzar la V2 y lanzó la competencia de Auditoría de Blend V2 + Verificación Formal de Certora el pasado lunes. Hay $125K en USDC disponibles, y el equipo se está uniendo a la reunión de esta semana para hablar sobre la competencia y revisar algo de código. ¡Únete para aprender más sobre Blend y la competencia! Enlaces: - [Blend](https://www.blend.capital) + - [Competencia](https://code4rena.com/audits/2025-02-blend-v2-audit-certora-formal-verification) ## Parte 2 - + En esta reunión del protocolo se discuten los prototipos de Dima y Leigh para manejar memos/cuentas muxed en CAP-0067, así como actualizaciones a CAP-0066 (Recurso de Lectura en Memoria de Soroban). Enlaces: - [CAP-0066](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md) + - [Discusión de CAP-0066](https://github.com/stellar/stellar-protocol/discussions/1585) + - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [Discusiones de CAP-0067](https://github.com/stellar/stellar-protocol/discussions/1553#discussioncomment-12306846) y [Discusiones de CAP-0067](https://github.com/stellar/stellar-protocol/discussions/1553#discussioncomment-12309408) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-03-06.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-03-06.mdx index 0fe80c8bb6..615712afa2 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-03-06.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-03-06.mdx @@ -5,17 +5,16 @@ tags: - developer --- - +import YouTube from "@site/src/components/YouTube"; + + En esta reunión, tenemos una conversación con Christian Santagata de OpenZeppelin sobre la asociación multi-año entre Stellar y OpenZeppelin, y hablamos sobre en qué está trabajando el equipo en el ecosistema de Stellar. La conversación incluye temas sobre los contratos de token de Stellar y estándares de token, y cómo utilizar el OpenZeppelin Contract Wizard que ahora admite los contratos de Stellar. Enlaces: - [OpenZeppelin Contract Wizard](https://wizard.openzeppelin.com/stellar) + - [OpenZeppelin Stellar Contracts](https://github.com/OpenZeppelin/stellar-contracts) + - [Dev Walkthrough](https://www.youtube.com/watch?v=iD7ZspsZLVo) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-03-27.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-03-27.mdx index f4f87df523..17c9add7fc 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-03-27.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-03-27.mdx @@ -5,30 +5,24 @@ tags: - developer --- +import YouTube from "@site/src/components/YouTube"; + ## Parte 1 - + Nos estamos reuniendo nuevamente con el equipo de OpenZeppelin para ponernos al día sobre las últimas adiciones de características, y esta vez hemos invitado a dos de sus ingenieros, Boyan Barakov y Ozgun Ozerk, para responder preguntas técnicas de la audiencia. Enlaces: - [OpenZeppelin Contract Wizard](https://wizard.openzeppelin.com/stellar) + - [OpenZeppelin Stellar Contracts](https://github.com/OpenZeppelin/stellar-contracts) + - [Dev Walkthrough](https://www.youtube.com/watch?v=iD7ZspsZLVo) ## Parte 2 - + Esta es una breve reunión protocolaria, haciendo seguimiento de discusiones previas. diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-04-03.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-04-03.mdx index 89c239548e..57ce60f8db 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-04-03.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-04-03.mdx @@ -5,12 +5,9 @@ tags: - developer --- - +import YouTube from "@site/src/components/YouTube"; + + Primero echamos un vistazo a Stellar Lab, se han añadido muchas características y mejoras desde que hicimos una presentación de Stellar Lab el año pasado. Stellar Lab es una herramienta poderosa para todos los que desarrollan en Stellar. @@ -19,4 +16,5 @@ Estamos buscando comentarios de la comunidad sobre el SEP de Contratos Actualiza Enlaces: - [Stellar Lab](https://lab.stellar.org) + - [Contratos Actualizables SEP](https://github.com/stellar/stellar-protocol/pull/1671) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-04-10.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-04-10.mdx index 1b24b96a63..89a65351af 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-04-10.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-04-10.mdx @@ -5,12 +5,9 @@ tags: - developer --- - +import YouTube from "@site/src/components/YouTube"; + + Pamphile (más conocido como tupui) es un ingeniero de software senior que trabaja en Bitpanda. Anteriormente trabajó en el equipo que desarrolló Flight Simulator 2020 y creó una empresa de consultoría para trabajar en software de código abierto. diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-04-17.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-04-17.mdx index 90ac9af806..c003d2db03 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-04-17.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-04-17.mdx @@ -5,12 +5,9 @@ tags: - developer --- - +import YouTube from "@site/src/components/YouTube"; + + Esta semana profundizaremos en una de las herramientas más subestimadas: Quickstart. @@ -20,4 +17,4 @@ Conoce Quickstart, descubre cómo instalarlo y cómo desplegar la aplicación de Enlace: -- [Stellar Quickstart](https://developers.stellar.org/docs/tools/quickstart) +- [Inicio rápido de Stellar](/docs/tools/quickstart) diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-05-01.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-05-01.mdx index 8ac1fc6c2d..50774f255a 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-05-01.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-05-01.mdx @@ -5,12 +5,9 @@ tags: - developer --- - +import YouTube from "@site/src/components/YouTube"; + + Estamos cerca de completar la implementación de Whisk, los CAPs del Protocolo 23, el siguiente paso en el ciclo de vida de los CAP es la votación por el equipo Core CAP. En esta reunión del protocolo se proporcionó una actualización sobre los CAPs y se respondieron las preguntas finales de la comunidad. diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-10-16.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-10-16.mdx index a0903c338a..00596a619b 100644 --- a/i18n/es/docusaurus-plugin-content-blog/2025-10-16.mdx +++ b/i18n/es/docusaurus-plugin-content-blog/2025-10-16.mdx @@ -2,7 +2,7 @@ title: 2025-10-16 authors: carstenjacobsen tags: - - desarrollador + - developer --- + +En esta reunión hablamos con Dobprotocol para aprender más sobre cómo utilizan Stellar para crear una plataforma única, convirtiendo máquinas en activos invertibles. + +Sitio web: https://www.dobprotocol.com diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-10-30.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-10-30.mdx new file mode 100644 index 0000000000..dae4eab8de --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-blog/2025-10-30.mdx @@ -0,0 +1,17 @@ +--- +title: 2025-10-30 +authors: carstenjacobsen +tags: + - developer +--- + + + +En esta reunión continuamos nuestra mini serie sobre las herramientas de código abierto basadas en Stellar que OpenZeppelin está desarrollando. En la sesión anterior hablamos brevemente sobre Relayer y esta vez profundizamos en esta herramienta y en OpenZeppelin Managed Service. + +OpenZeppelin Relayer: https://docs.openzeppelin.com/relayer diff --git a/i18n/es/docusaurus-plugin-content-blog/2025-11-06.mdx b/i18n/es/docusaurus-plugin-content-blog/2025-11-06.mdx new file mode 100644 index 0000000000..3d5e6048ec --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-blog/2025-11-06.mdx @@ -0,0 +1,21 @@ +--- +title: 2025-11-06 +authors: carstenjacobsen +tags: + - developer +--- + + + +En esta reunión hacemos un recorrido por las versiones Q3 de la biblioteca de OpenZeppelin para Smart Account, Vault y RWA. + +Enlaces a la documentación: + +- Smart Account: https://docs.openzeppelin.com/stellar-contracts/accounts/smart-account +- Vault: https://docs.openzeppelin.com/stellar-contracts/tokens/vault/vault +- RWA: https://docs.openzeppelin.com/stellar-contracts/tokens/rwa/rwa diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current.json b/i18n/es/docusaurus-plugin-content-docs-ap/current.json index b9a01e53cf..f31d2bf4d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current.json +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current.json @@ -11,18 +11,6 @@ "message": "Guía del administrador", "description": "The label for category Admin Guide in sidebar anchor_platform" }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y retiradas alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y retiradas programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, "sidebar.anchor_platform.category.Custody Services": { "message": "Servicios de custodia", "description": "The label for category Custody Services in sidebar anchor_platform" @@ -63,6 +51,10 @@ "message": "Servidor de custodia", "description": "The label for category Custody Server in sidebar anchor_platform" }, + "sidebar.anchor_platform.category.SEP Guides": { + "message": "Guías SEP", + "description": "The label for category SEP Guides in sidebar anchor_platform" + }, "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals (SEP-24)": { "message": "Depósitos y retiradas de fondos alojados (SEP-24)", "description": "The label for category Hosted Deposits and Withdrawals (SEP-24) in sidebar anchor_platform" diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/CONTRIBUTING.md b/i18n/es/docusaurus-plugin-content-docs-ap/current/CONTRIBUTING.md index 3797f4bfae..bda127cb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/CONTRIBUTING.md +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/CONTRIBUTING.md @@ -8,6 +8,12 @@ draft: true Estamos muy contentos de tenerte aquí, y esperamos que este documento te ayude a entender cómo (y lo más importante, _donde_) hacer los cambios necesarios en nuestra documentación. Comencemos con un poco de vocabulario de Docusaurus, ¿te parece? +## ¡AVISO! AP HA SIDO DESVERSIONADO + +La documentación de Anchor Platform ha sido desversionada, y a partir de ahora solo mantenemos una versión "actual" de los documentos. Por lo tanto, cualquier cosa en esta página que haga referencia a crear una nueva versión, actualizar versiones antiguas, etc., puede ser ignorada. + +Sin embargo, los documentos de Anchor Platform _todavía_ permanecen en su propia instancia de docusaurus. Así que la información aquí sobre vinculación entre/entre instancias sigue siendo relevante. (Esto no será así para siempre, pero por ahora, lo es.) + ## Resumen - Para versiones _no publicadas_ de Anchor Platform: @@ -34,6 +40,7 @@ yarn ap:versions:regen ## Tabla de Contenidos +- [¡AVISO! AP HA SIDO DESVERSIONADO](#notice-ap-has-been-de-versioned) - [Resumen](#tldr) - [Más sobre Docusaurus de lo que nunca quisiste saber](#more-about-docusaurus-than-you-ever-wanted-to-know) - [Nomenclatura de Versiones](#versions-nomenclature) @@ -93,19 +100,21 @@ Así que, en términos prácticos: Esto debería ayudarte a aclarar un poco. -- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/sep6/configuration.mdx` _hasta_ el documento MDX `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: +- Quiero enlazar _desde_ el documento MDX + `/platforms/anchor-platform/sep-guide/sep6/configuration.mdx` _hacia_ el documento MDX + `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: - Estamos en la misma instancia de plugin `/platforms/anchor-platform` - Usa una _ruta de archivo relativa_ - Enlaza a ella `[algo como esto](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` - Quiero enlazar _desde_ el documento MDX `/docs/learn/fundamentals/anchors.mdx` _hasta_ el documento MDX `/platforms/anchor-platform/admin-guide/getting-started.mdx` - Estamos "cruzando" entre las instancias de plugin `/docs` y `/platforms/anchor-platform` - - Usa una _ruta URL absoluta_ + - Usa una ruta de URL **absoluta** - Enlaza a ella `[algo como esto](/platforms/anchor-platform/admin-guide/getting-started)` (nota que no hay extensión `.mdx`) -- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/custody/README.mdx` _hasta_ el documento MDX `/docs/tools/developer-tools/wallets.mdx` +- Quiero vincular _desde_ el documento MDX `/platforms/anchor-platform/README.mdx` _a_ el documento MDX `/docs/tools/developer-tools/wallets.mdx` - Estamos "cruzando" entre las instancias de plugin `/platforms/anchor-platform` y `/docs` - Usa una _ruta URL absoluta_ - Enlaza a ella `[algo como esto](/docs/tools/developer-tools/wallets)` (nota que no hay extensión `.mdx`) -- ¡Wildcard! Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx` _hasta_ el documento MDX `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` +- ¡Wildcard! Quiero vincular _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/events/configuration.mdx` _a_ el documento MDX `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` - Estamos "cruzando" entre las instancias de plugin `/platforms/anchor-platform` y `/platforms/stellar-disbursement-platform` - Usa una _ruta URL absoluta_ - Enlaza a ella `[algo como esto](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` (nota que no hay extensión `.mdx`) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/README.mdx index fbfdbfdc30..0f42b3e9e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/README.mdx @@ -1,14 +1,55 @@ --- title: "La Anchor Platform: Desarrollar y gestionar rampas de acceso y salida en la red Stellar" sidebar_position: 10 -sidebar_label: Introducción a la Anchor Platform +sidebar_label: Descripción del producto description: Aprende cómo la Anchor Platform (AP) simplifica el proceso de desarrollar y gestionar una rampa de acceso y salida Stellar. Infórmate sobre cómo integrarte con la AP o obtén información de la API. --- # Anchor Platform -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y a las empresas crear sus propios servicios de acceso y salida para la red Stellar. Proporciona una interfaz estandarizada, incluyendo la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar a las empresas la integración con billeteras y exchanges basados en Stellar. +La Plataforma Anchor ofrece un conjunto de herramientas y API para construir servicios de rampas de entrada y salida en la red Stellar. Con interfaces estandarizadas e implementaciones completas de propuestas clave del Ecosistema Stellar (SEPs), simplifica la integración con billeteras e intercambios basados en Stellar, permitiéndote centrarte en la lógica principal de tu negocio en lugar de en detalles de la implementación del protocolo. -La plataforma también incluye características para gestionar activos, transacciones y cuentas de usuarios, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de crear y gestionar un servicio financiero basado en Stellar, permitiendo a las empresas centrarse en proporcionar valor a sus clientes. +## SEPs compatibles -Aprende sobre la integración con la Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o consulta la información de la API en la [Referencia de la API](./api-reference/README.mdx). +La Plataforma Anchor implementa las siguientes Propuestas del Ecosistema Stellar: + +- **[SEP-1](sep-guide/sep1/README.mdx)** — Archivo Stellar.toml para el descubrimiento del servicio +- **[SEP-6](sep-guide/sep6/README.mdx)** — Operaciones de depósito y retiro +- **[SEP-10](sep-guide/sep10/README.mdx)** — Autenticación web usando transacciones de desafío/respuesta +- **SEP-12** — Gestión de datos KYC/AML de clientes +- **[SEP-24](sep-guide/sep24/README.mdx)** — Flujos interactivos de depósito y retiro +- **[SEP-31](sep-guide/sep31/integration.mdx)** — Procesamiento de pagos transfronterizos (solo recepción) +- **SEP-38** — Cotizaciones de precios y servicios de tasa de cambio +- **[SEP-45](sep-guide/sep45/README.mdx)** — Autenticación web con desafíos/respuestas para cuentas de contrato + +## Características clave + +- **Implementaciones completas de SEP** — Soporte total para flujos de trabajo de depósito, retiro y procesamiento de pagos +- **Autenticación y autorización** — Soporte de SEP-10 y SEP-45 para cuentas tradicionales y de contratos inteligentes +- **Gestión de clientes** — Integración SEP-12 para cumplimiento KYC/AML y manejo de datos de clientes +- **Procesamiento de transacciones** — Gestión completa del ciclo de vida de transacciones con seguimiento de estado y callbacks mediante webhook +- **Servicios de cotización y cambio** — Integración SEP-38 para descubrimiento de precios y cálculo de tasas de cambio +- **Soporte multi-activo** — Configuración flexible para múltiples activos con varios métodos de depósito y retiro +- **Soporte para contratos inteligentes** — Soporte nativo para cuentas de contrato Stellar (cuentas C) mediante SEP-45 + +## Enlaces de documentación + +- **[Arquitectura](./admin-guide/architecture.mdx)** — Arquitectura del sistema y descripción general de componentes +- **[Comenzar](./admin-guide/getting-started.mdx)** — Instrucciones iniciales para configuración y despliegue +- **[Manejo de eventos](./admin-guide/events/README.mdx)** — Entrega de eventos, webhooks y patrones de integración +- **[Guías SEP](./sep-guide/README.mdx)** — Guías de implementación para Propuestas del Ecosistema Stellar +- **[Referencia API](./api-reference/README.mdx)** — Documentación y referencia completa de la API + +## Recursos adicionales + +La documentación de la Plataforma Anchor está en desarrollo. Los desarrolladores son bienvenidos a explorar el código y la documentación existente en el [repositorio de GitHub](https://github.com/stellar/java-stellar-anchor-sdk). + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md +[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/_category_.json new file mode 100644 index 0000000000..1d4401ab2f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Admin Guide", + "collapsed": false +} + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/architecture.mdx index f8137dc87f..e877a82f75 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/architecture.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/architecture.mdx @@ -11,7 +11,11 @@ Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Los siguientes componentes arquitectónicos son requeridos para todas las implementaciones de la Anchor Platform. -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) +
+ +![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png) + +
#### Cliente @@ -39,27 +43,25 @@ El servidor de plataforma es un componente interno. Debe ser alojado en una red La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se utiliza principalmente para almacenar transacciones. +#### Kafka + +Kafka se utiliza como el núcleo de mensajería para la Plataforma Anchor, facilitando la comunicación e interacciones impulsadas por eventos entre diferentes componentes. Permite que componentes como el servidor SEP, el servidor de negocios y el servicio de eventos publiquen y se suscriban a eventos de transacciones y pagos de manera confiable y escalable. + ### Arquitectura Completa Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidades adicionales. Tu negocio puede elegir cuáles de los componentes adicionales utilizar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos +
+ [![complete anchor platform + architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) +
+#### Event Service El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a clientes registrados y a tu servidor de negocios cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocios consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema de Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Leer más][events] sobre el uso del servicio de eventos. -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para empresas que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el servidor de custodia también puede facilitar pagos salientes a las cuentas Stellar de los clientes. Si también utilizas el servicio de [events], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una integración con tu proveedor de billetera, entonces este componente no es requerido, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform haya sido enviado a o desde tus cuentas Stellar a través de la [Platform API][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Stellar Observer +#### Observador de Pagos -El Stellar Observer, una alternativa al servidor de custodia mencionado anteriormente, monitorea la blockchain de Stellar usando Horizon, detecta automáticamente los pagos de usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [events], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. +El Observador de Pagos monitorea la blockchain Stellar usando Stellar RPC o Horizon, detecta automáticamente los pagos relacionados con el negocio y actualiza las transacciones correspondientes en la base de datos de la Plataforma Anchor. Si también utilizas el servicio de [events], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon, o RPC, entonces este componente no es requerido, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform haya sido realizado a una de tus cuentas Stellar a través de la [Platform API][platform-api]. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/assets-and-client-wallets.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/assets-and-client-wallets.mdx new file mode 100644 index 0000000000..1453b52620 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/assets-and-client-wallets.mdx @@ -0,0 +1,117 @@ +--- +title: Activos y Clientes de Billeteras +sidebar_position: 40 +--- + +# Activos y Clientes de Billeteras + +Esta guía explica cómo configurar activos y clientes de billeteras en la Anchor Platform. + +## Configuración de Activos + +Los activos definen los tokens y monedas que tu Anchor Platform admite para depósitos y retiros. En la guía "Empezando", los activos se configuran en el archivo `config/assets.yaml` mediante el `ap_start.sh`. + +Para la lista completa de campos y valores predeterminados, consulta la [referencia de configuración de activos](https://github.com/stellar/anchor-platform/blob/develop/core/src/main/resources/config/anchor-asset-default-values.yaml). + +### Ejemplo de Configuración de Activos + +```yaml +items: + - id: stellar:native + distribution_account: "G...DIST" + significant_decimals: 7 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + sep24: + enabled: true + sep31: + enabled: true + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD +``` + +### Explicación de Campos + +- **`id`** (Obligatorio) - El identificador del activo en el formato `SCHEMA:CÓDIGO:(EMISOR)` o `stellar:native` que representa XLM, el activo nativo de Stellar. Por ejemplo, `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` representa Circle USD. Para monedas fiduciarias, usa `iso4217:CÓDIGO` (por ejemplo, `iso4217:USD`, `iso4217:CAD`). + +- **`distribution_account`** - La dirección de la cuenta Stellar que posee el activo para distribución. No es necesario para activos fiduciarios (`iso4217`). + +- **`significant_decimals`** - El número de decimales que admite el activo. + +- **`sep6`** - Habilita SEP-6 y configura límites y métodos de depósito/retiro por activo. + +- **`sep24`** - Habilita los flujos interactivos SEP-24 y sus configuraciones por activo. + +- **`sep31`** - Habilita el soporte de pagos transfronterizos SEP-31 para el activo. + +- **`sep38`** - Habilita cotizaciones SEP-38 y `exchangeable_assets` para pares de divisas admitidos. + +## Configuración de Clientes de Billeteras + +Los clientes de billetera son las apps de billetera que se conectan a tu Anchor Platform para realizar transacciones en nombre de los usuarios. + +Para la lista completa de campos y valores predeterminados de clientes, consulta la [referencia de configuración de clientes](https://github.com/stellar/anchor-platform/blob/main/platform/src/main/resources/config/anchor-client-default-values.yaml). + +### Ejemplo de Configuración de Cliente + +```yaml +items: + - name: "referenceCustodial" + type: custodial + signing_keys: + - GDJLB...KLTG + callback_urls: + sep6: https://client.example.com/callbacks/sep6 + sep24: https://client.example.com/callbacks/sep24 + sep31: https://client.example.com/callbacks/sep31 + sep12: https://client.example.com/callbacks/sep12 + - name: "reference" + type: noncustodial + domains: + - wallet-server:8092 + - client.example.com + callback_urls: + ... +``` + +### Explicación de Campos + +**Configuración de Cliente Custodial:** + +- **`name`** (Obligatorio) - Un identificador único para el cliente. + +- **`type: custodial`** (Obligatorio) - El tipo de cliente. Debe establecerse en `custodial` para clientes custodial. + +- **`signing_keys`** (Obligatorio) - Una lista de claves públicas Stellar usadas para la autenticación SEP-10 del cliente. El anchor usa estas claves para verificar que las solicitudes provienen del cliente autorizado. + +- **`callback_urls`** (Opcional) - URLs a las cuales el servicio puede enviar callbacks para diferentes tipos SEP. + - **`sep6`** - URL de callback para actualizaciones del estado de transacciones SEP-6 (depósito/retiro) + - **`sep24`** - URL de callback para actualizaciones del estado de transacciones SEP-24 (depósito/retiro interactivo) + - **`sep31`** - URL de callback para actualizaciones del estado de transacciones SEP-31 (pagos transfronterizos) + - **`sep12`** - URL de callback para actualizaciones de información de cliente SEP-12 (KYC) + +**Configuración de Cliente No Custodial:** + +- **`name`** (Obligatorio) - Un identificador único para el cliente, similar a clientes custodial. Normalmente un nombre que representa claramente a la entidad cliente. + +- **`type: noncustodial`** (Obligatorio) - El tipo de cliente. Debe establecerse en `noncustodial` para clientes no custodial. Los clientes no custodial permiten a los usuarios controlar sus propias claves privadas, y la billetera actúa como interfaz para cuentas controladas por el usuario. + +- **`domains`** (Obligatorio) - Una lista de dominios asociados con el cliente, usados para verificar la identidad del cliente. + +- **`callback_urls`** (Opcional) - URLs a las cuales el servicio puede enviar callbacks para diferentes tipos SEP. Funciona igual que para clientes custodial (ver arriba). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/component/observer/observer.mdx index 5129a0228b..28af649bf0 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/component/observer/observer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/component/observer/observer.mdx @@ -26,11 +26,3 @@ Si ya tienes un sistema que monitorea pagos, asegúrate de que la lógica del si Primero, espera a que la transacción se incluya en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción ha sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). ::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/README.mdx index a29b741ece..405b0dd365 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/README.mdx @@ -1,6 +1,6 @@ --- title: Manejo de eventos -sidebar_position: 85 +sidebar_position: 120 --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/integration.mdx index 7d8ac6142c..caa0d0ec72 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/integration.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/events/integration.mdx @@ -158,4 +158,4 @@ Esto configura la API de devolución de llamada del servicio de eventos que se u - `http_header`: El encabezado en el que se enviará la clave de API. [archivo de valores predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración de clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution +[configuración de clientes]: ../../sep-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/getting-started.mdx index c6ab0bfc5d..73f0fb73c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/getting-started.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/getting-started.mdx @@ -3,433 +3,137 @@ title: Comenzar sidebar_position: 30 --- -## Instalación +# Comenzar -import { CodeExample } from "@site/src/components/CodeExample"; +Esta guía te ayudará a poner en marcha rápidamente la Anchor Platform (solo TESTNET) con una referencia comercial ejecutándose localmente usando Docker Compose. -La forma más sencilla de instalar la Anchor Platform es extraer la [imagen de docker][anchor-platform-image]. +Ten en cuenta que esto no está pensado para ejecutarse en producción. - +## Requisitos previos -```bash -docker pull stellar/anchor-platform:latest -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía usaremos [docker compose][docker-compose] por simplicidad, pero puedes ejecutar la Anchor Platform utilizando otras herramientas que también admiten docker, como [minikube] o un clúster [kubernetes] completamente desarrollado. - -Vamos a crear un archivo de composición mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` le indica a la Anchor Platform que haga disponibles los puntos finales de API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -Para detalles de las configuraciones de Anchor Platform, por favor consulta [`anchor-config-default-values.yaml`](https://github.com/stellar/anchor-platform/blob/main/platform/src/main/resources/config/anchor-config-default-values.yaml), que también define los valores predeterminados de cada campo de configuración. - -Anchor Platform admite dos enfoques para modificar los valores de configuración: - -- usando variables de entorno -- usando un archivo de configuración YAML - -Se puede usar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan utilizando guiones bajos o puntos (`_`, `.`) cuando se usan variables de entorno. Demostraremos ambos enfoques aquí, pero usaremos exclusivamente variables de entorno en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el [archivo de valores por defecto][ap-default-values] de la Anchor Platform. - -:::info +- [Docker](https://www.docker.com/get-started) y Docker Compose instalados +- [Stellar CLI](https://github.com/stellar/stellar-cli) instalado -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En su lugar, los secretos de aplicación, que todos tienen el prefijo `SECRET_`, deben especificarse en el entorno. +## Inicio rápido -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de docker compose. - - +### 1. Clona el repositorio de Anchor Platform ```bash -touch dev.env +git clone https://github.com/stellar/anchor-platform ``` - - -Y si estás utilizando un archivo de configuración YAML, vamos a crear eso también. - - +### 2. Navega al directorio quick-run ```bash -mkdir config -touch config/dev.services.yaml +cd anchor-platform/quick-run ``` - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a añadir una variable de entorno para eso. - - +### 3. Inicia todos los servicios ```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml +./ap_start.sh ``` - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Configurar conexiones con el servidor Horizon o Stellar RPC. +### 4. Verifica que la plataforma esté en funcionamiento -Anchor Platform requiere la conexión ya sea con el servidor Horizon o RPC para funcionar correctamente. Se debe configurar Horizon o RPC. Si SEP-45 está habilitado o se usan cuentas contractuales para transacciones SEP, se debe configurar el servidor RPC. - -#### Usar servidor RPC: - -La lista de proveedores RPC se puede encontrar [aquí](/docs/data/apis/rpc/providers). - - +Espera unos momentos para que los servicios se inicialicen, luego verifica que la plataforma responda: ```bash -# dev.env STELLAR_NETWORK_TYPE=rpc -STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org +curl http://localhost:8080/.well-known/stellar.toml ``` - - -#### Usar servidor Horizon: +Deberías ver devuelto el archivo de configuración Stellar TOML. - +### 5. Verifica el estado del servicio ```bash -# dev.env STELLAR_NETWORK_TYPE=horizon -STELLAR_NETWORK_HORIZON_URL=https://horizon-testnet.stellar.org +docker-compose ps ``` - +Todos los servicios deberían mostrar "Up" en la columna de estado. -### Cambiar el Puerto del Servidor de la Plataforma +## Qué incluye -Por ejemplo, vamos a cambiar el puerto del servidor de la plataforma. +La configuración `quick-run` incluye: -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas la configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especifica los Activos de Tu Servicio - -Vamos a añadir los activos que tu implementación de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás usando la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación Stellar SEP-10, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía construiremos servicios de ancla para el USDC de Circle en la red de pruebas de Stellar. Actualiza los valores anteriores según los activos que vayas a emitir. Asegúrate de especificar el `issuer` de la testnet en tu archivo de desarrollo y crea tu propio `distribution_account` utilizando una herramienta como [Stellar Lab][stellar-lab]. El `distribution_account` será utilizado por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` +- **docker-compose.yaml** - Definiciones completas de servicios con todas las dependencias +- **dev.env** - Variables de entorno preconfiguradas +- **config/** - Archivos de configuración necesarios: + - `assets.yaml` - Definiciones de activos + - `clients.yaml` - Configuraciones de clientes + - `reference-config.yaml` - Configuraciones del servidor de referencia + - `stellar.localhost.toml` - Archivo SEP-1 TOML - - -Este archivo necesita ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para su uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para su uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL admitida por Flyway es PostgreSQL 14. - -Antes de continuar, vamos a añadir una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Solo se necesita una base de datos si se utiliza la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás utilizando configuración YAML en su lugar, las variables de entorno `POSTGRES_` deben estar siempre en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` +:::tip - +Para más información sobre la configuración de activos y billeteras de clientes, consulta la guía [Assets and Client Wallets](./assets-and-client-wallets.mdx). -Tenemos que crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que vamos a hacer un script para crear nuestra base de datos. +::: - +## Pruebas con Stellar Demo Wallet -```bash -touch init.sql -``` +Puedes probar la Anchor Platform usando la [Stellar Demo Wallet](https://demo-wallet.stellar.org): - +1. Abre la [Stellar Demo Wallet](https://demo-wallet.stellar.org) en tu navegador. +2. Haz clic en el botón **"Generate keypair for new account (testnet only)"**. +3. Haz clic en el botón **"Create Account"** junto a la clave PÚBLICA. +4. Ahora deberías ver `XLM` disponible en la sección **Balances**, indicando que tu cuenta está cargada. +5. Haz clic en **"Add home domain"** y escribe la siguiente URL: + ``` + http://localhost:8080 + ``` + Esto conecta la demo wallet con tu instancia local de Anchor Platform ejecutándose en el puerto 8080. +6. Ahora deberías poder realizar transacciones SEP (depósitos, retiros, etc.) con tu instancia local de Anchor Platform. - +## Personalizar configuración -```sql --- init.sql -CREATE DATABASE platform; -``` +Para modificar los ajustes: - +1. Edita `dev.env` para variables de entorno +2. Edita archivos en `config/` para configuraciones específicas de servicios +3. Reinicia los servicios: `docker-compose restart` -Intenta ejecutar el servidor de la plataforma además de la base de datos. +## Detener servicios - +Para detener todos los servicios: ```bash -docker compose up +docker-compose down ``` - - -Deberías ver los registros reportando una conexión exitosa a la base de datos postgres. +## Cómo implementar tu servidor de callback de negocio -### Configurar la Autenticación de la API de la Plataforma +Una vez que tengas la Anchor Platform en funcionamiento, puedes reemplazar el servidor de referencia con tu propia implementación de servidor de callback de negocio. Esto te permite implementar tu propia lógica de negocio para manejar depósitos, retiros y otras operaciones del anchor. -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará recuperar y actualizar registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace públicas las APIs SEP, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciada por la opción `--platform-server`. El negocio debería hacer que el Servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible agregar autenticación para acceder a la API interna de la Plataforma. +### 1. Apaga el servidor de negocio de referencia -Agrega las siguientes variables de entorno. - - +Después de que la Anchor Platform esté iniciada y en funcionamiento, detén el servicio del servidor de referencia: ```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] +docker-compose stop reference-server ``` - - -Al realizar solicitudes a la API de la Plataforma, agrega un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` usa `platform` en lugar de `localhost` como host porque estarás haciendo solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. +Esto detiene el servidor de referencia mientras mantiene en funcionamiento la Anchor Platform y otros servicios. La plataforma continuará operando, pero ya no recibirá callbacks del servidor de referencia. -:::info +### 2. Implementa y ejecuta tu propio servidor de referencia -El secreto JWT debe cumplir con la Especificación JWT JWA (RFC 7518, Sección 3.2) que establece que las claves usadas con algoritmos HMAC-SHA DEBEN tener un tamaño >= 256 bits. +Implementa tu propio servidor de callback que implemente la API de callbacks de Anchor Platform. -::: +Puedes usar el [kotlin-reference-server](https://github.com/stellar/anchor-platform/tree/develop/kotlin-reference-server) como implementación de referencia para entender los endpoints y estructuras de datos requeridos. -### Pasar Flags de JVM +Asegúrate de que tu servidor de callback sea accesible en `http://localhost:8091` (o el endpoint configurado) y que Anchor Platform pueda alcanzarlo. -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` en el valor apropiado +Tu servidor debe: -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` +- Escuchar en el puerto **8091** (o configurar la plataforma para usar otro puerto) +- Implementar los endpoints de callback requeridos según lo especificado en la documentación de la API de Anchor Platform +- Manejar la lógica del negocio para: + - Cálculo de tarifas + - Determinación de la tasa de cambio + - Actualizaciones del estado de transacciones + - Gestión de información del cliente (KYC) + - Procesamiento de depósitos y retiros -:::tip - -Si necesitas pasar variables de entorno desde tu máquina al contenedor, deberías usar la opción de composición `environment` para establecer variables en su lugar. Aquí tienes un ejemplo de utilizar un almacén de claves de tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación del almacén de claves local y `KEYSTORE_PASSWORD` es la contraseña del almacén de claves local. - -::: - -### Sentry - -La Anchor Platform admite [Sentry](https://sentry.io/) para el seguimiento de errores. Para habilitar Sentry, añade las siguientes variables de entorno. - - - -```bash -# dev.env -SENTRY_DSN=[your sentry dsn] -SENTRY_RELEASE=[your release version] -SENTRY_ENVIRONMENT=[your environment] -SENTRY_DEBUG=[true|false] -SENTRY_AUTH_TOKEN=[your sentry auth token] -``` +### 3. Prueba tu integración usando la demo wallet - - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server +Sigue los pasos descritos en la sección [Testing with Stellar Demo Wallet](#testing-with-stellar-demo-wallet) arriba, y verifica que tu servidor maneja correctamente depósitos, retiros y otras operaciones SEP iniciadas desde la wallet. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/overview.mdx index d24c04c3b7..07f6cf2b16 100644 --- a/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/admin-guide/overview.mdx @@ -31,9 +31,9 @@ La documentación de la Anchor Platform es un trabajo en progreso. Los desarroll [sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md [anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx -[sep45-ap]: ./sep45/README.mdx +[sep1-ap]: ../sep-guide/sep1/README.mdx +[sep6-ap]: ../sep-guide/sep6/README.mdx +[sep10-ap]: ../sep-guide/sep10/README.mdx +[sep24-ap]: ../sep-guide/sep24/README.mdx +[sep31-ap]: ../sep-guide/sep31/README.mdx +[sep45-ap]: ../sep-guide/sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-1.png index 0917091187..7aeec4523b 100644 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-1.png and b/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-1.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-2.png index 6e2c1e64b5..c22e2122dd 100644 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-2.png and b/i18n/es/docusaurus-plugin-content-docs-ap/current/assets/anchor-platform-architecture-2.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/README.mdx new file mode 100644 index 0000000000..03ce6c8a55 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Guías SEP +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +Guías para implementar Propuestas del Ecosistema Stellar (SEPs) con la Plataforma Anchor. + + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/_category_.json new file mode 100644 index 0000000000..aa65b42d31 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "SEP Guides", + "collapsed": false +} + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep1/README.mdx new file mode 100644 index 0000000000..156cde4358 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep1/README.mdx @@ -0,0 +1,200 @@ +--- +title: Archivo de información Stellar (SEP-1) +sidebar_position: 50 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +## Resumen + +SEP-1 (Archivo de información de Stellar) permite que las carteras y otras aplicaciones de Stellar descubran información sobre tu servicio ancla. Al alojar un archivo `stellar.toml` en `/.well-known/stellar.toml`, permites que las aplicaciones encuentren automáticamente: + +- La información de tu organización +- Los activos y monedas compatibles +- Puntos finales de autenticación (SEP-10) +- Puntos finales SEP para SEP-6, SEP-24, SEP-31, SEP-38, SEP-45 + +Para más detalles, por favor consulta la [especificación SEP-1][sep-1]. + +## Crear tu archivo stellar.toml + +Crea un archivo `stellar.toml` con la información de tu servicio. Aquí tienes un ejemplo mínimo para comenzar: + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["GD...G"] # Your distribution account public keys +SIGNING_KEY = "GD...G" # Your signing key (public key) for SEP-10 authentication +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" # Use "Public Global Stellar Network ; September 2015" for mainnet + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "https://your-website.com" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +:::tip + +Para una lista completa de todos los atributos disponibles de `stellar.toml`, consulta la [especificación SEP-1][sep-1]. Necesitarás añadir secciones adicionales como `[[CURRENCIES]]`, `TRANSFER_SERVER`, `TRANSFER_SERVER_SEP0024`, `WEB_AUTH_ENDPOINT`, `WEB_AUTH_FOR_CONTRACTS_ENDPOINT`, `DIRECT_PAYMENT_SERVER`, etc., a medida que configures los activos compatibles y otros SEPs. + +::: + +:::important + +**Producción vs. Desarrollo**: Necesitarás archivos `stellar.toml` separados para testnet y mainnet: + +- **Testnet**: Usa `NETWORK_PASSPHRASE = "Test SDF Network ; September 2015"` +- **Mainnet**: Usa `NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015"` + +Asegúrate de que tu archivo de producción incluya tus cuentas reales de distribución en Mainnet, llaves de firma y URLs del servicio en producción. + +::: + +## Configuración + +Para habilitar SEP-1, necesitas configurar cómo la Plataforma Anchor debe acceder a tu archivo `stellar.toml`. La plataforma soporta tres métodos: + +| Tipo | Caso de uso | Descripción | +| -------- | -------------------------------------------- | --------------------------------------------------------------- | +| `file` | **Recomendado para la mayoría de los casos** | Leer desde un archivo local en el servidor | +| `string` | Pruebas rápidas o configuraciones simples | Proporcionar el contenido TOML directamente en la configuración | +| `url` | Alojamiento externo | Obtener desde una URL remota (útil para contenido dinámico) | + +### Variables de entrono + +Configura SEP-1 usando las siguientes variables de entorno: + +- `SEP1_ENABLED`: Ponlo en `true` para habilitar SEP-1 +- `SEP1_TOML_TYPE`: Uno de `file`, `string` o `url` +- `SEP1_TOML_VALUE`: El valor depende del tipo (ver ejemplos abajo) + +### Método 1: Archivo (Recomendado) + +Ideal para: Implementaciones en producción donde gestionas el archivo en disco. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/path/to/your/stellar.toml +``` + + + +:::tip + +Al usar Docker, monta tu archivo `stellar.toml` como un volumen y referencia la ruta dentro del contenedor. Por ejemplo: + +```yaml +# docker-compose.yaml +volumes: + - ./config/stellar.toml:/config/stellar.toml:ro +``` + +Luego, establece `SEP1_TOML_VALUE=/config/stellar.toml` en tu entorno. + +::: + +### Método 2: Cadena (String) + +Ideal para: Pruebas rápidas, desarrollo o cuando gestionas la configuración vía variables de entorno. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=string +SEP1_TOML_VALUE="ACCOUNTS = [\"GD...G\"] +SIGNING_KEY = \"GD...G\" +NETWORK_PASSPHRASE = \"Test SDF Network ; September 2015\" +[DOCUMENTATION] +ORG_NAME = \"Your organization\" +ORG_URL = \"https://your-website.com\"" +``` + + + +:::caution + +Al usar el tipo `string`, asegúrate de que el contenido TOML está correctamente escapado para el formato de tu archivo de entorno. Para configuraciones complejas, es más fácil manejar el tipo `file`. + +::: + +### Método 3: URL + +Ideal para: Contenido dinámico o cuando se aloja el archivo externamente. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=url +SEP1_TOML_VALUE=https://example.com/stellar.toml +``` + + + +:::note + +Al usar el tipo `url`, la Plataforma Anchor obtendrá el archivo en cada solicitud. Asegúrate de que la URL sea accesible desde tu servidor de Plataforma Anchor y que retorne contenido TOML válido. + +::: + +## Accediendo a tu archivo stellar.toml + +Una vez configurado y habilitado, la Plataforma Anchor sirve automáticamente tu archivo `stellar.toml` en el punto final estándar SEP-1: + +- **`/.well-known/stellar.toml`** - Punto final principal (servido con `Content-Type: text/plain`) +- **`/`** - Redirige a `/.well-known/stellar.toml` cuando SEP-1 está habilitado + +### Probando tu configuración + +Después de iniciar la Plataforma Anchor, verifica tu configuración: + +```bash +# Test the endpoint +curl http://localhost:8080/.well-known/stellar.toml + +# Or test the redirect +curl -L http://localhost:8080/ +``` + +Deberías ver el contenido de tu `stellar.toml` devuelto como texto plano. + +### Alternativa: Alojamiento externo + +También puedes alojar tu archivo `stellar.toml` usando un servidor de archivos estático como [nginx] o un CDN. Si eliges este enfoque: + +1. Aloja el archivo en `https://tu-dominio.com/.well-known/stellar.toml` +2. Asegúrate de que sea accesible públicamente +3. Verifica que tu archivo `stellar.toml` incluya las URLs correctas que apunten a los puntos finales de tu Plataforma Anchor + +El servicio SEP-1 de la Plataforma Anchor es opcional si alojas el archivo externamente, pero proporciona una manera conveniente de gestionar todo en un solo lugar. + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep10/README.mdx new file mode 100644 index 0000000000..d8ba052cff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep10/README.mdx @@ -0,0 +1,293 @@ +--- +title: Autenticación Stellar (SEP-10) +sidebar_position: 60 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +## Resumen + +SEP-10 (Stellar Web Authentication) permite que las aplicaciones de billetera creen sesiones autenticadas con los anchors de Stellar al demostrar el control sobre una cuenta Stellar. Una vez autenticadas, las billeteras reciben un JSON Web Token (JWT) que usan en solicitudes posteriores a los servicios estandarizados del anchor. + +Para la especificación completa, consulta [SEP-0010: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md). + +La Plataforma Anchor implementa SEP-10 con soporte para: + +- **Flujo Challenge/Response**: GET `/auth` para solicitar un desafío, POST `/auth` para validar y recibir un JWT +- **Atribución del Cliente**: Verificación opcional de la identidad de la aplicación cliente para billeteras no custodiales +- **Soporte para Billeteras Custodiales**: Soporte para billeteras custodiales que gestionan cuentas de usuario +- **Múltiples Dominios Home**: Soporte para múltiples dominios y patrones comodín + +## Flujo Típico de Autenticación + +1. El **Cliente** solicita un desafío único al **Servidor** +2. El **Cliente** verifica y firma el desafío +3. El **Cliente** envía el desafío firmado al **Servidor** +4. El **Servidor** verifica el desafío y responde con un token de sesión JWT + +## Habilitar SEP-10 + +Para habilitar SEP-10, configura las siguientes variables de entorno en tu archivo `dev.env`. + + + +```bash +# dev.env +SEP10_ENABLED=true +SEP10_HOME_DOMAINS=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" +``` + + + +### Configuración Requerida (Si está habilitado) + +| Variable | Valor predeterminado | Descripción | +| --------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SEP10_ENABLED` | `false` | Establece en `true` para habilitar la autenticación SEP-10 | +| `SEP10_HOME_DOMAINS` | `localhost:8080` | Lista de dominios home (separados por comas). Soporta patrones comodín como `*.stellar.org`. El `home_domain` debe coincidir con el host donde se sirve tu archivo `stellar.toml`. | +| `SECRET_SEP10_SIGNING_SEED` | _Requerido_ | La clave privada correspondiente a la `SIGNING_KEY` en tu archivo `stellar.toml`. Se usa para firmar los desafíos de autenticación. Las billeteras verifican esta firma antes de firmar y devolver el desafío. | +| `SECRET_SEP10_JWT_SECRET` | _Requerido_ | La clave de cifrado utilizada para firmar y verificar los tokens JWT emitidos a billeteras autenticadas. | + +:::important + +La `SIGNING_KEY` en tu archivo `stellar.toml` debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED`. Las billeteras verificarán que las transacciones de desafío están firmadas con esta clave. + +::: + +### Configuración Opcional + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP10_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge transaction timeout in seconds (default: 900) +SEP10_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP10_JWT_TIMEOUT=86400 + +# Optional: Require Authorization header in GET /auth requests (default: false) +SEP10_REQUIRE_AUTH_HEADER=false + +# Optional: Client attribution requirement (default: false) +SEP10_CLIENT_ATTRIBUTION_REQUIRED=false + +# Optional: Client allow list (default: empty, all configured clients allowed) +# Comma-separated list of client names that are allowed to authenticate +SEP10_CLIENT_ALLOW_LIST=client1,client2 +``` + + + +| Variable | Valor predeterminado | Descripción | +| ----------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SEP10_WEB_AUTH_DOMAIN` | Primer `home_domain` si se especifica solo uno, de lo contrario vacío | La propiedad `web_auth_domain` usada en las respuestas SEP-10. Requerido si tienes múltiples `home_domains` o usas patrones comodín. Debe coincidir con el host del servidor SEP. | +| `SEP10_AUTH_TIMEOUT` | `900` | Tiempo en segundos que una transacción de desafío permanece válida. Los clientes deben firmar y enviar el desafío dentro de esta ventana. | +| `SEP10_JWT_TIMEOUT` | `86400` | Tiempo en segundos que un token JWT emitido permanece válido. Después de la expiración, los clientes deben volver a autenticarse. | +| `SEP10_REQUIRE_AUTH_HEADER` | `false` | Si es `true`, requiere un encabezado de Autorización válido (Bearer JWT) en las solicitudes GET `/auth` de desafío. Esto previene el acceso no autorizado al endpoint y es útil para flujos de re-autenticación donde los clientes necesitan actualizar sus tokens JWT. | +| `SEP10_CLIENT_ATTRIBUTION_REQUIRED` | `false` | Si es `true`, las billeteras no custodiales deben proporcionar un `client_domain` en las solicitudes de desafío. Requiere configuración del cliente (ver abajo). | +| `SEP10_CLIENT_ALLOW_LIST` | Vacío (todos los clientes configurados permitidos) | Lista separada por comas con los nombres de clientes permitidos para autenticarse. Solo relevante cuando `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`. Si está vacía, todos los clientes configurados están permitidos. | + +:::tip + +**Múltiples Dominios Home**: Si especificas múltiples `home_domains` (p. ej., `ap.stellar.org,*.sdp.stellar.org`), también debes establecer `SEP10_WEB_AUTH_DOMAIN` para especificar qué dominio aloja el endpoint de autenticación. + +::: + +## Atribución del Cliente + +La atribución del cliente te permite restringir la autenticación a aplicaciones de billetera específicas y verificar su identidad. Esta es una función opcional que sólo debe habilitarse si es un requisito empresarial. + +:::info + +Por defecto, la Plataforma Anchor permite que cualquiera con una cuenta Stellar pueda autenticarse. La atribución del cliente solo es necesaria si quieres: + +- Restringir la autenticación a aplicaciones de billetera específicas +- Verificar la identidad de aplicaciones de billetera no custodiales +- Registrar qué aplicaciones de billetera usan tus usuarios + +::: + +### Habilitar la Atribución del Cliente + + + +```bash +# dev.env +SEP10_CLIENT_ATTRIBUTION_REQUIRED=true +``` + + + +Cuando `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`, las billeteras no custodiales deben: + +1. Proporcionar un parámetro `client_domain` en la solicitud de desafío +2. Firmar la transacción de desafío con la `SIGNING_KEY` del archivo `stellar.toml` de ese dominio +3. Tener su dominio listado en tu configuración de clientes + +### Configuración del Cliente + +Configura los clientes permitidos en tu archivo de configuración YAML: + + + +```yaml +clients: + # Each item in the list may contain the following fields: + # - name: (required) the name of the client + # - type: (required) `custodial` or `noncustodial` + # + # If the type is `custodial`, + # - signing_keys: (required) the custodial SEP-10 signing key(s) of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. + # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. + # If allow_any_destination is set to true, this configuration option is ignored. + # + # If the type is `noncustodial`, + # - domains: (required) the domains of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + + # custodial client + - name: bluecorp + type: custodial + signing_keys: "the signing key 1 of bluecorp","the signing key 2 of bluecorp" + callback_urls: + sep6: https://callback.bluecorp.com/api/v1/anchor/callback/sep6 + sep12: https://callback.bluecorp.com/api/v1/anchor/callback/sep12 + allow_any_destination: false + destination_accounts: GA... + + # noncustodial client + - name: pinkcorp + type: noncustodial + domains: pinkcorp.com + callback_urls: + sep6: https://callback.pinkcorp.com/api/v2/anchor/callback/sep6 + sep12: https://callback.pinkcorp.com/api/v2/anchor/callback/sep12 + + - name: redcorp + type: custodial + signing_keys: "the signing key of redcorp", + +``` + + + +O configura mediante variables de entorno: + + + +```bash +# dev.env +# custodial client +CLIENTS[0]_NAME=bluecorp +CLIENTS[0]_TYPE=custodial +CLIENTS[0]_SIGNING_KEYS="the signing key 1 of bluecorp","the signing key 2 of bluecorp" +CLIENTS[0]_ALLOW_ANY_DESTINATION=false +CLIENTS[0]_DESTINATION_ACCOUNTS=GA... + +# noncustodial client +CLIENTS[1]_NAME=pinkcorp +CLIENTS[1]_TYPE=noncustodial +CLIENTS[1]_DOMAINS=pinkcorp.com + +# custodial client +CLIENTS[2]_NAME=redcorp +CLIENTS[2]_TYPE=custodial +CLIENTS[2]_SIGNING_KEYS="the signing key of redcorp" +``` + + + +## Configurar stellar.toml + +Actualiza tu archivo `stellar.toml` para anunciar soporte SEP-10. Las billeteras descubren tu endpoint de autenticación mediante este archivo. + + + +```toml +# dev.stellar.toml +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +``` + + + +Estos campos deben coincidir con las opciones de configuración definidas en la sección [Habilitar SEP-10](#enable-sep-10) arriba. + +`WEB_AUTH_ENDPOINT` - La URL donde se ejecuta el servicio de autenticación. Esta es la URL que los clientes usarán para autenticarse con el anchor. El endpoint debe soportar: + +- `GET ` - Solicitar un desafío +- `POST ` - Intercambiar desafío firmado por un JWT de sesión + +`SIGNING_KEY` - La clave pública correspondiente a la clave privada especificada en `SECRET_SEP10_SIGNING_SEED`. Esta clave se usa para firmar los desafíos de autenticación presentados a las aplicaciones de billetera. + +:::important + +- **`SIGNING_KEY`**: Debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_ENDPOINT`**: Usa `https://` en producción. La ruta `/auth` es el endpoint estándar SEP-10. +- **Coincidencia de Host**: El host en `WEB_AUTH_ENDPOINT` debe coincidir con uno de tus `SEP10_HOME_DOMAINS` (o el `SEP10_WEB_AUTH_DOMAIN` si está especificado). + +::: + +## Cómo Probar el Flujo de Autenticación + +El flujo de autenticación SEP-10 consta de dos pasos: + +1. **GET `/auth`** - Solicitar una transacción desafío + - Parámetros: `account` (requerido), `memo` (opcional), `home_domain` (opcional), `client_domain` (opcional) + - Retorna: Una transacción desafío en formato XDR + +2. **POST `/auth`** - Validar el desafío firmado y recibir un JWT + - Cuerpo: `{ "transaction": "" }` + - Retorna: `{ "token": "" }` + +El token JWT debe incluirse en las solicitudes API subsecuentes como token Bearer en el encabezado `Authorization`. + +:::tip + +**Probando tu Configuración**: Puedes probar la autenticación SEP-10 usando curl y Stellar CLI. Para más información sobre Stellar CLI, consulta la [documentación de Stellar CLI](https://developers.stellar.org/docs/tools/cli). + +```bash +# Verify if `stellar` command line is installed +stellar --version + +# List your Stellar keys/identities +stellar keys ls + +# Get your account ID (public key) and secret seed +# Replace 'alice' with your identity name from `stellar keys ls` +IDENTITY_NAME="alice" +ACCOUNT_ID=$(stellar keys public-key "$IDENTITY_NAME") +SECRET_SEED=$(stellar keys secret "$IDENTITY_NAME") + +# Step 1: Request challenge and save the transaction XDR +CHALLENGE_RESPONSE=$(curl -s "http://localhost:8080/auth?account=$ACCOUNT_ID") +CHALLENGE_XDR=$(echo "$CHALLENGE_RESPONSE" | jq -r '.transaction') + +# Step 2: Sign the challenge transaction using Stellar CLI +# Note: The output includes info messages; the signed XDR is on the last line +SIGNED_CHALLENGE_XDR=$(echo "$CHALLENGE_XDR" | stellar tx sign --sign-with-key "$SECRET_SEED" 2>&1 | tail -1) + +# Step 3: Submit the signed challenge and receive JWT token +curl -X POST "http://localhost:8080/auth" \ + -H "Content-Type: application/json" \ + -d "{\"transaction\": \"$SIGNED_CHALLENGE_XDR\"}" +``` + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/README.mdx new file mode 100644 index 0000000000..ee8a06574e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/README.mdx @@ -0,0 +1,10 @@ +--- +title: Depósitos y Retiros Hospedados (SEP-24) +sidebar_position: 90 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-24 permite un método mediante el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con una rampa de entrada y salida. + + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/configuration.mdx new file mode 100644 index 0000000000..ed02284bff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/configuration.mdx @@ -0,0 +1,213 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +## Modificar un Archivo de Información Stellar + +A continuación, modifica el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que tu negocio admite la funcionalidad SEP-24, y también necesitan conocer todas las monedas que admites. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "Your web auth contract id" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +# Optionally, add support for XLM +[[CURRENCIES]] +code = "native" +status = "test" +is_asset_anchored = false +anchor_asset_type = "crypto" +desc = "XLM, the native token of the Stellar network." + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que utilice la frase de contraseña de la red pública, las URLs de servicio de producción, tus cuentas de distribución y clave de firma de Mainnet, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. + +## Habilitar Depósitos y Retiradas de Fondos Hospedados + +Ahora estás listo para habilitar depósitos y retiradas de fondos hospedados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml`, y cambia los valores según tus preferencias. Este archivo de ejemplo para activos habilitará el soporte para USDC de Circle y un dólar fiat. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + - id: iso4217:USD + significant_decimals: 2 + # Optional support for XLM + - id: stellar:native + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 7 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash +``` + + + +La información proporcionada para el valor `assets` se corresponde estrechamente con la información que se expondrá a la aplicación billetera usando el endpoint SEP-24 [`GET /info`][sep24-get-info]. Además, Anchor Platform usa esta información para validar las solicitudes hechas a tu servicio. + +Agrega las siguientes variables a tu archivo de entorno. + + + +```bash +# dev.env +// Required +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://example.com +SEP24_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +// Optional +SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que Anchor Platform proporcionará a las aplicaciones billetera cuando inicien transacciones. Las aplicaciones billetera abrirán esta URL en una vista web dentro de su app, transfiriendo el control de la experiencia de usuario del billetero a tu negocio. Esta URL apunta al widget web que tu negocio implementa. Contiene toda la lógica definida por el negocio. Profundizaremos en esta experiencia en secciones posteriores. + +`SEP24_MORE_INFO_URL_BASE_URL` es la URL que Anchor Platform proporcionará a las aplicaciones billetera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL se usa principalmente en las vistas de historial de transacciones de las billeteras, y tu negocio puede definir qué información mostrar sobre la transacción. + +`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de encriptación que Anchor Platform usará para generar tokens de corta duración que añadirá a las URLs proporcionadas a la billetera. El servidor de tu negocio también debe tener estas claves en su entorno para poder verificar la firma del token. + +`SEP24_INITIAL_USER_DEADLINE_SECONDS` es un parámetro opcional que define el tiempo en segundos que un usuario tiene para actuar antes de que la transacción pase al siguiente estado. Determina el campo `user_action_required_by`, que indica la fecha límite. Consulta [Métodos JSON-RPC][json-rpc-methods] para ejemplos de uso. + +## Probar con la Billetera Demo + +¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían verse ahora algo así. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Tu entorno debería verse ahora como el siguiente. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" + +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +Para probar esto, ve a la [Billetera Demo de Stellar][stellar-demo-wallet]. + +[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) + +Inicia una transacción realizando lo siguiente: + +- Crea un nuevo par de claves +- Haz clic en el botón "Agregar activo" y escribe + - el código del activo Stellar en tu archivo `stellar.toml` + - tu dominio principal, `localhost:8080` +- Selecciona el desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" + +La billetera demo debería poder encontrar tu archivo `stellar.toml`, autenticarse usando el par de claves Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera demo intente abrir la URL proporcionada por Anchor Platform, obtendrás una página de no encontrado. + +[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server +[sep1-ap]: ../sep1/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/example.mdx new file mode 100644 index 0000000000..566a05dee6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/example.mdx @@ -0,0 +1,438 @@ +--- +title: Ejemplo +sidebar_position: 40 +--- + +Integrarse con Anchor Platform implica tres áreas clave: + +- Desarrollar una experiencia de usuario basada en web que pueda abrirse en una vista web móvil +- Proporcionar actualizaciones de estado de transacciones a Anchor Platform +- Obtener actualizaciones de estado de transacciones desde Anchor Platform + +## Desarrollar una experiencia de usuario basada en web + +Anchor Platform no ofrece una IU de marca blanca que tu negocio pueda utilizar, y en su lugar espera que el negocio construya su propia IU y sistema backend. No desarrollaremos toda una experiencia de usuario para on & off-ramp en esta guía, pero cubriremos las formas en que tu producto existente debe actualizarse para ser compatible con Anchor Platform. + +### Autenticación + +Si tu negocio ya cuenta con un producto on & off-ramp, probablemente tengas un sistema existente para la autenticación de usuarios. Sin embargo, dado que Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación no es realmente necesario. De esta manera, se puede considerar que Anchor Platform proporciona una forma alternativa de autenticación. + +El negocio es libre de seguir exigiendo que los usuarios se autentiquen usando su sistema actual, pero la experiencia ideal para el usuario omitiría este paso y crearía una sesión autenticada si ya se ha autenticado con su cuenta Stellar. + +Anchor Platform añade un parámetro de consulta JWT `token` a la URL del negocio proporcionada a la aplicación wallet. Este token está firmado por el valor previamente configurado `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` e incluye la información que necesitas para identificar al usuario. El proceso debería ser algo así: + +1. Pasar el `token` agregado a la URL a tu sistema backend +2. Verificar la firma del `token` y comprobar su expiración +3. Crear una sesión autenticada para el usuario identificado por `token.sub` + +El contenido decodificado del `token` se verá algo así: + + + +```json +{ + "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", + "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", + "exp": 1516239022, + "data": { + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" + } +} +``` + + + +Observa que el valor `sub` identifica al usuario usando una cuenta Stellar y un entero. Este es el valor cuando aplicaciones custodiales que usan una cuenta común se autentican con tu servicio. Cuando billeteras no custodiales se autentican, el token puede tener un aspecto ligeramente diferente. + + + +```json +{ + "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", + "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", + "exp": 1516239022, + "data": { + "client_domain": "api.vibrantapp.com", + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" + } +} +``` + + + +Aquí, el valor `sub` solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación wallet usada para autenticar. + +En ambos casos, toda la información en el objeto `data` es opcional y solo estará presente si la wallet proporciona esa información. + +Agreguemos un servidor backend a nuestro archivo compose que se usará para verificar el token y crear sesiones web autenticadas para usuarios que inician transacciones. + + + +```yaml +# docker-compose.yaml +--- +business-server: + build: . + ports: + - "8081:8081" + env_file: + - ./dev.env + depends_on: + - platform-server +``` + + + +Creemos un contenedor Docker simple para nuestra aplicación. + + + +```docker +FROM node:19 + +WORKDIR /home +COPY . . +RUN npm install + +CMD ["node", "server.js"] +``` + + + +Ahora creemos una aplicación NodeJS mínima. + + + +```bash +yarn init -y +yarn add express jsonwebtoken +touch server.js +``` + + + +A continuación, un ejemplo de un servidor backend que autentica a un usuario usando NodeJS. + + + +```js +# server.js +const express = require("express"); +const jwt = require("jsonwebtoken"); +const app = express(); +const port = process.env.BUSINESS_SERVER_PORT; + +app.use(express.json()); + +/* + * We'll store user session data in memory, but production systems + * should store this data somewhere more persistent. + */ +const sessions = {}; + +/* + * Create an authenticated session for the user. + * + * Return a session token to be used in future requests as well as the + * user data. Note that you may not have a user for the stellar account + * provided, in which case the user should go through your onboarding + * process. + */ +app.post("/session", async (req, res) => { + let decodedPlatformToken; + try { + decodedPlatformToken = validatePlatformToken(req.body.platformToken); + } catch (err) { + res.status = 400; + res.send({ "error": err }); + return; + } + let user = getUser(decodedPlatformToken.sub); + let sessionToken = jwt.sign( + { "jti": decodedPlatformToken.jti }, + process.env.SESSION_JWT_SECRET + ); + sessions[sessionToken] = user; + res.send({ + "token": sessionToken, + "user": user + }); +}); + +/* + * Validate the signature and contents of the platform's token + */ +function validatePlatformToken(token) { + if (!token) { + throw "missing 'platformToken'"; + } + let decodedToken; + try { + decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); + } catch { + throw "invalid 'platformToken'"; + } + if (!decodedToken.jti) { + throw "invalid 'platformToken': missing 'jti'"; + } + return decodedToken; +} + +/* + * Query your own database for the user based on account:memo string parameter + */ +function getUser(sub) { + return null; +} + +app.listen(port, () => { + console.log(`business server listening on port ${port}`); +}); +``` + + + +Ejecuta esto junto con el servidor de la plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. + + + +```bash +curl \ + -X POST \ + -H 'Content-Type: application/json' \ + -d '{"platformToken": ""}' \ + http://localhost:8081/session | jq +``` + + + +## Proporcionando actualizaciones a la plataforma + +Creamos un endpoint para nuestro servidor de negocio que acepte la información recopilada en nuestra IU. + + + +```js +# server.js + +// Production systems should either let the Anchor Platform generate its own memos +// or have your custodial service generate a memo for each transaction. +const transactionMemos = {}; + +app.post("/transaction", async (req, res) => { + let sessionToken; + try { + sessionToken = validateSessionToken(req.headers.get("authorization")); + } catch (err) { + res.status = 400; + res.send({ "error": err }) + return; + } + // assuming this is a withdrawal transaction, we'll provide a memo, which is + // required by our third-party custodian to credit us the payment. When the + // payment is made with this memo, we can match the on-chain payment with the + // transaction in the Anchor Platform's database. + transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); + let rpcRequestBody = [ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": req.body.transaction.id,, + "message": "waiting for the user to provide off-chain funds.", + "amount_in": { + "amount": req.body.amount_in.amount, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": req.body.amount_out.amount, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": req.body.fee_details.total, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "destination_account": "GD...G", + "memo": transactionMemos[req.body.transaction.id], + "memo_type": "id" + } + } + ]; + let platformResponse; + try { + platformResponse = await updatePlatformTransaction(rpcRequestBody); + } catch (err) { + res.status = 500; + res.send({ "error": err }) + return; + } + res.send({ + "transaction": platformResponse.records[0] + }); +}); + +function validateSessionToken(authorizationHeader) { + let parts = authorizationHeader.split(" "); + if (parts.length != 2 || parts[0] != "Bearer") { + throw "invalid authorization header format"; + } + let sessionToken = parts[1]; + try { + jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); + } catch { + throw "invalid session token"; + } + if (!sessions[sessionToken]) { + throw "expired session"; + } + return sessionToken; +} + +async function updatePlatformTransaction(requestBody) { + let response = await fetch( + `${process.env.PLATFORM_SERVER}`, + { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(requestBody) + } + ); + if (response.status != 200) { + throw `unexpected status code: ${response.status}`; + } + return await response.json(); +} +``` + + + +Esto actualizará la base de datos de Anchor Platform con la información proporcionada y permitirá que las aplicaciones wallet obtengan esta información actualizada para transmitirla al usuario. Ya deberías haber informado al usuario sobre los montos de la transacción y que tu negocio está esperando que llegue el pago en cadena, pero proporcionar estas actualizaciones permite a los usuarios ver el estado de sus transacciones a través de su aplicación móvil sin abrir de nuevo la IU del negocio. + +:::note + +Actualmente, Anchor Platform no envía notificaciones a la aplicación wallet cuando cambian los estados de las transacciones, sin embargo, está en nuestro plan agregar estas notificaciones o "callback requests" para que las aplicaciones wallet no tengan que realizar polling a Anchor Platform para actualizaciones. + +::: + +## Obteniendo actualizaciones desde la plataforma + +Si solo usas Anchor Platform para exponer las APIs SEP a las aplicaciones wallet, no tendrás una fuerte razón para obtener actualizaciones de estado de transacciones desde Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que hagas solicitudes `JSON-RPC API`. + +Sin embargo, si usas Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados a transacciones de retirada), Anchor Platform actualizará los estados de las transacciones cuando se reciban los pagos. + +Hay dos maneras de obtener actualizaciones desde Anchor Platform, + +- Realizar polling al endpoint `GET /transactions/:id` de la API de la plataforma para las transacciones por las que esperas un pago +- Transmitir eventos de cambio de estado de transacciones desde un cluster Kafka + +Aunque la transmisión de cambios en el estado de transacciones desde un cluster Kafka puede ser un enfoque más robusto y escalable, en esta guía usaremos el método de polling. Configurar y usar un cluster Kafka será tema de una sección diferente de la documentación. + +Primero, configuremos Anchor Platform para observar la red Stellar en busca de pagos entrantes. + + + +```yaml +# docker-compose.yml +--- +stellar-observer: + image: stellar/anchor-platform:latest + command: --stellar-observer + env_file: + - ./dev.env + volumes: + - ./config:/home + depends_on: + - db +``` + + + +El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` para pagos de retirada. + +Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por Anchor Platform, Anchor Platform considerará la transacción asociada a ese memo como recibida y actualizará su estado a `pending_anchor`. Esto se hace mediante una solicitud `JSON-RPC API`, por lo que debemos configurar la URL que debe usar. + + + +```bash +# dev.env +PLATFORM_API_BASE_URL=http://platform-server:8085 +``` + + + +Hagamos algunas adiciones al archivo `server.js` para que podamos realizar polling a Anchor Platform para nuestros pagos esperados. + + + +```js +// server.js +... +/* + * Fetch the transaction data from the Platform API + * + * Production systems should have proper retry mechanisms. + */ +async function getPlatformTransaction(transactionId) { + let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) + if (response.status != 200) { + throw `unexpected status code: ${response.status}`; + } + return await response.json(); +} + +(async () => { + while (true) { + await new Promise(r => setTimeout(r, 2000)); + let requestPromises; + for (const transactionId in transactionMemos) { + requestPromises.push(getPlatformTransaction(transactionId)) + } + let transactions = await new Promise.all(requestPromises); + for (const transaction in transactions) { + // assuming all requests were successful + if (transaction.status == "pending_anchor") { + // initiate off-chain delivery of funds + console.log(`received payment for transaction ${transaction.id}`); + } + } + } +})() +``` + + + +## Implementación completa de ejemplo + +Stellar proporciona una implementación de ejemplo para un servidor de negocio SEP-24. Está dividida en dos partes: 1) una IU web, accesible para el usuario final; y 2) una implementación backend, usada para obtener y enviar actualizaciones desde/hacia Anchor Platform. + +El código para la IU web se encuentra [aquí][sep-24-ref-ui] + +El código para el backend es parte de Anchor Platform y está disponible como un [submódulo][sep-24-ref]. + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/faq.mdx new file mode 100644 index 0000000000..829948062e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/faq.mdx @@ -0,0 +1,39 @@ +--- +title: Preguntas Frecuentes (FAQ) +sidebar_position: 50 +--- + +### ¿Cómo usar los JWT? + +Como parte del flujo, una vez que un usuario realiza una solicitud, es decir, una solicitud interactiva de retirada o depósito, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform realizará una llamada `GET` a `?token=`. + +Este token JWT contendrá: + +1. `exp` es el tiempo de expiración del token. Debes verificar que el token proporcionado no haya expirado. +2. `sub` es la cuenta asociada con esta transacción. Puede usarse para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se usará para recibir o enviar fondos. +3. `jti` es el hash de la transacción. +4. `data` es la carga útil extra que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que se desea depositar o retirar. Si lo provee el cliente, también contendrá la `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificado durante la autenticación SEP-10, y `client_name` (definido como 'name' en la configuración de [clients] si está disponible), así como el `lang` (preferencia de idioma) del usuario. + +### ¿Cómo Proveer Tarifas? + +Actualmente, se recomienda proveer las tarifas/tasas de exchange en el iFrame/vista web de tu aplicación. + +El estándar [SEP-24] provee un endpoint `/fee` para que los negocios establezcan tarifas estáticas para sus transacciones. Sin embargo, actualmente no es admitido por la Anchor Platform. + +:::note + +El endpoint /fee será descontinuado en el futuro. + +::: + +### ¿Cómo identificar la cuenta del usuario? + +Debes usar el campo `sub` del token JWT. Para billeteras custodiales, este valor tendrá el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub`, que será igual a la cuenta del usuario. + +### ¿Cómo identificar la billetera? + +Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración [clients], el token JWT también incluirá el campo `data.client_name`, lo que permite identificar la billetera. + +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[clients]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/getting-started.mdx new file mode 100644 index 0000000000..f9f23af640 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/getting-started.mdx @@ -0,0 +1,34 @@ +--- +title: Comenzar en español +sidebar_position: 10 +--- + +Esta guía te llevará a través de la configuración e integración con la Plataforma Anchor con el propósito de construir un servicio de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiros alojados. + +Al aprovechar el soporte de la Plataforma Anchor para SEP-24, las empresas pueden ofrecer su servicio de entrada y salida como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar como wallets e intercambios, ampliando su alcance y conectando con usuarios mediante las aplicaciones que ya utilizan. + +Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Plataforma Anchor y configurado las funciones necesarias requeridas por SEP-24: [SEP-1 (Archivo de información de Stellar)][sep1-ap], [SEP-10 (Autenticación Stellar)][sep10-ap] y [SEP-45 (Autenticación web Stellar para cuenta de contrato)][sep45-ap]. + +## La experiencia básica del usuario + +La experiencia completa del cliente en un depósito y retiro es la siguiente: + +1. El cliente abre la aplicación wallet SEP-24 de su elección +2. El cliente selecciona un activo para depositar y el wallet encuentra un anchor (los clientes también pueden elegir un anchor específico) +3. Una vez que el wallet se autentica con el anchor, el cliente comienza a ingresar su información KYC y de transacción solicitada por el anchor +4. El wallet proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) +5. Una vez que el wallet recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor + +El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, trading, reserva de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que sería algo así: + +1. El cliente abre su aplicación wallet +2. El cliente selecciona el activo para retirar y el wallet encuentra el anchor +3. Después de autenticarse con el anchor, el wallet abre la URL interactiva dada y permite al cliente ingresar su información de transacción (el KYC ya ha sido recopilado) +4. Después de solicitar la aprobación del cliente, el wallet envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar +5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados mediante transferencia bancaria. + +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/integration.mdx new file mode 100644 index 0000000000..6adbc0bb18 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/integration.mdx @@ -0,0 +1,929 @@ +--- +title: Integración +sidebar_position: 30 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; +import { AttributeTable } from "@site/src/components/AttributeTable"; +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. + +En general, querrás proporcionar actualizaciones para los siguientes eventos: + +- Tu negocio está procesando la información KYC proporcionada por el usuario +- Tu negocio está listo para recibir fondos del usuario +- Tu negocio ha recibido fondos del usuario +- Tu negocio ha enviado fondos al usuario +- Tu negocio ha procesado un reembolso para la transacción del usuario +- Tu negocio experimentó un error inesperado + +Esto se realiza haciendo solicitudes JSON-RPC al endpoint de la API de la Platform. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por este método RPC. + +La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dicho esto, la API será llamada cada vez que un usuario o la anchor realice una acción que haga avanzar el estado de la transacción en el flujo. + +La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se gestiona a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Gestión de Eventos][event-handling]. + +Puedes obtener más información sobre el flujo y los estados de la transacción en el [documento del protocolo SEP-24][sep-24] + +## Callbacks + +La Anchor Platform depende del servidor de negocio para proporcionar y almacenar información sobre las cotizaciones. + +### Cotizaciones y Tarifas + +Para admitir el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se utiliza para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que envía. La API de cotizaciones también se usa para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tarifa][rate-callback] para proporcionar cotizaciones a la Anchor Platform. + +## Asegurando la API de la Platform + + + +### Uso de la clave API + + + +### Uso de JWT + + + +## Realizando solicitudes JSON-RPC + + + +### Solicitud JSON-RPC + + + +### Respuesta JSON-RPC + + + +### Códigos de Error + + + +## Actualizando la Transacción de Depósito vía JSON-RPC + +El diagrama del flujo de depósito SEP-24 define la secuencia/reglas para la transición de estados de la transacción y un conjunto de métodos JSON-RPC que se deben llamar para cambiar ese estado. No puedes definir el estado que quieres asignar a una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. + +[![flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo significan que la transacción está en un estado de error o ha expirado. + +::: + +### Listo para Recibir Fondos + +El primer paso del flujo de depósito después de iniciar el depósito en sí es recopilar KYC. Generalmente se realiza en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación billetera, usando [SEP-9]. Una vez que se recopila el KYC necesario, se debe hacer una solicitud JSON-RPC `request_offchain_funds`. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es el monto total de tarifas cobradas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. + +La información sobre los montos (entrada/salida/tarifa) es requerida si deseas mover la transacción de `incomplete` a `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de los montos. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::tip + +Cuando el proceso de KYC es largo (por ejemplo, verificación de identidad), se aconseja primero establecer el estado de la transacción a `pending_anchor` usando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC está en proceso. + +::: + +### Procesando Información KYC + +:::tip + +Este paso es opcional. La mayoría de los negocios no lo usan. Puedes saltarlo e ir al [siguiente paso](#funds-received). + +Se recomienda usar este estado cuando la verificación KYC pueda necesitar realizarse de forma asincrónica. + +::: + +**Debes** especificar los campos `amount_x`. + + + +```json +// kyc-in-process.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_interactive_flow_completed", + "params": { + "transaction_id": "", + "message": "Interactive flow completed.", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh kyc-in-process.json +``` + + + +### Fondos Recibidos + +Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` es la fecha y hora de recepción de los fondos +- `external_transaction_id` es el ID de la transacción en la red externa + +Los campos de cantidad son opcionales. Si se omiten, se tomarán los valores de solicitudes JSON-RPC previas. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Esperando Fondos del Usuario + +En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero aún no los fondos. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Enviando Fondos Onchain + +Luego, envía una transacción en la red Stellar para cumplir con la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados con éxito. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +Después de esta solicitud JSON-RPC, la transacción cambiará al estado `completed`. + +### Pendiente de Trustline + +Este estado debe establecerse si un pago requiere una trustline de activo que el usuario no configuró. Hay dos formas en que la transacción puede cambiar al estado `pending_trust`. El primero es cuando el servidor de negocio detecta que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, es necesario hacer la siguiente solicitud JSON-RPC: + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +El servidor de negocio verifica periódicamente si la trustline ha sido configurada. Si lo fue, puede enviar un pago y cambiar el estado de la transacción a `pending_stellar`. + +::: + +### Trustline Configurada + +Este estado debe establecerse si el negocio ha detectado si la trustline fue o no configurada por el usuario. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- El flag `success` define si la trustline fue configurada por el usuario o no + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no lo fue. + +::: + +### Enviando reembolso + +Existe la posibilidad de devolver fondos al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero de lo esperado, puedes devolver una parte al usuario y enviar el resto como fondos onchain. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. + +::: + +### Reembolso Pendiente + +Es similar a [Reembolso enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se esté esperando que la red externa, como Bitcoin u otra criptomoneda, complete una transacción, o al esperar una transferencia bancaria. + +### Error en la Transacción + +Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario ha realizado una transferencia, deberías hacer una recuperación de la transacción, y luego puedes reintentar procesar la transacción o iniciar un reembolso. + +::: + +### Transacción Expirada + +Tu negocio puede querer manejar transacciones abandonadas expirándolas si han estado inactivas por cierto período. Para lograr esto, verifica el estado de la transacción usando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como expirar la transacción o iniciar un auto-reembolso, según el estado actual de la transacción. Por ejemplo, para expirar la transacción el negocio debe cambiar el estado de la transacción a `expired`: + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después de que el usuario haya realizado una transferencia. + +::: + +### Transacción en Espera + +En casos raros, puedes querer pausar la transacción actual y solicitar más información al usuario (después de recibir la transferencia). Esto podría usarse para casos de cumplimiento normativo. + + + +```json +// transaction-hold.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_on_hold", + "params": { + "transaction_id": "", + "message": "Transaction is on hold. Please contact customer support to resolve the hold." + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-hold.json +``` + + + +### Recuperación de Transacción + +El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, es necesario hacer la siguiente solicitud JSON-RPC: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Actualizando la Transacción de Retirada vía JSON-RPC + +Este diagrama define una secuencia/reglas de la transición de estados para el flujo de retirada SEP-24. + +[![flujo de retirada sep24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo significan que la transacción está en un estado de error o ha expirado. + +::: + +Una vez finalizado el flujo de depósito, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. + +El punto de partida tanto para retirada como para depósito es el mismo. + +### Listo para Recibir Fondos + +Similar al depósito, el siguiente paso es notificar al usuario que la anchor está lista para recibir fondos. Sin embargo, dado que tu servicio recibirá transacciones a través de la red Stellar, la actualización será diferente. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- Valor `memo` que se adjuntará a la transacción +- Tipo de memo que la anchor debe adjuntar a la transacción +- Cuenta destino + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::tip + +Establecer `memo`, `memo_type` y `destination_account` es opcional. + +Si la integración con un custodio tercero está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, eso es lo que ayuda a asociar las transacciones Stellar con las transacciones SEP. + +Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente el `memo` y `memo_type` (solo si no se incluyen en la solicitud). + +::: + +:::note + +Debe configurarse la cuenta Stellar que se usará para recibir fondos. + +::: + +### Procesando Información KYC + +Este paso es opcional, y es similar a [Procesando Información KYC](#processing-kyc-information) del flujo de depósito. + +### Fondos Recibidos + +Si se recibieron fondos onchain, debes proporcionar los montos y cambiar el estado de la transacción a `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +Este método será llamado automáticamente por el observador de pagos Stellar cuando detecte que se han recibido fondos onchain. + +::: + +### Monto Actualizado + +Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan con el `amount_in` real. El estado de la transacción en este caso no cambiará y seguirá siendo `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Solo `amount_out` y `fee_details` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. + +::: + +### Fondos Offchain Enviados + +Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Fondos Offchain Disponibles + +Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y si está listo para que el usuario/beneficiario los recoja. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Fondos Offchain Pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Reembolso Enviado + +La lógica de reembolso funciona igual que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. + +### Error en la Transacción + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error en la Transacción](#transaction-error) del flujo de depósito. + +### Transacción Expirada + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción Expirada](#expired-transaction) del flujo de depósito. + +### Transacción en Espera + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción en Espera](#on-hold-transaction) del flujo de depósito. + +### Recuperación de Transacción + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. + +## Seguimiento de Transacciones Stellar + + + +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[event-handling]: ../../admin-guide/events/README.mdx +[rate-callback]: ../../api-reference/callbacks/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/setting-up-production-server.mdx new file mode 100644 index 0000000000..07ff30c3ca --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep24/setting-up-production-server.mdx @@ -0,0 +1,124 @@ +--- +title: Configurar un servidor de producción +sidebar_position: 60 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +Una vez que el servidor de pruebas esté en funcionamiento y hayas probado ambos flujos de depósito y retiro, es hora de comenzar con el despliegue real conectado con KYC real y proveedores reales de sistemas bancarios. Antes de usar cualquier API bancaria, es fundamental que realices una auditoría de seguridad completa en el sistema para asegurarte de que no existan vulnerabilidades. + +## Implementar un entorno seguro + +Asegúrate de mantener el servidor de pruebas activo y de desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas funcionalidades en la testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de staging si hay un equipo grande trabajando en esta base de código y/o habrá muchos pull requests para probar internamente antes de compartir con otras instituciones. + +Para cambiar a la red pública (mainnet) de Stellar, solo tienes que cambiar la [passphrase de red](/docs/networks#network-passphrases) (para autenticar solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). + +Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. + +Primero, necesitas cambiar tu archivo de información (`stellar.toml`): + + + +```toml +# stellar.toml +NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" +``` + + + +Luego, cambia la configuración de la Plataforma Anchor en el archivo `production.env`: + +### Para la conexión al servidor Horizon: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_HORIZON_URL="https://horizon.stellar.org" +``` + + + +### Para la conexión al servidor Stellar RPC: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_RPC_URL="https://mainnet.sorobanrpc.com" +``` + + + +## Conectando con KYC Real + +La mayoría de los anchors necesitan recolectar información de [Conoce a tu Cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con las regulaciones locales antes de procesar depósitos y retiros. El flujo de KYC normalmente consiste en un formulario simple que recopila información relevante del usuario como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. + +Cómo manejar el KYC depende de ti: existen muchos servicios que ofrecen soluciones KYC mediante APIs e iFrames, validan los datos ingresados y sincronizan con bases de datos gubernamentales para verificar requisitos. Cada jurisdicción tiene requisitos específicos de KYC que difieren entre sí, por lo que es mejor encontrar un proveedor de KYC específico para tu país que satisfaga tus necesidades. + +Algunos países requieren diferentes campos de KYC dependiendo del monto a depositar o retirar. Si este es tu caso y necesitas adaptar tus formularios KYC según el monto del depósito o retiro, simplemente agrega un campo de cantidad antes del formulario KYC y asegúrate de que los campos KYC se actualicen según ese valor. + +La información KYC debe vincularse a la sesión creada a través de la [Autenticación Web Stellar](../sep10/README.mdx) y, por ende, al usuario, para que solo necesites solicitarla una vez. Después de completar el primer flujo de KYC, el usuario no debería tener que volver a ingresar la información. + +Asegúrate de que los mensajes de error y validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También deberías localizar los mensajes según el idioma y la ubicación del usuario. + +## Autocompletar el formulario KYC + +Autocompletar el formulario KYC es una excelente manera de reducir la fricción para comenzar a usar un anchor, y las wallets suelen proporcionar un conjunto de campos comúnmente usados en el ecosistema. En resumen, el anchor puede mostrar el formulario KYC con los valores del usuario que fueron enviados previamente por la wallet en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. + +Todos los campos del [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las wallets en los endpoints mencionados, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. También debes permitir que los campos prellenados sean editables, ya que el usuario podría haber ingresado un nombre diferente durante el proceso de registro de la wallet y podría querer editarlo antes de finalizar el proceso KYC del Anchor. + +Todos los datos SEP-9 enviados desde la wallet forman parte del [JWT interactivo](./faq.mdx#how-to-use-jwts), enviado por la Plataforma Anchor. + +## Conectando con Sistemas Bancarios Reales + +Los emisores de tokens respaldados por fiat deben mantener una reserva completa. Esto significa que existe una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado y puede canjearse por un activo real subyacente, los emisores de tokens fiat deben conectarse a los sistemas bancarios reales para validar depósitos de usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y para completar retiros de usuarios (generalmente mediante transferencias bancarias). Si eres un anchor que procesa depósitos y retiros de un token emitido por otra organización, deberás seguir un proceso similar. + +Para obtener (e identificar) una transferencia de usuario, los emisores suelen usar una de dos aproximaciones: + +- Consulta API: esta opción consiste en consultar la API del banco, mediante un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas por (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que corresponde a un depósito específico, puede enviar los fondos digitales a la cuenta del usuario. +- Webhook: no todos los sistemas bancarios soportan esta opción, pero es la más ligera en términos de lógica back-end. En este enfoque, el banco notifica de forma proactiva el endpoint del emisor cuando recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede entonces relacionar esa transacción con un depósito en proceso y validar que el usuario pueda recibir sus fondos digitales. + +Existen muchas formas de identificar que una transferencia bancaria específica corresponde a un depósito específico (y, por consiguiente, a un usuario). Algunos bancos (y países) tienen infraestructura de transferencias que permite la creación de una cuenta bancaria única por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación en sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan relacionarlo con la información proporcionada en el formulario KYC. + +Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando las conexiones con sistemas bancarios estén activas. Algunos bancos ofrecen una API de pruebas que puede usarse para desarrollo y despliegue en entornos de testnet o staging, lo que permite probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Por mayor seguridad, algunos anchors prefieren agregar un paso manual final antes de aprobar transferencias de retiro. En términos de experiencia de usuario, esta aprobación manual es aceptable siempre que los tiempos de espera se ajusten a las expectativas del usuario, lo cual usualmente significa que no sean mayores a un par de horas. + +## Probar casos extremos + +Una vez que tu aplicación esté completamente funcional, es buena idea probar distintos escenarios y casos extremos para asegurarte de que el sistema funciona como se espera. Aquí tienes una lista de sugerencias de pruebas que deberían cubrir gran parte de los casos extremos de la aplicación: + +### Pruebas generales + +- Prueba la usabilidad del flujo interactivo +- Prueba la interfaz usando información de distintos locales y verifica que el contenido traducido, incluidos los mensajes de error, respuestas, formato de fechas y números, sea correcto + +### Pruebas KYC + +- Verifica que el KYC aparezca con una nueva clave secreta (SK) de la wallet +- Verifica que KYC no acepte entradas con formato incorrecto y que los mensajes de error sean comprensibles +- Verifica que puedas usar la misma información KYC (correo electrónico, número de teléfono, usuario, etc.) múltiples veces +- Verifica que puedas realizar el proceso KYC múltiples veces con la misma clave secreta (SK) de Stellar. + +### Prueba interactiva + +- Verifica que el flujo de depósito funcione correctamente y que los sistemas bancarios estén operativos +- Verifica que no puedas hacer un retiro por un valor mayor al saldo actual +- Verifica que el flujo de retiro funcione correctamente y que los sistemas bancarios estén operativos + +### Pruebas de seguridad + +- Asegúrate de que los puntos finales de la plataforma estén asegurados + +## Pulir e internacionalización + +Soportar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida al navegar y apoya a instituciones internacionales (como wallets) que necesitan probar el producto antes de iniciar nuevas integraciones. + +Puedes soportar múltiples idiomas en tu aplicación web usando el parámetro `Accept-Language` de las cabeceras de las solicitudes HTTP para localizar el contenido y permitiendo a los usuarios cambiarlo de manera sencilla (por ejemplo, con un ícono de flag en la barra superior). Si una wallet específica no envía el parámetro en la cabecera, recomendamos mostrar al usuario una pantalla de selección de idioma al inicio de los procesos de depósito y retiro. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo tengas que preguntarle una vez. Además de localizar el texto, asegúrate de revisar el formato de números, fechas, etc. + +Tener un grupo de testers beta es una excelente manera de detectar casos extremos que necesitan ajustes y para confirmar que el sistema funciona correctamente ante una variedad de entradas de usuarios. Puedes realizar una prueba beta mediante una fase de lanzamiento suave antes de comenzar a invertir en marketing y distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para auditorías de seguridad futuras y brinda a nuevos socios y potenciales usuarios claridad y confianza en el producto. + +## Conexión con Wallets + +Todas las interacciones de usuarios con Anchor se realizan a través de una Wallet, por lo que es vital que los Anchors estén conectados a Wallets con buena penetración de mercado en la región donde el negocio se concentra. Conectarse a Wallets es un proceso simple, ya que ambos extremos de esa integración ya cumplen con los SEPs. + +Stellar.org mantiene una [lista de wallets](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente soportan SEP-24. Enviarles información sobre un activo y una cuenta emisor es una excelente forma de empezar a conseguir usuarios reales para el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/README.mdx new file mode 100644 index 0000000000..8b44e79e7e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/README.mdx @@ -0,0 +1,10 @@ +--- +title: Pagos Transfronterizos (SEP-31) +sidebar_position: 100 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-31 permite que las carteras y/o exchanges interactúen con el conjunto existente de servicios de envío de Stellar. + + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/configuration.mdx new file mode 100644 index 0000000000..887f6c5690 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/configuration.mdx @@ -0,0 +1,346 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +## Modificar un archivo Stellar Info + +Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 está admitida por tu negocio, y también necesitan conocer todas las monedas que admites. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" + +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que tendrás que crear otro archivo para tu despliegue en producción que use la frase de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución y clave de firma de mainnet, así como las cuentas emisoras de mainnet de los activos que utiliza tu servicio. + +## Habilitar pagos transfronterizos + +Ahora estás listo para habilitar pagos transfronterizos con la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH +``` + + + +La información proporcionada en los objetos `sep31` y `send` está estrechamente relacionada con la información que será expuesta a la aplicación billetera mediante el endpoint [`GET /info`][sep31-get-info] de SEP-31. La Anchor Platform también usa esta información para validar las solicitudes hechas a tu servicio. `sep31.fields.transaction` debe quedar vacío y será eliminado en una versión futura, pero puedes ajustar los valores `send.min_amount` y `send.max_amount` según los límites de tu servicio. + +Los valores `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y deben solicitar una tasa de cambio usando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de continuar. + +Agrega la siguiente variable a tu archivo de entorno. + + + +```bash +# dev.env +SEP31_ENABLED=true +``` + + + +¡Ahora los remitentes deberían poder descubrir, autenticarse e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. + + + +```bash +docker compose up +``` + + + +Verifica que tu API esté activa. + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +Deberías obtener lo siguiente. + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Habilitar la API KYC para clientes + +Los negocios necesitan recopilar y validar información KYC de los clientes para quienes facilitan transacciones. Los clientes determinan qué información KYC debe recopilarse y envían esa información mediante una API SEP-12 KYC alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En cambio, reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas de este al cliente, actuando como un servidor proxy. + +Consulta la [especificación de la API KYC de Anchor Platform][platform-api-kyc] para detalles sobre los endpoints que debe implementar el servidor de tu negocio. + +Para poner esta API a disposición de los clientes, añadamos la URL del servicio a nuestro Archivo Stellar Info. + + + +```toml +# dev.stellar.toml +KYC_SERVER = "http://localhost:8080/sep12" +``` + + + +Vamos a habilitarla también en nuestro entorno. + + + +```bash +# dev.env +SEP12_ENABLED=true +``` + + + +Finalmente, tenemos que definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transfronterizos en dos jurisdicciones regulatorias diferentes, por lo que clientes en distintas jurisdicciones tienen diferentes requisitos KYC y serían representados usando distintos tipos. + +:::info + +Actualmente, los tipos de clientes deben ser mutuamente exclusivos, lo que significa que un cliente no puede ser más de un tipo. + +Esta limitación existe porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como uno que envía una cantidad grande. Sólo puede validar que un cliente está aprobado para uno de los tipos de clientes definidos. Esta limitación será eliminada en una versión futura. + +::: + +En esta guía, solo tendremos dos tipos, un tipo de cliente remitente y un tipo de cliente receptor. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una versión futura. + + + +```yaml +# dev.assets.yaml +sep31: + sep12: + sender: + types: + sep31-sender: + description: customers sending to recipients + receiver: + types: + sep31-receiver: + description: customers receiving from senders +``` + + + +Vamos a hacer ping al endpoint info nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +Deberías obtener lo siguiente: + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Habilitar la API RFQ + +Los negocios necesitan proporcionar a sus contrapartes del lado emisor una API de [Rate][get-rates-api] para verificar las tasas de exchange que ofrecen entre el activo en cadena utilizado para liquidación y el activo fiduciario usado para pagar al destinatario. Si la tasa es competitiva, los remitentes también deben poder solicitar un compromiso con la tasa ofrecida actualmente por el negocio por un corto período de tiempo. + +La Anchor Platform proporciona la [API SEP-38 RFQ][sep38] a los remitentes para este propósito. + +Para poner esta API a disposición de los clientes, añadamos la URL del servicio a nuestro Archivo Stellar Info. + + + +```toml +# dev.stellar.toml +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +QUOTE_SERVER = "http://localhost:8080/sep38" +``` + + + +Vamos a habilitarla también en nuestro entorno. + + + +```bash +# dev.env +SEP38_ENABLED=true +``` + + + +También necesitamos habilitar USDC para poder usarlo en esta API, así como agregar un activo off-chain con el que pueda ser exchangeado. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:BRL + country_codes: + - BR + - id: iso421:BRL + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + country_codes: + - BR + significant_decimals: 2 + buy_delivery_methods: + - name: PIX + description: Have BRL sent directly to your bank account. +``` + + + +¡Vamos a probar que tu API RFQ esté activa! Luego de `docker compose up`: + + + +```bash +curl http://localhost:8080/sep38/info | jq +``` + + + +Deberías obtener lo siguiente: + + + +```json +{ + "assets": [ + { + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + { + "asset": "iso4217:BRL", + "country_codes": ["BR"], + "buy_delivery_methods": [ + { + "name": "PIX", + "description": "Have BRL sent directly to your bank account." + } + ] + } + ] +} +``` + + + +## Configurar autenticación para la API de Callback + +Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Añadamos autenticación a estas solicitudes también. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://server:8081 +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +SECRET_CALLBACK_API_AUTH_SECRET= +``` + + + +`CALLBACK_API_BASE_URL` usa `server` en lugar de `localhost` como host porque la Anchor Platform realizará solicitudes a tu servidor de negocio desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de staging o producción, asegúrate de actualizar tus URLs de servicio. + +Definiremos el servidor que implementa los endpoints definidos en la API de Callback en la siguiente sección. + +[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info +[sep1-ap]: ../sep1/README.mdx +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/getting-started.mdx new file mode 100644 index 0000000000..05e5dabe36 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/getting-started.mdx @@ -0,0 +1,22 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía te llevará a configurar e integrar con la Anchor Platform para construir un servicio receptor de pagos transfronterizos compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transfronterizos. + +Al aprovechar la admisión de la Anchor Platform para SEP-31, los negocios hacen su servicio compatible con el conjunto existente de servicios de envío de Stellar. + +:::info + +A medida que mejoremos la documentación, partes de esta guía relevantes para otros casos de uso podrán trasladarse a sus propias secciones. + +::: + +Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Anchor Platform y configurado las funciones necesarias requeridas por SEP-31: [SEP-1 (Archivo de información de Stellar)][sep1-ap], [SEP-10 (Autenticación de Stellar)][sep10-ap] y [SEP-45 (Autenticación web de Stellar para cuenta de contrato)][sep45-ap]. + +[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/integration.mdx new file mode 100644 index 0000000000..7b01fc31e4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep31/integration.mdx @@ -0,0 +1,620 @@ +--- +title: Integración +sidebar_position: 30 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +Integrar con la Anchor Platform para facilitar pagos transfronterizos implica implementar, como mínimo, lo siguiente: + +- Puntos finales API KYC [`GET /customer`][get-customer] y [`PUT /customer`][put-customer] para solicitar y recopilar datos KYC de los clientes +- Punto final API RFQ [`GET /rate`][get-rate] para proveer tasas FX entre los activos on-chain y off-chain admitidos +- Solicitudes `GET /transactions` para obtener actualizaciones sobre los estados de transacciones en la Anchor Platform (documentación próximamente) +- Solicitudes [`JSON-RPC`][json-rpc-methods] para actualizar los estados de transacciones en la Anchor Platform + +Lo siguiente también puede ser requerido dependiendo de tu caso de uso: + +- [`DELETE /customer`][delete-customer] si tu negocio desea o debe permitir que los remitentes soliciten la eliminación de datos de clientes + +## Crear un Servidor Empresarial + +Primero, crea un servidor empresarial y agrégalo a nuestro archivo docker compose. + + + +```yaml +version: "3.8" + +services: + sep-server: + image: stellar/anchor-platform:latest + command: --sep-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8080:8080" + depends_on: + - db + platform-server: + image: stellar/anchor-platform:latest + command: --platform-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8085:8085" + depends_on: + - db + + server: + build: . + ports: + - "8081:8081" + env_file: + - ./dev.env + db: + image: postgres:14 + ports: + - "5432:5432" + env_file: + - ./dev.env +``` + + + +Luego, crea un servidor web simple usando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debe iniciar correctamente los tres servicios. + +Esta guía no proporciona una implementación de ejemplo para los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia API Anchor Platform][ap-api], y las secciones siguientes ampliarán conceptos importantes para implementarlos. + +## Puntos finales de Callback de Cliente + +La Anchor Platform nunca almacena la información personal identificable (PII) de tus clientes, actuando en cambio como un servidor proxy entre las aplicaciones cliente y tu negocio, reenviando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación API KYC SEP-12][sep12]. + +### Identificando Clientes + +Se pueden identificar los clientes usando dos enfoques. + +El primer enfoque utiliza una cuenta Stellar y memo. Al usar la Anchor Platform para facilitar pagos transfronterizos, la organización remitente usa su propia cuenta Stellar, la cual se usa para autenticarse vía [SEP-10 Stellar Authentication][ap-sep10], al registrar clientes con tu negocio. Los memos se utilizan para distinguir clientes únicos provenientes de la misma organización remitente. + +El segundo enfoque usa IDs de cliente generados por tu servicio. Por ejemplo, si una organización remitente registra un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: + + + +```json +{ + "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", + "memo": "780284017", + "type": "sep31-sender", + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" +} +``` + + + +En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos suelen ser enteros de 64 bits, pero pueden ser otros tipos de datos, por lo que deben guardarse como cadenas. En respuesta, tu negocio debe devolver un ID de cliente. + + + +```json +{ + "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" +} +``` + + + +Tu servidor empresarial puede usar cualquier identificador para clientes mientras sea una cadena. + +Tras registrar un cliente, la organización remitente puede usar cualquiera de los enfoques para consultar el estado del cliente. Por ejemplo, podrías recibir una solicitud `GET /customer` como la siguiente: + + + +``` +/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender +``` + + + +O, la organización remitente podría usar el identificador que devolviste cuando registró originalmente al cliente. + + + +``` +/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender +``` + + + +Tu negocio necesitará mantener una correspondencia entre la cuenta y memo usados para registrar originalmente al cliente y el ID que devuelves en la respuesta, además de los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podríamos mantener esta correspondencia para tu negocio, de modo que solo tengas que trabajar con los IDs que generas. + +### Tipos de Cliente + +Tu negocio probablemente requiera diferentes conjuntos de información KYC según el tipo de cliente. Puedes definir las etiquetas para cada tipo de cliente en tu archivo `dev.assets.yaml`, y las organizaciones remitentes deben saber qué etiqueta usar al registrar o consultar el estado de clientes. + +En las solicitudes `PUT /customer`, debes usar el tipo enviado para evaluar si el remitente ha proporcionado todos los campos necesarios. En las solicitudes `GET /customer`, debes usar el tipo para determinar el estado del cliente. + +### Prueba con la Demo Wallet + +Puedes probar tu implementación con la [Stellar Demo Wallet][demo-wallet] siguiendo los pasos a continuación. + +1. Selecciona "Generar par de claves para cuenta nueva" +2. Selecciona "Crear cuenta" +3. Selecciona "Agregar Activo" e ingresa el código de activo y el dominio principal de la Anchor Platform, `localhost:8080` +4. Selecciona "Agregar trustline" +5. Fondea tu cuenta con un saldo del activo +6. Selecciona "SEP-31 Enviar" en el menú desplegable + +Deberías ver que la demo wallet encuentra las URL de tu servicio, se autentica y verifica qué campos KYC debe recopilar. Luego presentará un formulario para que ingreses los datos KYC del remitente y receptor. + +[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) + +Una vez que ingreses la información solicitada, la enviará a la Anchor Platform, que a su vez la enviará a tu servidor empresarial. Cuando la demo wallet tenga los IDs de clientes que generaste, iniciará una transacción que debería fallar. + +## Punto final de callback de tasa + +Una vez que la organización remitente haya registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa FX, a tu negocio. La Anchor Platform solicita esta información a tu servidor empresarial usando el punto final [`GET /rate`][get-rate]. + +### Cotizaciones Firmes vs. Indicativas + +Las solicitudes de cotización tendrán un parámetro `type` que será [`indicativo`][indicative] o [`firme`][firm]. Si `type=firm`, tu respuesta debe incluir el campo `id` y la fecha-hora `expires_at`, y reservar la liquidez necesaria para cumplir esta cotización hasta que expire. Si `type=indicative`, no regreses los campos `id` o `expires_at` porque la tasa proporcionada no será usada en una transacción. + +Ten en cuenta que el cliente puede solicitar que la cotización expire tras una fecha-hora específica usando el parámetro `expires_after`. Tu negocio debe respetar esta solicitud devolviendo un valor `expires_at` que sea en o después de la fecha-hora solicitada, o rechazar la petición con un error 400 Bad Request, que será reenviado al cliente. + +### Uso del ID de Cliente + +Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para aplicar los términos comerciales acordados con esa organización remitente, como ofrecer tasas con descuento. `client_id` podría no estar presente en solicitudes indicativas, en cuyo caso debes devolver tu precio de mercado. Actualmente, `client_id` será siempre la clave pública Stellar que la organización remitente usó para autenticarse con la Anchor Platform. + +### Métodos de Entrega + +Es común que las tasas y tarifas de los negocios difieran según las vías de pago usadas para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán la vía de pago que desean que tu negocio use para solicitudes de cotización firme. + +Como este punto final solo se usa actualmente para pagos de remesas en activos off-chain, se utilizará `buy_delivery_method`. Si este punto final alguna vez se usa en otros flujos de transacción como depósitos SEP-24, también se podrá pasar `sell_delivery_method` para negocios que admitan esos tipos de transacciones. + +## Obteniendo Actualizaciones de Estado de Transacciones + +Para facilitar pagos transfronterizos, necesitarás poder detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar a qué transacción pertenecía ese pago. + +La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacciones correspondiente con información sobre el pago. Tu negocio puede detectar estas actualizaciones consultando periódicamente el punto final `GET /transactions` de la API Platform. + +### Ejecutando el Stellar Observer + +El Stellar Observer monitorea el libro mayor de Stellar en busca de pagos hechos a tus cuentas y actualiza los registros de transacciones correspondientes con información del pago on-chain. Para ejecutar el observador, agrega lo siguiente a tu archivo docker compose. + + + +```yaml +services: + ... + observer: + image: stellar/anchor-platform:latest + command: --stellar-observer + env_file: + - ./dev.env + volumes: + - ./config:/home +``` + + + +### Consultando por Pagos Recibidos + +El Stellar Observer realiza solicitudes JSON-RPC a la API Platform cada vez que detecta pagos recibidos para transacciones iniciadas por organizaciones remitentes, actualizando así la fecha-hora `transfer_received_at` de la transacción. + +Tu negocio debe consultar periódicamente el punto final `GET /transactions` de la API Platform para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: + + + +```bash +curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc +``` + + + +La respuesta incluirá una lista de transacciones de pagos transfronterizos iniciadas por organizaciones remitentes. Esta lista estará ordenada según el momento en que se recibió un pago para esa transacción. Por cada transacción devuelta, tu negocio debe verificar si ya ha detectado el pago correspondiente. Si lo ha hecho, has detectado todos los pagos realizados a tus cuentas. + +## Actualizando la Transacción vía JSON-RPC + +El diagrama de flujo SEP-31 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. + +[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el flujo más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo indican que la transacción está en estado de error o ha expirado. + +::: + +Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. + +Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podría devolver la Anchor Platform. + +### Listo para Recibir Fondos + +Las transacciones SEP-31 deberían estar inicialmente en estado `pending_receiver`. Para solicitar fondos del Anchor Remitente, el Anchor Receptor debería cambiar el estado de la transacción a `pending_sender` haciendo la siguiente solicitud RPC: + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +El estado de la transacción cambiará a `pending_sender`. + +### Fondos Recibidos + +Si el Anchor Remitente ha enviado los fondos, el Anchor Receptor debería cambiar el estado de la transacción a `pending_receiver` haciendo la siguiente solicitud JSON-RPC: + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +El estado de la transacción cambiará a `pending_receiver`. + +### Fondos Offchain Enviados + +Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Fondos Offchain Pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Verificando Información del Cliente + +En algunos casos, el Anchor Receptor podría necesitar solicitar información actualizada al Anchor Remitente. Por ejemplo, el banco informa al Anchor Receptor que el nombre del cliente receptor proporcionado es incorrecto o le falta una inicial intermedia. Dado que esta información fue enviada vía SEP-12, la transacción debería pasar al estado `pending_customer_info_update` hasta que el Anchor Remitente haga otra solicitud SEP-12 `PUT /customer` para actualizarla. El Anchor Remitente puede verificar qué campos necesitan actualizarse haciendo una solicitud SEP-12 `GET /customer` incluyendo los parámetros de id o cuenta y memo. El Anchor Receptor debe responder con un estado `NEEDS_INFO` y el campo `last_name` incluido en los campos descritos. + +Después de que el Anchor Remitente haga una solicitud SEP-12 `PUT /customer`, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método cada vez que el estado SEP-12 de un cliente cambie, por ejemplo cuando la información del cliente se esté validando y el estado cambie de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del estado más reciente del cliente, permitiendo que el cliente solicite al usuario que actualice su información. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep31-receiver" // or sep31-sender + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Reembolso Enviado + +Existe la posibilidad de enviar todos los fondos de regreso al `Sending Anchor` (reembolso). Debes reembolsar la suma total (reembolso completo). + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::note + +No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa deben sumar `amount_in`. De lo contrario, obtendrás un error. + +::: + +### Error de Transacción + +Si encuentras un error irrecuperable al procesar la transacción, es obligatorio establecer el estado de la transacción en `error`. Puedes usar el campo message para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario ha hecho una transferencia, deberías hacer una recuperación de transacción, y luego puedes reintentar procesar la transacción o iniciar un reembolso. + +::: + +### Transacción Expirada + +Tu negocio puede querer expirar aquellas transacciones que el usuario haya abandonado tras cierto tiempo. Es una buena práctica limpiar transacciones inactivas en estado `incomplete`. Para ello, simplemente cambia el estado de la transacción a `expired`. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después de que el usuario haya hecho la transferencia. + +::: + +### Recuperación de Transacción + +El estado de la transacción puede cambiarse de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar la transacción, es necesario hacer la siguiente solicitud JSON-RPC: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +### Configuración + +Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: + + + +```yaml +items: + - ... + sep31: + quotes_required: false +``` + + + +[ap-api]: ../../README.mdx +[ap-sep10]: ../sep10/README.mdx +[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[demo-wallet]: https://demo-wallet.stellar.org +[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp +[firm]: https://www.investopedia.com/terms/f/firmquote.asp +[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx +[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx +[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx +[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx +[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx +[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests +[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request +[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response +[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep45/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep45/README.mdx new file mode 100644 index 0000000000..d8cf10d66e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep45/README.mdx @@ -0,0 +1,144 @@ +--- +title: Autenticación Stellar para Cuentas de Contrato (SEP-45) +sidebar_position: 70 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +## Descripción general + +SEP-45 (Stellar Web Authentication for Contract Accounts) permite a las aplicaciones de billeteras inteligentes crear sesiones autenticadas con anchors de Stellar demostrando el control sobre una cuenta de contrato (`C...`). Una vez autenticadas, las billeteras reciben un JSON Web Token (JWT) que usan en solicitudes posteriores a los servicios estandarizados del anchor. + +Para la especificación completa, consulta [SEP-0045: Stellar Web Authentication for Contract Accounts][sep-45]. + +La Anchor Platform implementa SEP-45 con soporte para: + +- **Flujo de Challenge/Response**: GET `/sep45/auth` para solicitar entradas de autorización, POST `/sep45/auth` para validar y recibir un JWT +- **Autenticación de Cuenta de Contrato**: Soporte para cuentas de contrato (`C...`) usando entradas de autorización Soroban +- **Simulación de Transacciones**: Simulación automática de transacciones para verificar entradas de autorización +- **Múltiples Dominios Principales**: Soporte para múltiples dominios y patrones comodín + +:::info + +**SEP-45 vs SEP-10**: SEP-45 no reemplaza a SEP-10. SEP-45 admite cuentas de contrato (`C...`), mientras que SEP-10 admite cuentas clásicas (`G...`) y cuentas muxed (`M...`). Los servicios que deseen admitir todos los tipos de cuentas deben implementar ambos SEPs. + +::: + +## Flujo Típico de Autenticación + +1. El **Cliente** solicita un desafío único al **Servidor** +2. El **Cliente** verifica y firma el desafío +3. El **Cliente** envía el desafío firmado al **Servidor** +4. El **Servidor** verifica el desafío y responde con un token de sesión JWT + +Se proporciona una implementación del contrato SEP-45 en el [repositorio Anchor Platform][sep-45-contract]. Una instancia de este contrato está desplegada en `CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX` en testnet. + +## Activar SEP-45 + +SEP-45 requiere integración con Stellar RPC para simular transacciones. Anchor Platform puede conectarse al servidor Stellar RPC que elijas. Puedes usar un proveedor público de Stellar RPC o ejecutar el tuyo propio. Una lista de proveedores públicos se encuentra [aquí][rpc-providers]. + +Para habilitar SEP-45, configura las siguientes variables de entorno en tu archivo `dev.env`. + + + +```bash +# dev.env +STELLAR_NETWORK_TYPE=rpc +STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org +SEP45_ENABLED=true +SEP45_HOME_DOMAINS=localhost:8080 +SEP45_WEB_AUTH_CONTRACT_ID="CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP45_JWT_SECRET="a secret encryption key" +``` + + + +### Configuración requerida (si está habilitada) + +| Variable | Predeterminado | Descripción | +| ---------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `STELLAR_NETWORK_TYPE` | _Requerido_ | Debe establecerse en `rpc` para SEP-45. Esto habilita el modo RPC para Anchor Platform. | +| `STELLAR_NETWORK_RPC_URL` | _Requerido_ | La URL del servidor Stellar RPC utilizado para simulate transacciones. Puedes usar un proveedor público o ejecutar el tuyo propio. Puedes encontrar una lista de proveedores públicos [aquí][rpc-providers]. | +| `SEP45_ENABLED` | `false` | Establece en `true` para habilitar la autenticación SEP-45 | +| `SEP45_HOME_DOMAINS` | _Requerido_ | Lista de dominios principales (separados por comas). Admite patrones comodín como `*.stellar.org`. El `home_domain` debe coincidir con el host donde se sirve tu archivo `stellar.toml`. | +| `SEP45_WEB_AUTH_CONTRACT_ID` | _Requerido_ | El ID del contrato del contrato SEP-45. Este contrato debe implementar la función `web_auth_verify` como se describe en la [especificación SEP-45][sep-45]. | +| `SECRET_SEP10_SIGNING_SEED` | _Requerido_ | La clave privada correspondiente a la `SIGNING_KEY` en tu archivo `stellar.toml`. SEP-45 usa la misma clave de firma que SEP-10. Se usa para firmar los desafíos de autenticación. | +| `SECRET_SEP45_JWT_SECRET` | _Requerido_ | La clave de cifrado utilizada para firmar y verificar los tokens JWT emitidos a billeteras autenticadas. | + +:::important + +- **Requisito RPC**: SEP-45 requiere Stellar RPC para simulate transacciones. Debes establecer `STELLAR_NETWORK_TYPE=rpc` y proporcionar una `STELLAR_NETWORK_RPC_URL` válida. +- **ID del contrato**: El `SEP45_WEB_AUTH_CONTRACT_ID` debe coincidir con el contrato desplegado en la dirección especificada en el campo `WEB_AUTH_CONTRACT_ID` de tu archivo `stellar.toml`. +- **Clave de firma**: La `SIGNING_KEY` en tu archivo `stellar.toml` debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED`. + +::: + +### Configuración opcional + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP45_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge timeout in seconds (default: 900) +SEP45_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP45_JWT_TIMEOUT=86400 +``` + + + +| Variable | Predeterminado | Descripción | +| ----------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SEP45_WEB_AUTH_DOMAIN` | Primer `home_domain` si se especifica solo uno, de lo contrario vacío | La propiedad `web_auth_domain` utilizada en las respuestas SEP-45. Requerido si tienes múltiples `home_domains` o usas patrones comodín. Debe coincidir con el host del servidor SEP. | +| `SEP45_AUTH_TIMEOUT` | `900` | Tiempo en segundos que un desafío permanece válido. Los clientes deben firmar y enviar las entradas de autorización dentro de este período. | +| `SEP45_JWT_TIMEOUT` | `86400` | Tiempo en segundos que un token JWT emitido permanece válido. Después de la caducidad, los clientes deben autenticarse nuevamente. | + +:::tip + +**Múltiples dominios principales**: Si especificas múltiples `home_domains` (por ejemplo, `ap.stellar.org,*.sdp.stellar.org`), también debes establecer `SEP45_WEB_AUTH_DOMAIN` para indicar qué dominio aloja el endpoint de autenticación. + +::: + +## Configurar stellar.toml + +Actualiza tu archivo `stellar.toml` para anunciar soporte para SEP-45. Las billeteras descubren tu endpoint de autenticación a través de este archivo. + + + +```toml +# dev.stellar.toml + +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +``` + + + +Estos campos deben coincidir con las opciones de configuración establecidas en la sección [Habilitar SEP-45](#enable-sep-45) arriba. + +`WEB_AUTH_FOR_CONTRACTS_ENDPOINT` - La URL donde se ejecuta el servicio de autenticación. Esta es la URL que los clientes usarán para autenticarse con el anchor. El endpoint debe admitir: + +- `GET ` - Solicitar entradas de autorización +- `POST ` - Intercambiar entradas de autorización firmadas por JWT de sesión + +`WEB_AUTH_CONTRACT_ID` - El ID del contrato del contrato SEP-45. Este es el contrato que se usará para construir el desafío. El contrato debe implementar la función `web_auth_verify` como se describe en la [especificación SEP-45][sep-45]. Esto debe coincidir con `SEP45_WEB_AUTH_CONTRACT_ID`. + +:::important + +- **`SIGNING_KEY`**: Debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_FOR_CONTRACTS_ENDPOINT`**: Usa `https://` en producción. La ruta `/sep45/auth` es el endpoint estándar de SEP-45. +- **Coincidencia de host**: El host en `WEB_AUTH_FOR_CONTRACTS_ENDPOINT` debe coincidir con uno de tus `SEP45_HOME_DOMAINS` (o con `SEP45_WEB_AUTH_DOMAIN` si se especifica). + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[sep-45-contract]: https://github.com/stellar/anchor-platform/tree/main/soroban/contracts/web-auth +[rpc-providers]: /docs/data/apis/rpc/providers diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/README.mdx new file mode 100644 index 0000000000..cca0608278 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/README.mdx @@ -0,0 +1,10 @@ +--- +title: Depósitos y Retiros Programáticos (SEP-6) +sidebar_position: 80 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-6 permite que las billeteras y/o exchanges interactúen con un anchor en nombre de los usuarios, sin que el usuario tenga que interactuar directamente con la rampa de entrada y salida. + + diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/configuration.mdx new file mode 100644 index 0000000000..1e8eb8b347 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/configuration.mdx @@ -0,0 +1,256 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +# Configuración + +Para habilitar depósitos y retiros SEP-6, la Plataforma Anchor debe configurarse para hacer lo siguiente: + +- Proporcionar las URLs del servicio necesarias para los puntos finales SEP-6, 12 y 38 en el archivo `stellar.toml` +- Proporcionar información sobre los activos onchain y offchain, así como las vías de pago, que tu negocio soporta mediante los puntos finales SEP-6 y SEP-38 `/info` +- Soportar los endpoints y callbacks necesarios para solicitar información KYC y proporcionar tasas de cambio + +## Habilitar Depósitos y Retiros Programáticos + +Agrega las siguientes variables a tu archivo de entorno. + + + +```bash +# dev.env +SEP6_ENABLED=true +SEP12_ENABLED=true +SEP38_ENABLED=true +``` + + + +### Modificar un Archivo de Información Stellar + +Vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 está soportada por tu negocio, y también necesitan conocer todos los activos Stellar que soportas. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER = "http://localhost:8080/sep6" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que necesitarás crear otro archivo para tu despliegue en producción que use la frase de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución Mainnet y clave de firma, así como las cuentas emisoras Mainnet de los activos que tu servicio utilice. + +### Modificar el Archivo de Configuración de Activos + +Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml` y cambiar los valores según tu caso de uso. Este archivo de ejemplo habilita el soporte para USDC de Circle y un USD fiat para depositar y retirar. + +Los métodos especificados en las secciones `sep38` son los que expondrá el endpoint SEP-38 [`GET /info`][sep38]. + +Los métodos especificados en las secciones `deposit` y `withdraw` son los que expondrá el endpoint SEP-6 [`GET /info`][sep-6]. Los métodos listados deben coincidir con los definidos en la sección SEP-38 del archivo. + +También observa que los activos fiat, aquellos con `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit` o `withdraw` especificados. De igual forma, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` ni `sep38.buy_delivery_methods` especificados. + + + +```yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD + - id: iso4217:USD + significant_decimals: 2 + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + buy_delivery_methods: + - name: ACH + description: ACH debits for US bank accounts + sell_delivery_methods: + - name: ACH + description: ACH credit for US bank accounts +``` + + + +### Administrar Cuentas de Distribución + +Observa que en el ejemplo anterior se lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta será proporcionada junto con un memo generado aleatoriamente y único por transacción a los clientes como la dirección a la que enviar fondos para las transacciones de retiro. El memo de la transacción es cómo tú o la Plataforma Anchor coincidirán los fondos recibidos con un registro de transacción en la base de datos de la Plataforma Anchor. + +Si no tienes una cuenta Stellar propia y usas un tercero que te proporciona una cuenta Stellar y memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, deberías omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y memo que deseas usar para recibir fondos mediante una solicitud al [`request_onchain_funds`][request-onchain-funds] de la Plataforma Anchor por cada transacción. + +Para configurar la Plataforma Anchor para que espere que la cuenta Stellar y el memo se proporcionen vía API en lugar de configurarse mediante el archivo de activos, especifica la siguiente variable de entorno. + + + +```bash +# dev.env +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +``` + + + +### Habilitar Callbacks al Servidor del Negocio + +Los negocios necesitan recopilar y validar información KYC de los clientes para quienes facilitan transacciones. Los clientes preguntan a tu negocio qué información KYC debe recopilarse y envían esa información a través de la API KYC SEP-12 hospedada por la Plataforma Anchor, pero la Plataforma Anchor nunca almacena información personal identificable (PII). En su lugar, reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. + +Además, los negocios necesitan proporcionar a los clientes una API de [Tasas][get-rates-api] para consultar las tasas de cambio que ofrecen entre los activos onchain y offchain soportados por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso con la tasa que el negocio ofrece por un período corto de tiempo. De manera similar a la API KYC, la Plataforma Anchor realiza solicitudes a tu servidor de negocio para obtener tasas de cambio y cotizaciones, y las devuelve a los clientes. + +Para habilitar estas solicitudes a tu servidor del negocio, primero deberás agregar tu servidor del negocio al archivo docker compose. Luego, para soportar solicitudes hacia tu servidor desde la Plataforma Anchor, necesitas habilitar los callbacks. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +Lo anterior indica a la Plataforma Anchor que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes hechas a `/callbacks/` para que tu servidor pueda autenticar la Plataforma Anchor antes de procesar las solicitudes. + +Consulta la [API KYC][platform-api-kyc] y la [API de Tasas][get-rates-api] para detalles sobre los puntos finales que deben implementarse en tu servidor del negocio. + +### Configuración Adicional Opcional + +`more_info_url` es una URL opcional proporcionada por tu servidor del negocio para que las aplicaciones de billetera muestren información sobre transacciones iniciadas previamente. Esta URL es típicamente usada por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información a mostrar acerca de la transacción. + + + +```bash +# dev.env +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +Los negocios pueden establecer una fecha límite para acciones del usuario sobre transacciones mediante el campo `user_action_required_by`. Para ejemplos, consulta los [Métodos JSON-RPC][json-rpc-methods]. Además, el parámetro `initial_user_deadline_seconds` establece un tiempo por defecto (en segundos) que tiene el usuario para actuar antes de que la transacción pase al estado `EXPIRED`. + + + +```bash +# dev.env +SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +## Probar con la Billetera Demo + +Las billeteras ahora deberían poder descubrir, autenticar y comenzar transacciones con tu servicio. Tu proyecto y archivos fuente ahora deberían verse algo así. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Tu entorno ahora debería verse similar al siguiente. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP6_ENABLED=true +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" + +SEP12_ENABLED=true + +SEP38_ENABLED=true + +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +Para probar esto, ve a la [Billetera Demo Stellar][stellar-demo-wallet]. + +Inicia una transacción de depósito haciendo lo siguiente: + +- Crear un nuevo par de claves +- Haz clic en el botón "Add Asset" e ingresa + - el código del activo Stellar en tu archivo `stellar.toml` + - tu dominio principal, `localhost:8080` +- Selecciona el desplegable y haz clic en "SEP-6 Deposit", luego haz clic en "Start" + +La billetera demo debería poder encontrar tu archivo `stellar.toml`, autenticar usando el par de claves Stellar que acabas de crear e iniciar una transacción. + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep1-ap]: ../sep1/README.mdx +[stellar-demo-wallet]: https://demo-wallet.stellar.org/ +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx +[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx +[how-to-use-jwt]: ../sep24/faq.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/getting-started.mdx new file mode 100644 index 0000000000..d7b57a6a84 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/getting-started.mdx @@ -0,0 +1,34 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía te guiará a través de la configuración e integración con Anchor Platform con el propósito de desarrollar un servicio de acceso y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos programáticos. + +Aprovechando el soporte de Anchor Platform para SEP-6, las empresas ofrecen su propio servicio de acceso y salida como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchange, ampliando su alcance y conectándose con los usuarios mediante las aplicaciones que ya usan. + +Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] Anchor Platform y configurado las funcionalidades necesarias requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap], [SEP-10 (Stellar Authentication)][sep10-ap] y [SEP-45 (Stellar Web Authentication for contract account)][sep45-ap]. + +## La experiencia básica del usuario + +La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: + +1. El cliente abre la aplicación de billetera SEP-6 de su elección +2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) +3. Una vez que la billetera se autentica con el anchor, el cliente empieza a ingresar su información KYC y datos de la transacción solicitados por el anchor +4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (como transferencia bancaria) +5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor + +Luego, el cliente puede usar el activo digital en la red Stellar para remesas, pagos, comercio, almacén de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual sería algo así: + +1. El cliente abre su aplicación de billetera +2. El cliente selecciona el activo para retirada y la billetera encuentra el anchor +3. Después de autenticarse con el anchor, el cliente puede ingresar la información de la transacción y cualquier otra información KYC adicional que no se haya recopilado aún +4. Luego de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar +5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados mediante cualquier método admitido por el anchor (como transferencia bancaria) + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/integration.mdx new file mode 100644 index 0000000000..40b1a28719 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-ap/current/sep-guide/sep6/integration.mdx @@ -0,0 +1,899 @@ +--- +title: Integración +sidebar_position: 30 +--- + +import { CodeExample } from "@site/src/components/CodeExample"; +import { AttributeTable } from "@site/src/components/AttributeTable"; +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +Uno de los principales puntos de interacción con la Plataforma Anchor es notificar a la Plataforma sobre eventos relacionados con transacciones. + +En general, querrás proporcionar actualizaciones para los siguientes eventos. + +- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción +- Tu negocio actualizó las cantidades de entrada/salida/tarifa para una transacción +- Tu negocio está listo para recibir fondos del usuario +- Tu negocio ha recibido fondos del usuario +- Tu negocio ha enviado fondos al usuario +- Tu negocio ha procesado un reembolso para la transacción del usuario +- Tu negocio experimentó un error inesperado + +Esto se hace realizando solicitudes JSON-RPC al endpoint de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer la solicitud JSON-RPC correspondiente y pasar los datos que requiere el método RPC. + +La API JSON-RPC de la Plataforma Anchor está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Por ello, la API se llamará cada vez que un usuario o el anchor realice una acción que avance el estado de la transacción en el flujo. + +La comunicación desde la Plataforma Anchor sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. + +Puedes obtener más información sobre el flujo de transacciones y estados en el [documento del protocolo SEP-6][sep-6]. + +## callbacks + +La Plataforma Anchor depende del servidor del negocio para proporcionar y almacenar información sobre clientes y cotizaciones. + +### Información del Cliente + +La Plataforma Anchor no almacena información del cliente. En su lugar, reenvía todas las solicitudes SEP-12 de clientes al servidor del negocio. El servidor del negocio es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor del negocio debe implementar las [APIs de cliente][customer-callback] para manejar actualizaciones KYC. + +### Cotizaciones y Tarifas + +Para soportar el intercambio de activos no equivalentes, la Plataforma Anchor expone una API compatible con SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotizaciones se usa para ofrecer al usuario la cantidad esperada del activo que recibirá a cambio del activo que envía. La API de cotizaciones también se usa para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor del negocio debe implementar la [API de tasas][rate-callback] para proveer cotizaciones a la Plataforma Anchor. + +## Asegurar la API de la Plataforma + + + +### Uso de clave API + + + +### Uso de JWT + + + +## Realizar solicitudes JSON-RPC + + + +### Solicitud JSON-RPC + + + +### Respuesta JSON-RPC + + + +### Códigos de error + + + +## Actualizar transacción de depósito (exchange) vía JSON-RPC + +El diagrama del flujo de depósito SEP-6 define las secuencias/reglas de transición de estado de la transacción y un conjunto de métodos JSON-RPC que se deben llamar para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Plataforma Anchor devolverá un error y no cambiará el estado de la transacción. + +El flujo de depósito de exchange es el mismo que el flujo de depósito, excepto que no será necesario recalcular las cantidades al solicitar fondos offchain, si el usuario ha proporcionado una cotización firme del anchor. + +[![flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden ser omitidos. + +Los estados en rojo indican que la transacción está en un estado de error o que ha expirado. + +::: + +### Verificación de Información KYC + +Aunque la Plataforma Anchor no requiere que un cliente haya recopilado su información KYC antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice la transferencia. Al escuchar eventos de transacción creada o mediante el sondeo del endpoint [`GET /transactions`][get-transactions], puedes determinar si una transacción requiere que el cliente actualice su información. Los campos SEP-9 requeridos pueden comunicarse al usuario devolviendo un estado `NEEDS_INFO` con los campos obligatorios en el atributo `fields`. + +Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método siempre que el estado SEP-12 de un cliente cambie, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback reciba la notificación del último estado del cliente, permitiendo que el cliente solicite al usuario que actualice su información. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep6-deposit" // or sep6-withdrawal + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Listo para Recibir Fondos + +Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar las cantidades finales al usuario. Para hacer esto, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + }, + "instructions": { + "organization.bank_number": { + "value": "123456789", + "description": "US Bank routing number" + }, + "organization.bank_account_number": { + "value": "123456789", + "description": "US Bank account number" + } + } + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es el total de tarifas cobradas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. +- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y número de cuenta `123456789`. + +La información sobre montos (entrada/salida/tarifa) es requerida si quieres mover la transacción al estado `pending_user_transfer_start`. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::caution + +Para depósitos de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. + +::: + +### Fondos Recibidos + +Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` es la fecha y hora de recepción de los fondos. +- `external_transaction_id` es el ID de la transacción en la red externa. + +Los campos de cantidades son opcionales. Si se omiten, se usarán los valores previos a esta solicitud. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Esperando Fondos del Usuario + +En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero que los fondos aún no han sido recibidos. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Enviando Fondos Onchain + +A continuación, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar haya sido enviada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados con éxito. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. + +### Confianza Pendiente + +Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Existen dos formas en que la transacción puede moverse al estado `pending_trust`. La primera es cuando el servidor de negocios detecta que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y desea notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +El sistema de procesamiento de pagos verifica periódicamente si la trustline se configuró. Si lo estuvo, enviará automáticamente un pago y cambiará el estado de la transacción a `pending_stellar`. + +::: + +### Confianza Establecida + +Este estado debe establecerse si el negocio detectó que la trustline fue o no configurada por el usuario. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- bandera `success` que define si la trustline fue configurada o no por el usuario + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Dependiendo de la bandera `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue establecida, o a `pending_anchor` si no lo fue. + +::: + +### Reembolso Enviado + +A veces es necesario devolver fondos al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o hacer un conjunto de reembolsos parciales al `source_account` usando el `refund_memo` y el `refund_memo_type` asociados con la transacción si están presentes. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. + +::: + +### Reembolso Pendiente + +Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a una red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá al esperar que Bitcoin u otra red externa de criptomonedas complete una transacción, o al esperar una transferencia bancaria. + +### Error de Transacción + +Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario ha hecho una transferencia, deberías hacer una recuperación de transacción, y luego puedes reintentar procesarla o iniciar un reembolso. + +::: + +### Transacción Expirada + +Tu negocio puede querer manejar las transacciones abandonadas expirándolas si permanecen inactivas durante cierto período. Para lograr esto, verifica el estado de la transacción usando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como expirar la transacción o iniciar un reembolso automático, según el estado actual de la transacción. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después de que el usuario haya hecho una transferencia. + +::: + +### Recuperación de Transacción + +El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o seguir procesando la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Actualizar transacción de retiro (exchange) vía JSON-RPC + +El diagrama del flujo de retiro SEP-6 define la secuencia/reglas de transición del estado de la transacción. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Plataforma Anchor devolverá un error y no cambiará el estado de la transacción. + +El flujo de retiro de exchange es el mismo que el flujo de retiro, excepto que no será necesario recalcular las cantidades al solicitar fondos onchain, si el usuario ha proporcionado una cotización firme del anchor. + +[![flujo de retiro sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden ser omitidos. + +Los estados en rojo indican que la transacción está en un estado de error o que ha expirado. + +::: + +Una vez que el flujo de retiro ha finalizado, implementar el retiro es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. + +El punto de partida tanto para retiro como para depósito es el mismo. + +### Listo para Recibir Fondos + +De forma similar al depósito, el paso después de recoger el KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar las cantidades finales al usuario. Para hacer esto, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es el total de tarifas cobradas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. +- `memo` es el memo que el usuario debe usar al enviar sus fondos onchain al anchor. +- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos onchain al anchor. +- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::caution + +Para retiros de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. + +::: + +:::tip + +Establecer `memo`, `memo_type` y `destination_account` es opcional. + +Si la integración con un custodio externo está habilitada, la Plataforma Anchor puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. También puedes proveer `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto ayuda a asociar las transacciones Stellar con las transacciones SEP. + +Si tu negocio administra los activos, la Plataforma Anchor puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Plataforma Anchor establece automáticamente `memo` y `memo_type` (solo si no están incluidos en la solicitud). + +::: + +:::note + +La cuenta Stellar que se usará para recibir fondos debe estar configurada. + +::: + +### Fondos Recibidos + +Si se recibieron fondos onchain, debes proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +Este método será llamado por el observador de pagos Stellar cuando detecte que se han recibido fondos en cadena. + +::: + +### Cantidad Actualizada + +Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere de lo especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Solo `amount_out` y `fee_details` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. + +::: + +### Fondos Offchain Disponibles + +Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y está listo para que el usuario/destinatario los recoja. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Fondos Offchain Pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Fondos Offchain Enviados + +Para completar la transacción y cambiar su estado a `completed`, debes hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Reembolso Enviado + +La lógica de reembolso funciona igual que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. + +### Error de Transacción + +Funciona igual que para el flujo de depósito. Para más detalles, consulta [Error de Transacción](#transaction-error) del flujo de depósito. + +### Transacción Expirada + +Funciona igual que para el flujo de depósito. Para más detalles, consulta [Transacción Expirada](#expired-transaction) del flujo de depósito. + +### Recuperación de Transacción + +Funciona igual que para el flujo de depósito. Para más detalles, consulta [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. + +## Seguimiento de Transacciones Stellar + + + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[manejo de eventos]: ../../admin-guide/events/README.mdx +[callback de cliente]: ../../api-reference/callbacks/README.mdx +[callback de tasa]: ../../api-reference/callbacks/README.mdx +[obtener-transacciones]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10.json deleted file mode 100644 index ed5b36a0b7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2,10", - "description": "The label for version 2.10" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "API JSON-RPC", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callback", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/README.mdx deleted file mode 100644 index b50b2941c7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Introducción a la Anchor Platform -sidebar_position: 10 ---- - -# Anchor Platform - -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y negocios crear sus propios servicios de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, incluida la implementación de varias Propuestas del Ecosistema Stellar (SEP), para facilitar la integración de los negocios con billeteras y exchanges basados en Stellar. - -La plataforma también incluye funciones para gestionar activos, transacciones y cuentas de usuario, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de creación y gestión de un servicio financiero basado en Stellar, permitiendo a los negocios centrarse en proporcionar valor a sus clientes. - -Aprende sobre la integración con la Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o obtén información de la API en la [Referencia de API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/README.mdx deleted file mode 100644 index 7fc3fff760..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía de administrador -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre cómo configurar, ejecutar y usar la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/architecture.mdx deleted file mode 100644 index 62f0338576..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son necesarios para todos los despliegues de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y hace solicitudes al sistema. Los clientes hacen solicitudes al componente del servidor SEP de la Anchor Platform utilizando conjuntos de estándares llamados [SEPs][seps] (Propuestas del Ecosistema Stellar). - -#### Servidor SEP - -El servidor SEP es un servidor orientado al cliente y, por lo tanto, debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como el tipo de cambio para un par de activos o el estado de KYC de un cliente, hace solicitudes sincrónicas [callback][callback-api] al servidor de negocios y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocios - -El servidor de negocios es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocios responde a solicitudes de callback enviadas por el servidor SEP, como solicitudes de cotización, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido a tu cuenta Stellar, y proporciona actualizaciones al servidor de plataforma cuando ocurren eventos fuera de cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de plataforma es un componente interno. Debería estar alojado en una red privada y no debería ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones utilizando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se utiliza principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales utilizar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a clientes registrados y a tu servidor de negocios cuando el estado de las transacciones cambia, eliminando la necesidad de que los clientes y/o tu servidor de negocios consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema de Kafka por otros componentes de la Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para empresas que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el Servidor de Custodia también puede facilitar pagos salientes a las cuentas Stellar de los clientes. Si también utilizas el servicio de [events], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una integración con tu proveedor de billeteras, entonces este componente no es necesario, aunque tu servidor de negocios deberá notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform se haya enviado a o desde tus cuentas Stellar a través de la [Platform API][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Observador Stellar - -El Stellar Observer, una alternativa al servidor de custodia ilustrado arriba, monitorea la blockchain Stellar utilizando Horizon, detecta automáticamente los pagos de los usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [events], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon, o RPC, entonces este componente no es necesario, aunque tu servidor de negocios deberá notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform se haya realizado a una de tus cuentas Stellar a través de la [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[eventos]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 8386968677..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Usar el Payment Observer te permite delegar este paso a la Anchor Platform. Para habilitar el Payment Observer, utiliza el `--stellar-observer` flag en la sección de comandos del [archivo de composición](../../getting-started.mdx#configuration). - -El Payment Observer rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando se detecte la transacción con el memo esperado en la red, el estado cambiará automáticamente a `pending_anchor` y el evento será emitido (si se usa Kafka). - -Para actualizar los estados de las transacciones, el observador realiza las solicitudes JSON-RPC correspondientes a la plataforma. Debería usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Payment Observer no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea pagos, asegúrate de que la lógica del sistema igualará la descripción a continuación: - -Primero, espera a que la transacción se incluya en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que se haya detectado y verificado esta transacción, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 4ef2ef2c1e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :----------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto Request válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Invalid method parameter(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se está devolviendo desde la Anchor Platform en una solicitud de inicio de retirada de fondos o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 6ffb91bf0f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. DEBE ser exactamente "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. Lista de métodos disponibles que puedes ver en [Métodos JSON-RPC][json-rpc-methods] -- params - - objeto - - Un valor estructurado que contiene los valores de parámetros, correspondientes a la llamada al método, que se utilizarán durante la invocación del método -- id - - cadena - - Un identificador establecido por el cliente. El servidor responderá con el mismo valor en el objeto Response - - - -:::tip - -Es posible proporcionar múltiples actualizaciones en una única solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se realiza una actualización de esta manera, todas las actualizaciones se realizarán secuencialmente. - -Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE APLICARÁN y todas las actualizaciones posteriores SE PROCESARÁN y APLICARÁN también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/response.mdx deleted file mode 100644 index b21b1ba52f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un solo objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. It's set to "2.0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles de la transacción actualizada -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Id único de la transacción para la cual ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Por favor, consulta una lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index 08f644a9c7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform que se hospeda en el puerto predeterminado (8085). Los datos de transacción JSON almacenados en el archivo proporcionado se usarán como cuerpo (las solicitudes deben ser un array). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/api_key.mdx deleted file mode 100644 index cfcabe9888..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación de clave API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `X-Api-Key` válido, configurado con la clave API configurada. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/jwt.mdx deleted file mode 100644 index a136821e8d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres para mayor seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/security.mdx deleted file mode 100644 index d6e9374ce3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -Por defecto, los endpoints de la API de la Plataforma, como `GET /transactions` y `GET /transactions/:id`, no están protegidos y son accesibles para cualquier persona que tenga acceso al servidor, incluidas las aplicaciones de billeteras. - -::: - -:::info - -Se recomienda mantener el servidor de la Plataforma accesible solo desde la red privada. Sin embargo, puede que desees añadir una capa adicional de protección mediante la seguridad de la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/README.mdx deleted file mode 100644 index 6bbaf661d5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de Custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Usar un servicio de custodia te permitirá utilizar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index db0b906e04..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si quieres usar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas desplegar un servicio más: el Servidor de Custodia. - -Este servicio también necesita el `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. De forma predeterminada, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas desplegar el Stellar Observer ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si configuras el tipo de autenticación `api_key` o `jwt`, entonces necesitas agregar una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia usando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.10.0 --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósito para SEP-24 y SEP-31. Además, necesitas configurar una verificación de trustline, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - el memo y el tipo de memo se generan en el código local, y la cuenta de distribución se utiliza para la dirección de depósito. -- `custody` - el memo y el tipo de memo se generan a través de la API de Custodia, por ejemplo Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, el memo y el tipo de memo deben ser proporcionados por la empresa en una solicitud PATCH/JSON-RPC. -- `api` - el memo y el tipo de memo se generan a través de la llamada al endpoint GET /unique_address del anchor. - -::: - -## Configuración del Servidor de Referencia Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index e179fc9611..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configurar [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 107fdc79b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar usuario API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL del Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de dirección única](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del Servidor de Custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 90fa83fe31..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones de diagramas de secuencia se encuentran en la carpeta /static/definitions" -[comentario]: # "Para actualizarlos, utiliza https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de reconciliación: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retiro SEP-24 con webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retiro SEP-24 con trabajo de reconciliación: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de reconciliación: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/README.mdx deleted file mode 100644 index 05512d486b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de Eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos de webhook HTTP. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/delivery.mdx deleted file mode 100644 index ed2d6508e9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de Entrega -sidebar_position: 30 ---- - -## Garantías de Entrega - -Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del corredor que uses. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden ser entregados fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debe usar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor de negocios. - -### Garantías de Entrega del Cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento a ese cliente. - -### Garantías de Entrega del Servidor de Negocios - -El servicio de eventos intentará entregar cada evento al servidor de negocios hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor de negocios no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento al servidor de negocios. - -:::note - -Las garantías de entrega del servidor de negocios son las mismas que las garantías de entrega del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a clientes que no sean accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/getting-started.mdx deleted file mode 100644 index 908820c635..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones HTTP webhook a: - -**Servidores de Negocios** - -- Cambios en el estado de las transacciones -- Actualizaciones de cotizaciones -- Cambios en el estado de KYC del cliente - -Los esquemas de eventos para servidores empresariales están definidos en la [referencia de API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones de Clientes** - -- Cambios en el estado de las transacciones que afectan a sus usuarios -- Cambios en el estado de KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para aplicaciones de clientes están definidos en sus respectivos SEP:_ - -- [SEP-6 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Eventos de Clientes](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores de negocios y las aplicaciones de clientes consulten continuamente las APIs para actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/integration.mdx deleted file mode 100644 index 4fd442d9dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te guiará a través de la integración con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend. - -Asume familiaridad con Kafka y no cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema Kafka `TRANSACTION`. El servicio de eventos consumirá eventos de este tema y los enviará a los puntos finales apropiados. - -## Configuración - -Primero, el productor Kafka del servicio de eventos necesita ser configurado utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. El siguiente es el conjunto de variables de entorno requeridas para configurar el productor Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite configurar un subconjunto de la configuración del cliente del productor Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para obtener más información sobre lo que está disponible. Para obtener más información sobre la configuración del cliente del productor Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, el procesador de eventos necesita ser configurado en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto permitirá que el procesador de eventos comience a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los puntos finales de callback del cliente y del servidor empresarial. - -## Recibiendo Eventos - -El servicio de eventos puede ser utilizado para enviar eventos a los puntos finales de callback del cliente y del servidor empresarial. El servicio de eventos enviará eventos a estos puntos finales como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como Aplicación Cliente - -Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios y la información del cliente. El esquema de los datos del evento dependerá del tipo de evento que se envíe. - -Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de callback a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite configurar puntos finales únicos por tipo de evento. - -Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para obtener más información. - -#### Firma de Callback - -Anchor Platform firma las solicitudes de callback que envía a las aplicaciones cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de la firma de URL de callback se puede encontrar en las especificaciones de protocolo SEP correspondientes. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como Servidor Empresarial - -Además de las actualizaciones del estado de las transacciones SEP, los servidores empresariales pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la [documentación de la API de eventos](../../api-reference/callbacks/post-event.api.mdx) para obtener más información sobre el esquema de los datos del evento. - -Para recibir eventos como un servidor empresarial, necesitarás exponer una URL de callback a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de callback del servicio de eventos puede ser configurada utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -:::caution - -El `--event-processor` ignorará cualquier segmento de ruta especificado en `callback_api.base_url` y en su lugar enviará eventos a `[scheme]://[host]:[port]/event`. Este es un error, pero para no interrumpir a quienes usan el procesador de eventos, pospondremos la corrección de incluir segmentos de ruta en la versión 3 de Anchor Platform. - -::: - -El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación de clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de callback del servicio de eventos que será utilizada para enviar eventos a los puntos finales de callback del cliente y del servidor empresarial. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del punto final de callback del servidor empresarial. -- `secret`: El secreto que se utilizará al enviar eventos al punto final de callback del servidor empresarial. Esto se utiliza para firmar el cuerpo de la solicitud cuando se habilita la autenticación JWT y es la clave API cuando se habilita la autenticación de clave API. -- `auth`: El método de autenticación que se utilizará al enviar eventos al punto final de callback del servidor empresarial. Las siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un token web JSON (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de caducidad del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[archivo de valores predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración de clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/getting-started.mdx deleted file mode 100644 index 817eea8171..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es obtener la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.10.0 -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía utilizaremos [docker compose][docker-compose] por simplicidad, pero puedes ejecutar la Anchor Platform usando otras herramientas que también admiten docker, como [minikube] o un clúster completo de [kubernetes]. - -Vamos a crear un archivo de compose minimal para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` le indica a la Anchor Platform que haga que los puntos finales de API definidos por los SEPs que has habilitado a través de la configuración estén disponibles en el puerto 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- usando variables de entorno -- usando un archivo de configuración YAML - -Se puede utilizar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan usando guiones bajos o puntos (`_`, `.`) cuando se usan variables de entorno. Demostraremos ambos enfoques aquí, pero usaremos exclusivamente variables de entorno en las secciones posteriores. Consulta el conjunto completo de opciones de configuración en el [archivo de valores por defecto][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En su lugar, los secretos de aplicación, que todos tienen el prefijo `SECRET_`, deben especificarse en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de docker compose. - - - -```bash -touch dev.env -``` - - - -Y si estás usando un archivo de configuración YAML, vamos a crear ese también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a añadir una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambio del Puerto del Servidor de la Plataforma - -Por ejemplo, vamos a cambiar el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especificar los Activos de tu Servicio - -Vamos a añadir los activos que tu implementación de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo usas la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación SEP-10 Stellar, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía vamos a desarrollar servicios anchor para USDC de Circle en la red de prueba de Stellar. Actualiza los valores anteriores en función de los activos que vas a emitir. Asegúrate de especificar el `issuer` de testnet en tu archivo de desarrollo y crea tu propio `distribution_account` usando una herramienta como [Stellar Lab][stellar-lab]. El `distribution_account` será utilizado por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo necesita ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para su uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para su uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL admitida por Flyway es PostgreSQL 14. - -Antes de avanzar, vamos a añadir una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Una base de datos solo es necesaria si utilizas la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás usando configuración YAML en su lugar, las variables de entorno `POSTGRES_` siempre deben estar en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Tenemos que crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que hagamos un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los registros informando una conexión exitosa a la base de datos postgres. - -### Configurar la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará obtener y actualizar los registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace públicas las APIs SEP, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciada por la opción `--platform-server`. Los negocios deben hacer que el Servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible añadir autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al hacer solicitudes a la API de la Plataforma, añade un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token de portador. - -`PLATFORM_API_BASE_URL` utiliza `platform` en lugar de `localhost` como el host porque harás solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Pasar flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` al valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar variables de entorno desde tu máquina al contenedor, debes usar la opción `environment` de compose para establecer variables en su lugar. Aquí hay un ejemplo de uso de un keystore de tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación del keystore local y `KEYSTORE_PASSWORD` es la contraseña del keystore local. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/overview.mdx deleted file mode 100644 index a8d210a0d3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -La Anchor Platform es la forma más fácil y rápida de implementar [servicios de anchor](/docs/learn/fundamentals/anchors) compatibles con [Propuestas del Ecosistema Stellar (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad y requisitos específicos de Stellar para operar un anchor, permitiendo a las empresas enfocarse en la lógica empresarial central necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto implementando las API estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones, mientras ofrece un conjunto de API backend para que las empresas proporcionen información específica para ellas, como tarifas de transacción, tasas de cambio y estados de transacción fuera de la cadena. - -A continuación se muestra una lista de SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Archivo de Información Stellar][sep1-ap] -- [SEP-6][sep-6]: [Depósito y Retirada Programáticos][sep6-ap] -- [SEP-10][sep-10]: [Autenticación Stellar][sep10-ap] -- [SEP-12][sep-12]: API KYC -- [SEP-24][sep-24]: [Depósito y Retirada Alojados][sep24-ap] -- [SEP-31][sep-31]: [API de Pagos Transnacionales][sep31-ap] -- [SEP-38][sep-38]: API de RFQ de Anchor - -La documentación de la Anchor Platform es un trabajo en progreso. Los desarrolladores son bienvenidos a sumergirse en el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si deseas crear un servicio de acceso y salida compatible con SEP-24, consulta nuestra [guía para comenzar][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep1/README.mdx deleted file mode 100644 index 0bdee70230..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de Información Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos a las aplicaciones para que aprendan más sobre tu servicio alojando un archivo `stellar.toml` en una ruta URL estandarizada. Este archivo permite a las aplicaciones encontrar información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas URL raíz para estos servicios. Podemos alojar este archivo utilizando la Anchor Platform. - -Creemos un archivo llamado `dev.stellar.toml` usando el contenido a continuación como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de paso de la red pública, las URL de servicio de producción, tus cuentas de distribución en Mainnet y la clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto le dirá a la Anchor Platform que debe alojar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser alojado utilizando un servidor de archivos estático adecuado como [nginx]. Mientras tu archivo de información incluya las URL apropiadas apuntando a la Anchor Platform, esto funcionará perfectamente. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep10/README.mdx deleted file mode 100644 index 93f556068f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar la autenticación Stellar - -Las aplicaciones de billeteras basadas en Stellar crean sesiones autenticadas con los anchors de Stellar al demostrar que ellos, o sus usuarios, tienen control suficiente sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el anchor en solicitudes posteriores a los servicios estandarizados del anchor. - -La Anchor Platform admite esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás hospedando el archivo toml a través de la Platform, (`SEP1_ENABLED` está configurado como `true`), el archivo toml se hospedará en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre que estés en posesión de la `SIGNING_KEY`. Las billeteras comprobarán esta firma antes de firmar y enviar de vuelta el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de encriptación que se utilizará para firmar y verificar los tokens de autenticación que emites a las aplicaciones de billetera después de que ellas o sus usuarios hayan probado el control de su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique en tus servicios. Si deseas permitir que solo los usuarios de una aplicación de billetera en particular se autentiquen, o quieres deshabilitar la autenticación de usuarios específicos, utiliza las siguientes variables de entorno. Esta es una función opcional y solo debería añadirse si es un requisito del negocio. - -::: - -## Configurar con atribución del cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billeteras externas o clientes que el servidor Anchor puede comunicarse de manera segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billeteras externas o clientes que el servidor Anchor puede comunicarse de manera segura. - -## Modificar un archivo de información Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 está admitida por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/README.mdx deleted file mode 100644 index 68e6d32f16..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas de fondos alojados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio por el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con un on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/configuration.mdx deleted file mode 100644 index e6a428b819..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de paso de la red pública, las URL de servicio en producción, tus cuentas de distribución de Mainnet y la clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -## Habilitar depósitos y retiros alojados - -Ahora estás listo para habilitar depósitos y retiros alojados a través del API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml`, y cambia los valores según tus preferencias. Este archivo de activos de ejemplo habilitará el soporte para el USDC de Circle y un USD fiat. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -La información proporcionada para el valor de `assets` se relaciona estrechamente con la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-24 [`GET /info`][sep24-get-info]. La Anchor Platform también utiliza esta información para validar solicitudes hechas a tu servicio. - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que tu negocio implementa. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada más comúnmente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de cifrado que la Anchor Platform usará para generar tokens de corta duración que se añadirán a las URL proporcionadas a la billetera. Tu servidor de negocios también debe tener estas claves en su entorno para poder verificar la firma del token. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían verse ahora algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno debería verse ahora como el siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, ve a la [billetera de demostración de Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la Anchor Platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Inicia una transacción haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar activo" e introduce - - el código del activo de Stellar en tu archivo `stellar.toml` - - tu dominio de origen, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "SEP-24 Deposito", luego haz clic en "Comenzar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair de Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, recibirás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/example.mdx deleted file mode 100644 index de4b3d6c68..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrarse con la Anchor Platform implica tres áreas clave: - -- Crear una experiencia de usuario basada en la web que se pueda abrir en una vista web móvil -- Proporcionar actualizaciones del estado de las transacciones a la Anchor Platform -- Obtener actualizaciones del estado de las transacciones de la Anchor Platform - -## Crear una experiencia de usuario basada en la web - -La Anchor Platform no ofrece una interfaz de usuario de marca blanca que tu negocio pueda utilizar y, en su lugar, espera que el negocio cree su propia interfaz de usuario y sistema backend. No vamos a crear una experiencia de usuario completa de entrada y salida en esta guía, pero cubriremos las maneras en que tu producto existente debería actualizarse para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto de entrada y salida existente, probablemente tengas un sistema existente para la autenticación de usuarios. Sin embargo, debido a que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es en realidad innecesario. De esta manera, se puede pensar en la Anchor Platform como que proporciona una forma alternativa de autenticación. - -El negocio es libre de continuar requiriendo a los usuarios que se autentiquen utilizando su sistema existente, pero la experiencia de usuario ideal evitaría este paso y crearía una sesión autenticada para el usuario si ya se ha autenticado usando su cuenta Stellar. - -La Anchor Platform añade un parámetro de consulta JWT `token` a la URL del negocio proporcionada a la aplicación de billetera. Este token está firmado por el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` previamente configurado e incluye la información que necesitas para identificar al usuario. El proceso debería verse algo así: - -1. Pasa el `token` añadido a la URL de tu sistema backend -2. Verifica la firma del `token` y verifica su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -El contenido decodificado del `token` se verá algo así: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Ten en cuenta que el valor `sub` identifica al usuario usando una cuenta Stellar y un número entero. Este es el valor que tendrá cuando las aplicaciones de custodia que utilizan una cuenta omnibus se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentiquen, el token puede verse un poco diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticarse. - -En ambos casos, toda la información en el objeto `data` es opcional y solo estará presente si la billetera proporciona esa información. - -Vamos a añadir un servidor backend a nuestro archivo de composición que se usará para verificar el token y crear sesiones web autenticadas para los usuarios que inician transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Vamos a crear un contenedor de Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora vamos a crear una aplicación NodeJS mínima. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend autenticando a un usuario utilizando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de la plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionando Actualizaciones a la Plataforma - -Vamos a crear un endpoint para nuestro servidor de negocio que acepte la información recopilada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá que las aplicaciones de billetera obtengan esta información actualizada para poder transmitirla de nuevo al usuario. Ya deberías haber informado al usuario sobre las cantidades de la transacción y que tu negocio está esperando que llegue el pago on-chain, pero proporcionar estas actualizaciones permite a los usuarios ver los estados de sus transacciones a través de su aplicación móvil sin tener que abrir de nuevo la interfaz de usuario del negocio. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando cambian los estados de las transacciones, sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "solicitudes de callback" para que las aplicaciones de billetera no tengan que sondear la Anchor Platform en busca de actualizaciones. - -::: - -## Obteniendo Actualizaciones de la Plataforma - -Si solo usas la Anchor Platform para exponer las API SEP a las aplicaciones de billetera, entonces no tendrás una razón fuerte para obtener actualizaciones del estado de las transacciones de la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que realices solicitudes de la `API JSON-RPC`. - -Sin embargo, si usas la Anchor Platform para monitorear la red Stellar para pagos entrantes (asociados a transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando los pagos sean recibidos. - -Hay dos formas de obtener actualizaciones de la Anchor Platform, - -- Sondeando el endpoint `GET /transactions/:id` de la API de la Plataforma para las transacciones que esperas que reciban un pago -- Transmitiendo eventos de cambio de estado de transacciones desde un clúster de Kafka - -Si bien transmitir cambios de estado de transacciones desde un clúster de Kafka puede ser un enfoque más robusto y escalable, vamos a utilizar el método de sondeo en esta guía. Configurar y usar un clúster de Kafka será el tema de una sección diferente de la documentación. - -Primero, configuremos la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.10.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` en busca de pagos de retirada de fondos. - -Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará la transacción cuyo memo está asociado como recibida y actualizará el estado de la transacción a `pending_anchor`. Hace esto realizando una solicitud a la `API JSON-RPC`, así que necesitamos configurar la URL que debería usar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Vamos a hacer algunas adiciones al archivo `server.js` para que podamos sondear la Anchor Platform para nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación de Ejemplo Completo - -Stellar proporciona un ejemplo de implementación de servidor de negocio para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación de backend, utilizada para obtener y enviar actualizaciones desde/hacia la Anchor Platform. - -El código para la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código para el backend es parte de la Anchor Platform y está disponible como [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/faq.mdx deleted file mode 100644 index becd9a32a4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas frecuentes -sidebar_position: 50 ---- - -### ¿Cómo usar JWTs? - -Como parte del flujo, una vez que un usuario hace una solicitud, es decir, una solicitud de retirada de fondos/deposito interactivo, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform hará una llamada `GET` a `?token=`. La Anchor Platform hará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. Debes verificar que el token proporcionado no haya caducado. `sub` es la cuenta asociada con esta transacción. -2. Puede usarse para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. `jti` es el hash de la transacción. -3. `data` es la carga adicional que ha sido establecida por el usuario. -4. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. Si lo proporciona el cliente, también contendrá el `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificado durante la autenticación SEP-10, y `client_name` (definido como 'name' en la configuración de [clients] si se proporciona), y la preferencia de `lang` (idioma) del usuario. Si lo proporciona el cliente, también contendrá el `amount` que el usuario quiere transaccionar, el `client_domain` de la billetera verificado durante la autenticación SEP-10, y el `client_name` (definido como 'nombre' en la configuración de [clients] si se proporciona), y la preferencia de `lang` (idioma) del usuario. - -### ¿Cómo proporcionar tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de cambio en el iFrame/vista web de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` para que las empresas establezcan tarifas estáticas para sus transacciones. Sin embargo, actualmente no es admitido por la Anchor Platform. - -:::note - -/fee endpoint se deprecará en el futuro. - -::: - -### ¿Cómo identificar la cuenta del usuario? - -Debes usar el campo `sub` del token JWT. Para billeteras custodiales, este valor estará en el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí, que será igual a la cuenta del usuario. - -### ¿Cómo identificar la billetera? - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración de [clients], el token JWT incorporará además el campo `data.client_name`, permitiendo la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clientes]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index 8e5ec9f3f0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de admitir un servicio de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el soporte de la Anchor Platform para SEP-24, las empresas hacen que su servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las funciones necesarias requeridas por SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap] - -## La experiencia básica del usuario - -La experiencia completa del cliente en un depósito y retirada de fondos es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información de KYC y de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, trading, reserva de valor, o otro caso de uso no listado aquí. En alguna fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que sería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, la billetera abre la URL interactiva dada y permite al cliente ingresar su información de transacción (KYC ya ha sido recogido) -4. Después de solicitar la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de una transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/integration.mdx deleted file mode 100644 index 08bd175952..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con Anchor Platform es notificar a Anchor Platform sobre eventos relacionados con la transacción. - -Generalmente, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al punto final de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos que requiere este método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Por lo tanto, la API será llamada cada vez que un usuario o el anchor realice cualquier acción que haga progresar el estado de la transacción en el flujo. - -La comunicación desde Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes encontrar más sobre el flujo y estados de la transacción en el [documento del protocolo SEP-24][sep-24]. - -## Callbacks - -Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre las cotizaciones. - -### Cotizaciones y Tarifas - -Para admitir el intercambio de activos no equivalentes, Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se usa para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se usa para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de cotización][rate-callback] para proporcionar cotizaciones a Anchor Platform. - -## Asegurar la API de la Plataforma - - - -### Uso de clave API - - - -### Uso de JWT - - - -## Realizar solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de error - - - -## Actualizando la transacción de depósito vía JSON-RPC - -El diagrama del flujo de depósito SEP-24 define la secuencia/reglas de transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo indican que la transacción está en un estado de error o ha caducado. - -::: - -### Listo para recibir fondos - -El primer paso del flujo de depósito después de iniciar el propio depósito es recopilar el KYC. Generalmente se realiza en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación billetera, usando [SEP-9]. Una vez que se recopila el KYC necesario, se debe hacer una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el total de tarifas recolectadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está establecido en USD, suponiendo que el usuario hizo una transferencia bancaria al sistema usando USD. - -La información sobre las cantidades (entrada/salida/tarifa) es requerida si quieres mover la transacción del estado `incomplete` a `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de las cantidades. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso KYC es largo (por ejemplo, verificación de identificación), se recomienda primero establecer el estado de la transacción a `pending_anchor` usando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC está siendo procesado. - -::: - -### Procesando información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo usan. Puedes omitirlo e ir al [siguiente paso](#funds-received). - -Se recomienda usar este estado cuando la verificación KYC debe realizarse de forma asincrónica. - -::: - -**Debes** especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de monto son opcionales. Si se omiten, se tomarán los valores de solicitudes JSON-RPC previas. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando fondos del usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero aún no se han recibido los fondos. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Envío de fondos Onchain - -Luego, envía una transacción en la red Stellar para cumplir la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos se enviaron con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción pasará al estado `completed`. - -### Envío de pagos vía servicio de custodia - -Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como Fireblocks. Para realizar un pago mediante un servicio de custodia, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, Anchor Platform hará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor está esperando que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, Anchor Platform realizará esta validación automáticamente por ti. - -::: - -### En Espera de Trust - -Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos formas en las que la transacción puede pasar al estado `pending_trust`. La primera es el procesamiento de un pago vía servicio de custodia en caso de que detecte que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si la trustline fue configurada. Si lo fue, enviará automáticamente un pago al servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado si la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- El flag `success` define si la trustline fue configurada o no por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline se configuró, o a `pending_anchor` si no lo fue. - -::: - -### Envío de reembolso vía servicio de custodia - -Existe la posibilidad de devolver fondos al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso pendiente - -Es similar a [Reembolso enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá al esperar que Bitcoin u otra red de criptomonedas externa complete una transacción, o al esperar una transferencia bancaria. - -### Error de transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha hecho una transferencia, deberías hacer una recuperación de transacción, y luego puedes reintentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción caducada - -Tu negocio puede querer expirar las transacciones que el usuario ha abandonado después de un tiempo. Es una buena práctica limpiar las transacciones inactivas en el estado `incomplete`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya hecho una transferencia. - -::: - -### Transacción en espera - -En casos raros, puedes querer pausar la transacción actual y solicitar más información al usuario (después de haber recibido la transferencia). Esto podría usarse para casos de cumplimiento. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando la transacción de retirada vía JSON-RPC - -Este diagrama define una secuencia/reglas de transición del estado de la transacción para el flujo de retirada SEP-24. - -[![flujo de retirada sep24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo indican que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que finaliza el flujo de depósito, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. - -El punto de inicio tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la actualización será diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo`: Valor del memo para adjuntar a la transacción -- `memo_type`: Tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account`: Cuenta destino - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio tercero está habilitada, Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se eligió un `deposit_info_generator_type` correspondiente. También puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto ayuda a asociar transacciones Stellar con transacciones SEP. - -Si tu negocio administra los activos, Anchor Platform puede generar memos por ti. Cuando el estado cambia a `pending_user_transfer_start`, Anchor Platform establece automáticamente el `memo` y `memo_type` (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta Stellar que se usará para recibir fondos debe estar configurada. - -::: - -### Procesando información KYC - -Este paso es opcional, y es similar a [Procesando información KYC](#processing-kyc-information) del flujo de depósito. - -### Fondos recibidos - -Si se recibieron fondos onchain, necesitas proporcionar las cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad actualizada - -Si se recibieron fondos onchain, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos offchain disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y está listo para que el usuario o destinatario los recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Envío de reembolso vía servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea menor que `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Transacción en espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción en espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Rastreo de transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index da9960ae54..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un servidor de producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté en vivo y hayas probado ambos flujos de depósito y retiro, es hora de comenzar con el despliegue real conectado a un KYC real y a proveedores de banking rails reales. Antes de usar cualquier API bancaria, es fundamental que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Desplegar un entorno seguro - -Asegúrate de mantener el servidor de prueba activo y desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas características en el testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en esta base de código y/o habrá muchos cambios que se deben probar internamente antes de compartirlos con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, lo único que tienes que hacer es cambiar la [frase de paso](/docs/networks#network-passphrases) de la red (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tu configuración de desarrollo existente para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia la configuración de tu Anchor Platform en el archivo `production.env`: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectando a un KYC real - -La mayoría de los anchors necesitan recopilar información de [Conoce a tu cliente](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con las regulaciones locales antes de honrar depósitos y retiros. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejas el KYC depende de ti: hay muchos servicios que proporcionan soluciones de KYC a través de APIs e iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar los requisitos. Cada jurisdicción tiene requisitos específicos de KYC, y estos varían de una jurisdicción a otra, así que lo mejor es encontrar un proveedor de KYC específico por país que se ajuste a tus necesidades. - -Algunos países requieren diferentes campos de KYC dependiendo del monto a ser depositado o retirado. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios de KYC basándote en el monto de depósito o retiro, simplemente agrega un campo de monto antes del formulario de KYC, y asegúrate de que los campos de KYC se actualicen basándose en ese valor. - -La información de KYC debe estar vinculada a la sesión creada a través de [Autenticación Web de Stellar](../sep10/README.mdx) y, por ende, al usuario, por lo que solo necesitas solicitarlo una vez al usuario. Después de que se complete el primer flujo de KYC, un usuario no debería tener que ingresar la información nuevamente. - -Asegúrate de que los mensajes de error y validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También deberías localizar los mensajes según el idioma y la ubicación del usuario. - -## Autocompletar el formulario de KYC - -Autocompletar el formulario de KYC es una gran manera de reducir la fricción de comenzar a usar un anchor, y las billeteras generalmente proporcionan un conjunto de campos que son comúnmente utilizados en todo el ecosistema. En resumen, el anchor puede renderizar el formulario de KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, aún deberías habilitar los campos autocompletados para que sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera, y podría querer editarlo antes de finalizar el proceso de KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [JWT interactivo](./faq.mdx#how-to-use-jwts), enviado por la Anchor Platform - -## Conectando a banking rails reales - -Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que existe una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado y puede ser canjeado por un activo subyacente del mundo real, los emisores de tokens respaldados por fiat necesitan conectarse a rails bancarios reales para validar los depósitos de los usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y completar los retiros de los usuarios (generalmente a través de transferencias bancarias). y para completar los retiros de los usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiros de un token que otra organización emite, seguirás un proceso similar. - -Para obtener (e identificar) una transferencia de usuario, los emisores suelen tomar uno de dos enfoques: - -- Polling API: esta opción consiste en obtener la API del banco, a través de un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas por (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todos los sistemas bancarios admiten esta opción, pero es la más liviana en términos de lógica de back-end. En este enfoque, el banco accede proactivamente al endpoint de un emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede igualar esa transacción con un depósito en proceso existente y validar que el usuario puede recibir sus fondos digitales - -Hay muchas maneras de identificar que una transferencia bancaria específica se relaciona con un depósito específico (y, por ende, con un usuario). Al algunos bancos (y países) tienen infraestructura de transferencias que permite la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios añadan un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualar eso con la información proporcionada en el formulario de KYC. - -Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando se establezcan conexiones de banking rails. Algunos bancos proporcionan una API de pruebas que se puede usar para desarrollo y despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para una mejor seguridad, algunos anchors también prefieren añadir un paso final manual antes de aprobar las transferencias de retiro. En términos de UX, esta aprobación manual es aceptable siempre y cuando los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no sean más largos que un par de horas. - -## Probar casos extremos - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporte como se espera. Aquí hay una lista de sugerencias para pruebas que deberían cubrir una gran parte de los casos extremos de la aplicación: - -### Pruebas generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz utilizando diferentes información regional, y verifica el contenido traducido incluyendo mensajes de error, respuestas, formato de fechas y formato de números - -### Pruebas de KYC - -- Verifica que KYC aparezca con un nuevo SK de billetera -- Verifica que KYC no acepte entradas incorrectamente formateadas, y que los mensajes de error sean comprensibles -- Verifica que puedas usar la misma información de KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) múltiples veces -- Verifica que puedas pasar por KYC múltiples veces con el mismo SK de Stellar. - -### Prueba interactiva - -- Verifica que el flujo de depósito se complete, y que los banking rails estén funcionando -- Verifica que no puedes hacer un retiro con un valor mayor al saldo actual -- Verifica que el flujo de retiro se complete, y que los banking rails estén funcionando - -### Pruebas de seguridad - -- Asegúrate de que los endpoints de la plataforma estén asegurados - -## Pulido e internacionalización - -Asegurar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan por las pantallas, y apoya a instituciones internacionales (como billeteras) que necesitan probar el producto antes de iniciar nuevas integraciones. - -Puedes soportar múltiples idiomas en tu aplicación web utilizando el parámetro `Accept-Language` de los encabezados de solicitudes http para localizar el contenido y permitir que los usuarios cambien eso de una manera simple (p. ej. un icono de bandera en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al comienzo de los procesos de depósito y retiro. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de revisar el formato de números, fechas, etc. - -Tener un grupo de testers beta es una gran manera de verificar si hay casos extremos que necesitan pulido y confirmar que el sistema está funcionando bien con una variedad de entradas de usuarios. Puedes probar en beta utilizando una etapa de lanzamiento suave antes de comenzar a poner esfuerzo en marketing y distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y proporciona claridad y confianza en el producto a nuevos socios y posibles usuarios. - -## Conectando a billeteras - -Todas las interacciones de usuario de Anchor se realizan a través de una billetera, por lo que es vital que los Anchors estén conectados a billeteras que tengan una buena penetración de mercado en la región donde el negocio está más enfocado. Conectarse a billeteras es un proceso simple, ya que ambos extremos de esa integración ya son compatibles con los SEPs. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente admiten SEP-24. Enviándoles un mensaje con más información sobre un activo y una cuenta emisora es una excelente manera de comenzar a conseguir algunos usuarios reales para el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/README.mdx deleted file mode 100644 index f127c6b7f1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos Transnacionales -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual las billeteras y/o exchange interactúan con el conjunto existente de servicios del lado de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/configuration.mdx deleted file mode 100644 index 8e14011ec4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información Stellar - -Comencemos por modificar nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para el despliegue en producción que use la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución de mainnet y clave de firma, así como las cuentas emisoras de mainnet de los activos que utiliza tu servicio. - -## Habilitar Pagos Transnacionales - -Ahora estás listo para habilitar los pagos transnacionales a través de la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -La información proporcionada en los objetos `sep31` y `send` se mapea estrechamente a la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-31 [`GET /info`][sep31-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes hechas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y se eliminará en una futura versión, pero puedes ajustar los valores de `send.min_amount` y `send.max_amount` de acuerdo a los límites de tu servicio. - -Los parámetros `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y deben solicitar una tasa de cambio utilizando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para que puedan comunicar la tasa a sus clientes antes de continuar. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los remitentes ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté en vivo. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API KYC del Cliente - -Las empresas necesitan recopilar y validar la información KYC sobre los clientes para los que están facilitando transacciones. Los clientes determinan qué información KYC debe ser recopilada y envían esa información a través de una API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En cambio, reenvía solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Consulta la [especificación de la API KYC de Anchor Platform][platform-api-kyc] para obtener detalles sobre los endpoints que deben implementarse en el servidor de tu negocio. - -Para hacer esta API disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Hagamos que también esté habilitada en nuestro entorno. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, debemos definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transnacionales en dos jurisdicciones regulatorias distintas, de modo que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y se representarían utilizando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente excluyentes, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación está en su lugar porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como una que envía una gran cantidad. Solo puede validar que un cliente está aprobado para uno de los tipos de cliente definidos. Esta limitación se eliminará en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente remitente y un tipo de cliente receptor. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Vamos a hacer ping al endpoint de información nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Las empresas deben proporcionar a sus contrapartes del lado de envío una API [Tasa][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo on-chain que se está utilizando para liquidación y el activo fiat que se está utilizando para pagar al destinatario. Si la tasa es competitiva, los remitentes también deben poder solicitar un compromiso con la tasa que actualmente se está ofreciendo desde el negocio por un corto periodo de tiempo. - -La Anchor Platform proporciona la [API RFQ SEP-38][sep38] a los remitentes para este propósito. - -Para hacer esta API disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Hagamos que también esté habilitada en nuestro entorno. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar que se use USDC en esta API, así como agregar un activo off-chain con el que se pueda intercambiar. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté en vivo! Siguiendo `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar la Autenticación de la API de Callback - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform también necesitará hacer solicitudes a tu negocio. Agreguemos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como el host porque la Anchor Platform realizará solicitudes a tu servidor desde dentro de la red local creada por docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -Definiremos el servidor que implementa los endpoints definidos en la API de Callback en la siguiente sección. - -:::caution - -Ten en cuenta que a partir de la versión 2.x, los segmentos de ruta no son admitidos en `CALLBACK_API_BASE_URL` (como `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 411911f5d5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de recepción de pagos transnacionales compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transnacionales. - -Al aprovechar el apoyo de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios de envío de Stellar. - -:::info - -A medida que mejoramos la documentación, partes de esta guía que son relevantes para otros casos de uso pueden trasladarse a sus propias secciones. - -::: - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/integration.mdx deleted file mode 100644 index c58e23685d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrar con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recolectar datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de FX entre los activos on-chain y off-chain admitidos -- `GET /transactions` solicitudes para obtener actualizaciones sobre los estados de las transacciones de la Anchor Platform (documentación próximamente) -- [`JSON-RPC`][json-rpc-methods] solicitudes para actualizar los estados de las transacciones de la Anchor Platform - -Lo siguiente también puede ser requerido dependiendo de tu caso de uso: - -- [`GET /fee`][get-fee] si tu negocio quiere proporcionar a los remitentes la opción de omitir el paso de creación de cotización -- [`GET /unique_address`][get-unique-address] si tu negocio utiliza un servicio de custodia para activos on-chain -- [`DELETE /customer`][delete-customer] si tu negocio desea o está obligado a permitir que los remitentes soliciten la eliminación de los datos del cliente - -## Crear un servidor empresarial - -Primero, vamos a crear un servidor empresarial y añadirlo a nuestro archivo docker compose. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.10.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.10.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web simple utilizando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar con éxito los tres servicios. - -Esta guía no proporciona una implementación de ejemplo de los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia de la API de la Anchor Platform][ap-api], y las secciones a continuación ampliarán conceptos importantes a entender al implementar los puntos finales. - -## Puntos finales de devolución de llamada del cliente - -La Anchor Platform nunca almacena la PII de tus clientes, y en su lugar actúa como un servidor proxy entre las aplicaciones cliente y tu negocio, reenviando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación de la API KYC SEP-12][sep12]. - -### Identificar clientes - -Los clientes pueden ser identificados utilizando dos enfoques. - -El primer enfoque utiliza una cuenta Stellar y un memo. Al utilizar la Anchor Platform para facilitar pagos transnacionales, la organización remitente utiliza su propia cuenta Stellar, la que se utilizó para autenticar a través de [SEP-10 Autenticación Stellar][ap-sep10], al registrar clientes en tu negocio. Los memos se utilizan para distinguir clientes únicos que provienen de la misma organización remitente. - -El segundo enfoque utiliza identificadores de clientes generados por tu servicio. Por ejemplo, si una organización remitente está registrando un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos generalmente son enteros de 64 bits, pero también pueden ser otros tipos de datos, por lo que deben guardarse como cadenas. En respuesta, tu negocio debe devolver un identificador de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor empresarial puede usar cualquier identificador para clientes siempre que sea una cadena. - -Luego del registro de un cliente, la organización remitente puede usar cualquiera de los enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir una solicitud `GET /customer` como la siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización remitente podría usar el identificador que devolviste cuando originalmente registraron al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio deberá mantener un mapeo entre la cuenta y el memo usados para registrar originalmente al cliente y el ID que devuelves en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podemos mantener este mapeo para tu negocio, de manera que solo tengas que trabajar con los IDs que generas. - -### Tipos de clientes - -Tu negocio probablemente requiere diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes necesitarán entender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, debes usar el tipo pasado para evaluar si el remitente ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, debes usar el tipo para determinar el estado del cliente. - -### Probar con la billetera demo - -Puedes probar tu implementación con la [Billetera Demo Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar activo" e introduce el código del activo y el dominio principal de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar línea de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver cómo la billetera demo encuentra tus URLs de servicio, se autentica, y verifica qué campos KYC necesita recolectar. Entonces debería presentar un formulario para que ingreses los detalles KYC del remitente y del receptor. - -[![billetera demo después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, enviará esa información a la Anchor Platform, que la enviará a tu servidor empresarial. Una vez que la billetera demo tenga los IDs de clientes que generaste, iniciará una transacción que debería fallar. - -## Punto final de devolución de llamada de tasas - -Una vez que la organización remitente haya registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa de FX, a tu negocio. La Anchor Platform solicita esta información a tu servidor empresarial utilizando el [`GET /rate` endpoint][get-rate]. - -### Cotizaciones firmes vs. indicativas - -Las solicitudes de cotizaciones tendrán un parámetro `type` que es [`indicativa`][indicative] o [`firme`][firm]. Si `type=firm`, tu respuesta debe incluir el campo `id` y el `expires_at` de fecha y hora y reservar la liquidez necesaria para cumplir esta cotización hasta que la cotización expire. Si `type=indicative`, no devuelvas los campos `id` o `expires_at` porque la tasa proporcionada no será utilizada en una transacción. - -Ten en cuenta que el cliente puede solicitar que la cotización expire después de una fecha y hora específicas usando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor `expires_at` que esté en o después de la fecha y hora solicitadas o rechazar la solicitud con una respuesta 400 Bad Request, que será enviada al cliente. - -### Usando el ID del cliente - -Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para adherirte a los términos comerciales acordados con esa organización remitente, como ofrecer tasas con descuento. `client_id` puede no estar presente para solicitudes indicativas, en cuyo caso se debe devolver el precio de mercado. Actualmente, `client_id` siempre será la clave pública Stellar que la organización remitente utilizó para autenticar con la Anchor Platform. - -### Métodos de entrega - -Es común que las tasas y tarifas de las empresas difieran dependiendo de los canales de pago utilizados para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán el canal de pago que quieren que utilice tu negocio para solicitudes de cotización firmes. - -Debido a que este punto final actualmente solo se utiliza para pagar remesas en activos off-chain, se usará el `buy_delivery_method`. Si este punto final se utiliza alguna vez en otros flujos de transacciones, como depósitos SEP-24, entonces `sell_delivery_method` también puede pasarse para los negocios que admitan estos tipos de transacciones. - -## Obteniendo actualizaciones del estado de la transacción - -Para facilitar pagos transnacionales, necesitarás poder detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar qué transacción estaba destinado a cumplir ese pago. - -La forma más sencilla de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacción correspondiente con información sobre el pago. Tu negocio puede entonces detectar estas actualizaciones haciendo polling al punto final de la API Platform `GET /transactions`. - -### Ejecutando el Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. Para ejecutar el observador, añade lo siguiente a tu archivo docker compose. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.10.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling por pagos recibidos - -El Stellar Observer hace solicitudes JSON-RPC a la API Platform cada vez que detecta pagos recibidos para transacciones iniciadas por organizaciones remitentes, actualizando así el campo `transfer_received_at` de la transacción. - -Tu negocio debe hacer polling periódicamente al punto final de la API Platform `GET /transactions` para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pagos transnacionales iniciadas por organizaciones remitentes. Esta lista estará ordenada según el momento en que se recibió un pago por esa transacción. Para cada transacción devuelta, tu negocio debe verificar si ya ha detectado el pago por esa transacción. If it has, you have detected all payments made to your account(s). - -## Actualizar transacción a través de JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha expirado. - -::: - -Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para recibir fondos - -Las transacciones SEP-31 deberían estar inicialmente en el estado `pending_sender`. El Anchor receptor espera recibir el pago identificado por el stellar_memo incluido en la respuesta de POST /transactions. - -Una vez que tu negocio detecte que ha recibido un pago on-chain para una transacción específica, debe actualizar el estado de la transacción. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción se cambiará a `pending_receiver`. - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verificando información del cliente - -En algunos casos, el Anchor receptor podría necesitar solicitar una información actualizada del Anchor remitente. Por ejemplo, el banco le dice al Anchor receptor que el nombre del cliente receptor proporcionado es incorrecto o falta una inicial del segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debería pasar al estado `pending_customer_info_update` hasta que el Anchor remitente haga otra solicitud SEP-12 `PUT /customer` para actualizar. El Anchor remitente puede verificar qué campos necesitan ser actualizados haciendo una solicitud SEP-12 `GET /customer` que incluya el ID o los parámetros de cuenta y memo. El Anchor receptor debería responder con un estado `NEEDS_INFO` y `last_name` incluido en los campos descritos. - -Después de que el Anchor remitente haga una solicitud SEP-12 `PUT /customer`, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Además, llama a este método siempre que el estado SEP-12 de un cliente cambie, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de devolución de llamada sea notificado del último estado del cliente, permitiendo al cliente solicitar al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Hacer un reembolso Stellar - -La integración con el servicio de custodia te permite hacer reembolsos a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto total de reembolso más la tarifa debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Reembolso enviado - -Hay posibilidad de enviar todos los fondos de vuelta al `Anchor Remitente` (reembolso). Necesitas reembolsar la suma total (reembolso completo). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Error de transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción, y luego puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar aquellas transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar las transacciones inactivas en estado `incomplete`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede ser utilizado después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiarse de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Punto Final de Callback de Tarifas - -Tu negocio puede querer ofrecer a las organizaciones que envían la opción de omitir el proceso de creación de cotizaciones, permitiendo a tu negocio usar una tarifa determinada en el momento en que se paguen los fondos al destinatario. En este caso, la Anchor Platform no realizará una solicitud `GET /rate`, pero aún necesitarás proporcionar la tarifa que tu negocio cobrará por estos tipos de transacciones utilizando el punto final [`GET /fee`][get-fee]. - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Punto Final de Callback de Dirección Única - -Las empresas deben proporcionar un par único de cuenta Stellar y memo para cada transacción solicitada por las organizaciones que envían, de manera que la Anchor Platform pueda identificar y mapear el pago on-chain enviado para la transacción específica. La Anchor Platform puede generar estos pares de cuenta y memo por sí misma, pero la mayoría de las empresas utilizan un servicio de custodia para recibir pagos on-chain. En este caso, el negocio debe solicitar al custodio que genere la cuenta y memo de Stellar. Esto se hace utilizando el punto final [`GET /unique_address`][get-unique-address]. - -### Configuración - -Para configurar la Anchor Platform para hacer estas solicitudes, agrega lo siguiente a tu configuración: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -Este punto final puede ser eliminado durante futuras actualizaciones importantes de la Anchor Platform, cuando añada soporte para conectarse a servicios de custodia y generar estas direcciones automáticamente. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/README.mdx deleted file mode 100644 index 7a611e2225..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y Retiros Programáticos -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio por el cual las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, sin requerir que el usuario interactúe directamente con el on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 1141770270..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar depósitos y retiros SEP-6, la Anchor Platform debe configurarse para hacer lo siguiente: - -- Proporcionar las URLs de servicio necesarias para los endpoints SEP-6, 12 y 38 en el archivo `stellar.toml` -- Proporcionar información sobre los activos en cadena y fuera de cadena, así como los métodos de pago, admitidos por tu negocio a través de los endpoints SEP-6 y SEP-38 `/info` -- Admitir los endpoints y callbacks requeridos para solicitar información KYC y proporcionar tasas de cambio - -## Habilitar depósitos y retiros programáticos - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un archivo de información Stellar - -Vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 está admitida por tu negocio, y también necesitan conocer todos los activos Stellar que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación de producción que utilice la frase secreta de la red pública, tus URLs de servicio de producción, tus cuentas de distribución en Mainnet y la clave de firma, así como las cuentas emisor de Mainnet de los activos que utiliza tu servicio. - -### Modificar el archivo de configuración de activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores según tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para USDC de Circle y un USD fiduciario para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que se expondrán a través del endpoint SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que se expondrán a través del endpoint SEP-6 [`GET /info`][sep-6]. Los métodos listados deben coincidir con los métodos definidos en la sección SEP-38 del archivo. También ten en cuenta que los activos fiduciarios, aquellos con `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit` o `withdraw` especificados. - -También ten en cuenta que los activos fiat, aquellos con el `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit` o `withdraw` especificados. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods` especificados. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Manejo de cuentas de distribución - -Ten en cuenta que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta se proporcionará junto con un memo único y generado aleatoriamente por transacción a los clientes como la dirección para enviar fondos para las transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar usas una tercera parte que te proporciona una cuenta Stellar y un memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, debes omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y el memo que te gustaría usar para recibir fondos a través de una solicitud a la [`request_onchain_funds`][request-onchain-funds] de la Anchor Platform por transacción. - -Para configurar la Anchor Platform para esperar que la cuenta Stellar y el memo sean proporcionados a través de la API en lugar de configurados a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si utilizas un proveedor de billetera admitido por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billetera para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también usará el proveedor de billetera para enviar fondos a los clientes. Consulta la sección [servicios de custodia] para más información sobre cómo configurar esta función, pero primero necesitarás especificar un valor diferente para la variable de entorno mencionada anteriormente. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar callbacks al servidor de negocios - -Los negocios necesitan recopilar y validar información KYC sobre los clientes para los cuales están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC necesita ser recopilada y envían esa información a través de la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información de identificación personal (PII). En su lugar, reenvía solicitudes de los clientes al servidor de negocios y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Además, los negocios necesitan proporcionar a los clientes una API de [tasas][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre los activos en cadena y fuera de cadena admitidos por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso con la tasa que se está ofreciendo actualmente por parte del negocio por un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor de negocios para obtener tasas de cambio y cotizaciones y las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor de negocios, primero necesitarás agregar tu servidor de negocios al archivo docker compose. Luego, para admitir solicitudes a tu servidor de negocios desde la Anchor Platform, necesitas habilitar callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes realizadas a `/callbacks/` para que tu servidor pueda autenticar a la Anchor Platform antes de procesar las solicitudes. - -`more_info_url` es una URL opcional proporcionada por tu servidor de negocios para que las aplicaciones de billetera muestren información sobre transacciones iniciadas previamente. Esta URL se utiliza típicamente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se debe mostrar sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Consulta la [API KYC][platform-api-kyc] y la [API de tasas][sep38] para obtener detalles sobre los endpoints que deben implementarse en tu servidor de negocios. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían verse ahora algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno debería verse ahora algo como lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [billetera de demostración Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar activo" e ingresa - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio de origen, `localhost:8080` -- Selecciona el desplegable y haz clic en "DEPÓSITO SEP-6", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 0983abf70b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te llevará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas programáticas. - -Al aprovechar el soporte de la Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia en la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias, requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito o retirada usando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información KYC y de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita dinero fiat real con el anchor (como una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede usar el activo digital en la red Stellar para remesas, pagos, trading, reserva de valor, o otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, el cliente puede ingresar su información de transacción y cualquier información adicional de KYC que no se haya recopilado ya -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de cualquier método admitido por el anchor (como una transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/integration.mdx deleted file mode 100644 index 534ef57ed5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los puntos principales de interacción con la Anchor Platform es notificar a la Plataforma sobre eventos relacionados con las transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó las cantidades de entrada/salida/tarifa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al punto final de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por el método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado eso, la API será llamada cada vez que un usuario o el anchor realice alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse separadamente de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes encontrar más sobre el flujo y los estados de las transacciones en el [documento del protocolo SEP-6][sep-6]. - -## Callbacks - -La Anchor Platform depende del servidor del negocio para proporcionar y almacenar la información sobre clientes y cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información del cliente. En cambio, reenvía todas las solicitudes SEP-12 de clientes al servidor del negocio. El servidor del negocio es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor del negocio debe implementar las [APIs de cliente][customer-callback] para manejar las actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para admitir el exchange de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proveer cotizaciones para el exchange. La API de cotizaciones se usa para proveer al usuario la cantidad esperada del activo que recibirá a cambio del activo que envía. La API de cotizaciones también se utiliza para proveer al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor del negocio debe implementar la [API de tarifas][rate-callback] para proveer cotizaciones a la Anchor Platform. - -## Seguridad de la API de la Plataforma - - - -### Uso de Clave API - - - -### Uso de JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualización de la Transacción de Depósito (Exchange) Via JSON-RPC - -El diagrama del flujo de depósito SEP-6 define las secuencias/reglas de la transición de estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de exchange de depósito es el mismo que el flujo de depósito, excepto que las cantidades no necesitan recalcularse al solicitar fondos offchain, si el usuario ha proporcionado una cotización firme del anchor. - -[![flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Verificando la Información KYC - -Aunque Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recoger esta información antes de que el cliente haga una transferencia. Al escuchar los eventos de transacción creada, o consultando el endpoint [`GET /transactions`][get-transactions], puedes determinar si una transacción requiere que el cliente actualice su información. Los campos SEP-9 requeridos pueden comunicarse al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - -Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método cada vez que cambie el estado SEP-12 de un cliente, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del estado más reciente del cliente, permitiendo que el cliente solicite al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar las cantidades finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es la cantidad total de comisiones recolectadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con número de ruta `123456789` y número de cuenta `123456789`. - -La información sobre las cantidades (entrada/salida/tarifa) es requerida si quieres mover la transacción al estado `pending_user_transfer_start`. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. - -::: - -### Fondos Recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de los fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de monto son opcionales. Si se omiten, se usarán los valores previos a esta solicitud. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero que los fondos aún no han sido recibidos. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -Luego, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar haya sido enviada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. - -### Enviando Pago a través del Servicio de Custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para hacer un pago vía un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform realizará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta haya establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pending_trust` para indicar que el anchor está esperando que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos formas en las que la transacción puede pasar al estado `pending_trust`. La primera es el procesamiento de un pago vía servicio de custodia en caso de que se detecte que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y desea notificar al usuario que debe configurarse. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago vía servicio de custodia verifica periódicamente si la trustline fue configurada. Si fue configurada, enviará automáticamente un pago al servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado si la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la trustline fue o no configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del `success` flag, el estado de la transacción cambiará a `pending_stellar` si la trustline fue establecida, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, es necesario enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o hacer un conjunto de reembolsos parciales al `source_account` usando el `refund_memo` y `refund_memo_type` asociados con la transacción si están presentes. También, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se espera que Bitcoin u otra red crypto externa complete una transacción, o cuando se espera una transferencia bancaria. - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es obligatorio establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha hecho una transferencia, deberías hacer una recuperación de transacción, y luego puedes reintentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer expirar las transacciones que han sido abandonadas por el usuario después de algún tiempo. Es buena práctica limpiar las transacciones inactivas en el estado `incomplete`. Para hacerlo, realiza la siguiente solicitud JSON-RPC para expirar una transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya hecho una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualización de la Transacción de Retirada (Exchange) Via JSON-RPC - -El diagrama del flujo de retirada SEP-6 define la secuencia/reglas de la transición de estado de la transacción. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de exchange de retirada es el mismo que el flujo de retirada, excepto que las cantidades no necesitarán recalcularse al solicitar fondos onchain, si el usuario ha proporcionado una cotización firme del anchor. - -[![flujo de retirada sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez terminado el flujo de retirada, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para Recibir Fondos - -De forma similar al depósito, el paso después de recopilar KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar las cantidades finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es la cantidad total de comisiones recolectadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `memo` es el memo que el usuario debe usar al enviar sus fondos onchain al anchor. -- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos onchain al anchor. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiradas de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. - -::: - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar el `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. También puedes proporcionar `memo` y `memo_type` para la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones Stellar con las transacciones SEP. - -Si tu negocio administra los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform asigna automáticamente el `memo` y `memo_type` (solo si no están incluidos en la solicitud). - -::: - -:::note - -Se debe configurar la cuenta Stellar que se usará para recibir los fondos. - -::: - -### Fondos Recibidos - -Si se recibieron fondos onchain, necesitas proporcionar cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad Actualizada - -Si se recibieron fondos onchain, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos Offchain Disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y está listo para que el usuario o destinatario los recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso Enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. - -### Enviando Reembolso a través del Servicio de Custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través del servicio, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De forma similar al flujo de depósito, puedes hacer un reembolso total o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de Transacción - -Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Error de Transacción](#transaction-error) del flujo de depósito. - -### Transacción Caducada - -Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Transacción Caducada](#expired-transaction) del flujo de depósito. - -### Recuperación de Transacción - -Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de Transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[manejo-de-eventos]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/README.mdx deleted file mode 100644 index f4788d8dfd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Servidor de devoluciones de llamada -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de devoluciones de llamada para tu servidor de negocios. - - - -| | | -| ---------- | ---------------------------------------- | -| OBTENER | [/customer](./get-customer.api.mdx) | -| PONER | [/customer](./put-customer.api.mdx) | -| ELIMINAR | [/customer/:id](./del-customer.api.mdx) | -| PUBLICAR | [/event](./post-event.api.mdx) | -| OBTENER | [/fee](./get-fee.api.mdx) | -| OBTENER | [/rate](./get-rates.api.mdx) | -| OBTENER | [/unique_address](./gen-address.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/gen-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-fee.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/versions.json deleted file mode 100644 index 923a4cadd5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/README.mdx deleted file mode 100644 index 1c0f791e51..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de endpoints para interactuar con servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/versions.json deleted file mode 100644 index 5fe5133350..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/README.mdx deleted file mode 100644 index ebda808b42..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 23b158c2db..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactúa con tu instancia de Anchor Platform mediante el uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 934d78e819..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.10.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index 79bc149c89..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección lista los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La Especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| - | -------------------------------------------------------------------------- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 42f491e60f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 901173359a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_reembolso_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_reembolso_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 21f613c9b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_cantidades_actualizadas -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_cantidades_actualizadas")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index 45836a5f59..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_info_cliente_actualizada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_info_cliente_actualizada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 7b88a00366..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_flujo_interactivo_completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_flujo_interactivo_completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 431e4ece01..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index b4c7d587bc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 291add5e3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 39ca9284f4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 348902c167..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_recibidos_en_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_recibidos_en_la_cadena", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a6c400158..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_chain_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_chain_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 78e56bd450..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_enviado")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index d7bc13aaf4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 119e4aece7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_expirada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 430ed01d9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_espera -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_espera", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 6f60484859..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_de_transacciones -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_de_transacciones", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index fc46b882ec..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_ajuste_confiable -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_ajuste_confiable")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 2550832461..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_fuera_de_la_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index ec9dd3ef90..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_en_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index fce561c8a2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_confianza")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index 9c70ceddfd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Visión general -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único endpoint HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es agnóstico al transporte en el sentido de que los conceptos se pueden utilizar dentro del mismo proceso, a través de sockets, sobre http, o en muchos entornos diversos de paso de mensajes. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de miembros intercambiados entre el Cliente y el Servidor que se consideren para la coincidencia de cualquier tipo deben considerarse con distinción entre mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/README.mdx deleted file mode 100644 index cdfcc089a0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando y toda la información necesaria proporcionada por una parte externa (como billetera o un anchor). - -No debe confundirse con [transacciones estelares](/docs/learn/glossary#transaction). - - - -| | | -| ------- | -------------------------------------------- | -| OBTENER | [/transactions/:id](get-transaction.api.mdx) | -| OBTENER | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/versions.json deleted file mode 100644 index 6bae1b77eb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.10.0", - "label": "v2.10.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11.json deleted file mode 100644 index 78cd210e8c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2,11", - "description": "The label for version 2.11" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "API JSON-RPC", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callbacks", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/README.mdx deleted file mode 100644 index a180dbbf33..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Introducción a la Anchor Platform -sidebar_position: 10 ---- - -# Anchor Platform - -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y empresas crear sus propios servicios de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, incluyendo la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar la integración de las empresas con billeteras y exchanges basados en Stellar. - -La plataforma también incluye características para gestionar activos, transacciones y cuentas de usuario, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de creación y gestión de un servicio financiero basado en Stellar, permitiendo a las empresas concentrarse en proporcionar valor a sus clientes. - -Aprende sobre la integración con la Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o obtén información de la API en la [Referencia de API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/README.mdx deleted file mode 100644 index f5585941a5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía del Administrador -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre cómo configurar, ejecutar y usar la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/architecture.mdx deleted file mode 100644 index 324d962d4f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son necesarios para todos los despliegues de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes realizan solicitudes al componente servidor SEP de la Anchor Platform utilizando conjuntos de estándares llamados [SEPs][seps] (Stellar Ecosystem Proposals). - -#### Servidor SEP - -El servidor SEP es un servidor orientado al cliente y, por lo tanto, debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio para un par de activos o el estado KYC de un cliente, realiza solicitudes [callback][callback-api] sincrónicas al servidor de negocio y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocios - -El servidor de negocios es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocios responde a las solicitudes de callback enviadas por el servidor SEP, como solicitudes de presupuesto, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido a tu cuenta Stellar, y proporciona actualizaciones al servidor de la plataforma cuando ocurren eventos fuera de la cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de la plataforma es un componente interno. Debería ser alojado en una red privada y no debería ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones utilizando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se utiliza principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir a cuáles de los componentes adicionales utilizar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a clientes registrados y a tu servidor de negocios cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocios consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para empresas que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el Servidor de Custodia también puede facilitar pagos salientes a las cuentas Stellar de los clientes. Si también utilizas el servicio de [eventos], los pagos a tus cuentas activarán un callback HTTP enviado a tu servidor de negocios. - -Si ya tienes una integración con tu proveedor de billeteras, entonces este componente no es necesario, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform se envió o recibió de tus cuentas Stellar a través de la [API de Plataforma][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Stellar Observer - -El Stellar Observer, una alternativa al servidor de custodia mencionado anteriormente, monitorea la blockchain de Stellar utilizando Horizon, detecta automáticamente los pagos de los usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [eventos], los pagos a tus cuentas activarán un callback HTTP enviado a tu servidor de negocios. - -Si ya tienes una solución para monitorear los pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon o RPC, entonces este componente no es necesario, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform se realizó a una de tus cuentas Stellar a través de la [API de Plataforma][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[eventos]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 0c049962d7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Usar el Payment Observer te permite delegar este paso a la Anchor Platform. Para habilitar el Payment Observer, usa la bandera `--stellar-observer` en la sección de comandos del [archivo de composición](../../getting-started.mdx#configuration). - -El Payment Observer rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando se detecte la transacción con el memo esperado en la red, el estado cambiará automáticamente a `pending_anchor` y se emitirá el evento (si se usa Kafka). - -Para actualizar los estados de la transacción, el observador hace las solicitudes JSON-RPC correspondientes a la plataforma. Debería usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Payment Observer no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea pagos, asegúrate de que la lógica del sistema iguale la descripción a continuación: - -Primero, espera a que la transacción se incluya en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que se haya detectado y verificado esta transacción, notifica al usuario que los fondos han sido recibidos utilizando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/error.mdx deleted file mode 100644 index ed8e543672..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :----------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto Request válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Invalid method parameter(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se devuelve desde el Anchor Platform en una solicitud de inicio de retirada de fondos o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 99df34d5a4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. MUST be exactly "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. La lista de métodos disponibles que puedes ver en [Métodos JSON-RPC][json-rpc-methods] -- params - - objeto - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - cadena - - Un identificador establecido por el cliente. The Server will reply with the same value in the Response object - - - -:::tip - -Es posible proporcionar múltiples actualizaciones en una sola solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se realiza una actualización de esta manera, todas las actualizaciones se realizarán de forma secuencial. - -Lo más importante, cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE APLICARÁN y todas las actualizaciones posteriores SE PROCESARÁN y APLICARÁN también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 0d6609928c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un único objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. Está configurado en "2.0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles de la transacción actualizada -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Id único de la transacción para la cual ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Por favor, consulta una lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index c8520fd9b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform alojada en el puerto predeterminado (8085). Los datos de transacción JSON almacenados en el archivo proporcionado se utilizarán como cuerpo (las solicitudes deben ser un array). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/api_key.mdx deleted file mode 100644 index 369e5283f8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación con clave de API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitado, todas las solicitudes deben incluir un encabezado válido `X-Api-Key`, configurado con la clave de API establecida. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 0e8516ad9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres de longitud por motivos de seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/security.mdx deleted file mode 100644 index b5c630312b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -Por defecto, los endpoints de la API de la Plataforma, como `GET /transactions` y `GET /transactions/:id`, no están protegidos y son accesibles por cualquier persona que tenga acceso al servidor, incluidas las billeteras. - -::: - -:::info - -Se recomienda que el servidor de la Plataforma sea accesible solo desde la red privada. Sin embargo, es posible que desees agregar una capa adicional de protección asegurando la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/README.mdx deleted file mode 100644 index a937188bcd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de Custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Utilizar un servicio de custodia te permitirá usar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 388b28f813..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si quieres usar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas desplegar un servicio más: el Servidor de Custodia. - -Este servicio también necesita el `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. Por defecto, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas desplegar el Observador Stellar ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si estableces el tipo de autenticación `api_key` o `jwt`, entonces necesitas añadir una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia usando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.11.0 --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósito para SEP-24 y SEP-31. Además, necesitas configurar una verificación de línea de confianza, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - el memo y el tipo de memo se generan en el código local, y la cuenta de distribución se utiliza para la dirección de depósito. -- `custody` - el memo y el tipo de memo se generan a través de la API de Custodia, por ejemplo Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, el memo y el tipo de memo deben ser proporcionados por el negocio en una solicitud PATCH/JSON-RPC. -- `api` - el memo y el tipo de memo se generan a través de la llamada al endpoint GET /unique_address del anchor. - -::: - -## Configuración del Servidor de Referencia de Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia de Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 5545412341..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configura [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index d9c6238eb4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar usuario de API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL de Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de dirección única](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del servidor de custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 7d1032ee4d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones del diagrama de secuencia se encuentran en la carpeta /static/definitions" -[comentario]: # "Para actualizarlas, usa https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de reconciliación: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retirada SEP-24 con webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retirada SEP-24 con trabajo de reconciliación: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de reconciliación: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/README.mdx deleted file mode 100644 index 7c8ed3dd9b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de Eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos webhook HTTP. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/delivery.mdx deleted file mode 100644 index b37a170904..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de Entrega -sidebar_position: 30 ---- - -## Garantías de Entrega - -Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del broker que uses. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden entregarse fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debe utilizar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor de negocios. - -### Garantías de Entrega del Cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con una reintento exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar más eventos a ese cliente. - -### Garantías de Entrega del Servidor de Negocios - -El servicio de eventos intentará entregar cada evento al servidor de negocios hasta tres veces con un reintento exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor de negocios no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar más eventos al servidor de negocios. - -:::note - -Las garantías de entrega del servidor de negocios son las mismas que las garantías de entrega del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a clientes que no sean accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/getting-started.mdx deleted file mode 100644 index 72a902800b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones HTTP webhook a: - -**Servidores de Negocios** - -- Cambios en el estado de la transacción -- Actualizaciones de cotizaciones -- Cambios en el estado de KYC del cliente - -Los esquemas de eventos para servidores comerciales están definidos en la [referencia de API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones del Cliente** - -- Cambios en el estado de la transacción que afectan a sus usuarios -- Cambios en el estado de KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para aplicaciones del cliente están definidos en sus respectivos SEPs:_ - -- [SEP-6 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Eventos de Clientes](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores de negocios y las aplicaciones del cliente consulten continuamente las API para actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/integration.mdx deleted file mode 100644 index d629dad756..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te llevará a integrar con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend. - -Asume familiaridad con Kafka y no cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema Kafka `TRANSACTION`. El servicio de eventos consumirá eventos de este tema y los enviará a los endpoints apropiados. - -## Configuración - -Primero, el productor de Kafka del servicio de eventos debe ser configurado utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. El siguiente es el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite que se configure un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para más información sobre lo que está disponible. Para más información sobre la configuración del cliente del productor de Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, el procesador de eventos debe configurarse en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto permitirá que el procesador de eventos comience a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los endpoints de retorno de llamada del cliente y del servidor empresarial. - -## Recibir Eventos - -El servicio de eventos se puede utilizar para enviar eventos a los endpoints de retorno de llamada del cliente y del servidor empresarial. El servicio de eventos enviará eventos a estos endpoints como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como Aplicación Cliente - -Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones y la información del cliente de sus usuarios. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. - -Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de retorno de llamada a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. Anchor Platform permite que se configuren endpoints únicos por tipo de evento. - -Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para más información. - -#### Firma de Callback - -Anchor Platform firma las solicitudes de retorno de llamada que envía a las aplicaciones cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de la firma de URL de retorno de llamada se puede encontrar en las especificaciones del protocolo SEP correspondientes. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como Servidor Empresarial - -Además de las actualizaciones del estado de transacciones SEP, los servidores empresariales pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. Visita la [documentación de la API de Eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. - -Para recibir eventos como servidor empresarial, necesitarás exponer una URL de retorno de llamada a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de retorno de llamada del servicio de eventos se puede configurar utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -:::caution - -El `--event-processor` ignorará cualquier segmento de ruta especificado en `callback_api.base_url` y en su lugar enviará eventos a `[scheme]://[host]:[port]/event`. Este es un error, pero para no interrumpir a quienes utilizan el procesador de eventos, pospondremos la corrección que incluye segmentos de ruta en la versión 3 de Anchor Platform. - -::: - -El siguiente es un ejemplo de cómo configurar la API de retorno de llamada del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -El siguiente es un ejemplo de cómo configurar la API de retorno de llamada del servicio de eventos con autenticación de clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de retorno de llamada del servicio de eventos que se utilizará para enviar eventos a los endpoints de retorno de llamada del cliente y del servidor empresarial. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del endpoint de retorno de llamada del servidor empresarial. -- `secret`: El secreto que se utilizará al enviar eventos al endpoint de retorno de llamada del servidor empresarial. Esto se utiliza para firmar el cuerpo de la solicitud cuando la autenticación JWT está habilitada y es la clave API cuando la autenticación de clave API está habilitada. -- `auth`: El método de autenticación que se utilizará al enviar eventos al endpoint de retorno de llamada del servidor empresarial. Las siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un JSON Web Token (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de caducidad del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[archivo de valores predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración de clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/getting-started.mdx deleted file mode 100644 index 44041043dd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es descargar la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.11.0 -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía, usaremos [docker compose][docker-compose] por simplicidad, pero puedes ejecutar la Anchor Platform utilizando otras herramientas que también admiten docker, como [minikube] o un clúster completo de [kubernetes]. - -Vamos a crear un archivo de composición mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` indica a la Anchor Platform que haga disponibles los puntos finales de la API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -La opción `--platform-server` hace disponible la API de la Plataforma, que es la API de backend que tu(s) servicio(s) usarán para comunicarse con la Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- usando variables de entorno -- usando un archivo de configuración YAML - -Se puede usar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan usando guiones bajos o puntos (`_`, `.`) al utilizar variables de entorno. Demostraremos ambos enfoques aquí, pero utilizaremos únicamente variables de entorno en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el archivo de [valores predeterminados][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En su lugar, los secretos de la aplicación, que todos tienen el prefijo `SECRET_`, deben ser especificados en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de composición de docker. - - - -```bash -touch dev.env -``` - - - -Y si estás usando un archivo de configuración YAML, vamos a crear ese también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a añadir una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambiar el Puerto del Servidor de la Plataforma - -Por ejemplo, vamos a cambiar el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas la configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especifica los Activos de tu Servicio - -Vamos a añadir los activos que tu implementación de Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás usando la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación SEP-10 de Stellar, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía, vamos a desarrollar servicios de anchor para el USDC de Circle en la red de prueba de Stellar. Actualiza los valores anteriores basados en los activos que emitirás. Asegúrate de especificar el `issuer` de testnet en tu archivo de desarrollo, y crea tu propio `distribution_account` usando una herramienta como [Stellar Lab][stellar-lab]. El `distribution_account` será utilizado por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo debe ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL admitida por Flyway es PostgreSQL 14. - -Antes de avanzar, vamos a añadir una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Una base de datos solo es necesaria si se usa la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás usando la configuración YAML, las variables de entorno `POSTGRES_` deben estar siempre en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben ser especificados en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Debemos crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que hagamos un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los registros reportando una conexión exitosa con la base de datos postgres. - -### Configurar la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará obtener y actualizar registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace disponibles las APIs públicas de SEP, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciada por la opción `--platform-server`. El negocio debe hacer que el Servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible añadir autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al realizar solicitudes a la API de la Plataforma, añade un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` utiliza `platform` en lugar de `localhost` como el host porque estarás realizando solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de pruebas o producción, asegúrate de actualizar las URLs de tu servicio. - -### Pasar flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, es deseable cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` al valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar una variable de entorno desde tu máquina al contenedor, debes usar la opción `environment` de composición para establecer variables en su lugar. Aquí hay un ejemplo de usar el almacén de claves de tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación local del almacén de claves y `KEYSTORE_PASSWORD` es la contraseña local del almacén de claves. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/overview.mdx deleted file mode 100644 index 2bd22a65fc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -La Anchor Platform es la manera más fácil y rápida de implementar [anchor services](/docs/learn/fundamentals/anchors) compatibles con [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad y requisitos específicos de Stellar para operar un anchor, permitiendo a las empresas enfocarse en la lógica comercial central necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto al implementar las APIs estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones que consumir, mientras ofrece un conjunto de APIs de backend para que las empresas proporcionen información específica para ellas, como tarifas de transacción, tasas de cambio y estados de transacción fuera de cadena. - -A continuación se presenta una lista de los SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API - -La documentación de la Anchor Platform está en progreso. Los desarrolladores son bienvenidos a explorar el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si estás buscando crear un servicio de entrada y salida compatible con SEP-24, consulta nuestra [guía para comenzar][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep1/README.mdx deleted file mode 100644 index 21ade4306a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de Información Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos a las aplicaciones para que conozcan más sobre tu servicio al alojar un archivo `stellar.toml` en una ruta URL estandarizada. Este archivo permite a las aplicaciones encontrar información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas URL raíz para estos servicios. Podemos alojar este archivo utilizando la Anchor Platform. - -Creamos un archivo llamado `dev.stellar.toml` utilizando el contenido a continuación como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue de producción que use la frase de paso de la red pública, las URLs de servicio de producción, tus cuentas de distribución de Mainnet y la clave de firma, así como las cuentas emisor de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto le dirá a la Anchor Platform que debe alojar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser alojado utilizando un servidor de archivos estáticos adecuado como [nginx]. Mientras tu archivo de información incluya las URLs apropiadas que apunten a la Anchor Platform, esto funcionará perfectamente. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep10/README.mdx deleted file mode 100644 index 7c7986f6b2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar la Autenticación Stellar - -Las aplicaciones de billeteras basadas en Stellar crean sesiones autenticadas con anchors Stellar al demostrar que ellos, o sus usuarios, tienen suficiente control sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el anchor en solicitudes posteriores a los servicios estandarizados del anchor. - -La Anchor Platform admite esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás alojando el archivo toml a través de la Platform, (`SEP1_ENABLED` está establecido en `true`), el archivo toml se alojará en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre que estés en posesión de la `SIGNING_KEY`. Las billeteras comprobarán esta firma antes de firmar y enviar de vuelta el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de cifrado que se utilizará para firmar y verificar los tokens de autenticación que emitas a las aplicaciones de billetera después de que ellas o sus usuarios hayan demostrado control sobre su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique con tus servicios. Si deseas permitir solo a los usuarios de una aplicación de billetera particular que se autentiquen, o quieres prohibir a usuarios específicos que se autentiquen, utiliza las siguientes variables de entorno. Esta es una función opcional y solo debe ser añadida si es un requisito del negocio. - -::: - -## Configurar con Atribución de Cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billetera externos o clientes con los que el servidor Anchor puede comunicarse de manera segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billetera externos o clientes con los que el servidor Anchor puede comunicarse de manera segura. - -## Modificar un Archivo de Información Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 es admitida por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/README.mdx deleted file mode 100644 index ae23436a23..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y Retiros Alojados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio por el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con un on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 0b2c4830b3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un Archivo de Información de Stellar - -A continuación, modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue en producción que utilice la frase de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución de Mainnet y tu clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -## Habilitar Depósitos y Retiros Alojados - -Ahora estás listo para habilitar depósitos y retiros alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml`, y cambia los valores según tus preferencias. Este archivo de activo de ejemplo habilitará el soporte para USDC de Circle y un USD en fiat. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -La información proporcionada para el valor `assets` se corresponde estrechamente con la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-24 [`GET /info`][sep24-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, entregando el control de la experiencia del usuario desde la billetera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada con mayor frecuencia por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de encriptación que la Anchor Platform utilizará para generar tokens de corta duración que se añadirán a las URLs proporcionadas a la billetera. El servidor de tu negocio también debe tener estas claves en su entorno para que pueda verificar la firma del token. - -## Probar con la Billetera de Demostración - -¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y los archivos fuente ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse como lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, ve a la [Billetera de Demostración de Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la Anchor Platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Inicia una transacción haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar Activo" e introduce - - el código del activo de Stellar en tu archivo `stellar.toml` - - tu dominio de origen, `localhost:8080` -- Selecciona el desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar utilizando el keypair de Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, recibirás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/example.mdx deleted file mode 100644 index 6dddc50b5e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrarse con la Anchor Platform involucra tres áreas clave: - -- Crear una experiencia de usuario basada en la web que se pueda abrir en una vista web móvil -- Proveer actualizaciones del estado de las transacciones a la Anchor Platform -- Obtener actualizaciones del estado de las transacciones desde la Anchor Platform - -## Crear una experiencia de usuario basada en la web - -La Anchor Platform no ofrece una interfaz de usuario de marca blanca que tu negocio pueda utilizar, y en su lugar espera que el negocio construya su propia interfaz de usuario y sistema backend. No construiremos toda una experiencia de usuario de entrada y salida en esta guía, pero cubriremos las formas en que tu producto existente debería ser actualizado para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto de entrada y salida existente, probablemente tengas un sistema existente para la autenticación de usuarios. Sin embargo, dado que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es en realidad innecesario. De esta manera, la Anchor Platform puede ser considerada como una forma alternativa de autenticación. - -El negocio es libre de seguir requiriendo que los usuarios se autentiquen utilizando su sistema existente, pero la experiencia ideal del usuario omitiría este paso y crearía una sesión autenticada para el usuario si ya se ha autenticado utilizando su cuenta Stellar. - -La Anchor Platform agrega un parámetro de consulta `token` JWT a la URL del negocio dada a la aplicación de billetera. Este token está firmado por el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` previamente configurado, e incluye la información que necesitas para identificar al usuario. El proceso debería verse algo como esto: - -1. Pasa el `token` agregado a la URL de tu sistema backend -2. Verifica la firma en el `token` y comprueba su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -El contenido decodificado del `token` se verá algo como esto: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Ten en cuenta que el valor `sub` identifica al usuario utilizando una cuenta Stellar y un entero. Este es el valor que tendrá cuando las aplicaciones custodiales que utilizan una cuenta omnibus se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentiquen, el token puede verse ligeramente diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticar. - -En ambos casos, toda la información en el objeto `data` es opcional, y solo estará presente si la billetera proporciona esa información. - -Vamos a agregar un servidor backend a nuestro archivo de composición que se usará para verificar el token y crear sesiones web autenticadas para los usuarios que inician transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Vamos a crear un contenedor Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora vamos a crear una aplicación mínima de NodeJS. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend autenticando a un usuario utilizando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de plataforma y la base de datos e inicia una nueva transacción con la [demo wallet][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionando Actualizaciones a la Plataforma - -Vamos a crear un endpoint para nuestro servidor de negocio que acepte la información recolectada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá a las aplicaciones de billetera obtener esta información actualizada para que pueda ser retransmitida al usuario. Debes haber informado ya al usuario de los montos de la transacción y que tu negocio está esperando que llegue el pago on-chain, pero proporcionar estas actualizaciones permite a los usuarios ver el estado de sus transacciones a través de su aplicación móvil sin abrir de nuevo la interfaz de usuario del negocio. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando los estados de las transacciones cambian, sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "solicitudes de callback" para que las aplicaciones de billetera no tengan que consultar la Anchor Platform por actualizaciones. - -::: - -## Obteniendo Actualizaciones de la Plataforma - -Si solo utilizas la Anchor Platform para exponer las API de SEP a las aplicaciones de billetera, entonces no tendrás una razón fuerte para obtener actualizaciones del estado de las transacciones desde la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que hagas solicitudes `JSON-RPC API`. - -Sin embargo, si utilizas la Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados con transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando se reciban los pagos. - -Hay dos maneras de obtener actualizaciones de la Anchor Platform, - -- Consultando el endpoint `GET /transactions/:id` de la API de la Plataforma para las transacciones que esperas un pago -- Transmitiendo eventos de cambio de estado de transacciones desde un clúster Kafka - -Mientras que transmitir cambios de estado de transacciones desde un clúster Kafka puede ser un enfoque más robusto y escalable, vamos a utilizar el método de consulta en esta guía. Configurar y usar un clúster Kafka será el tema de una sección diferente de la documentación. - -Primero, configuremos la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.11.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` para pagos de retiradas de fondos. - -Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor de `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará la transacción con la que está asociado ese memo como recibida y actualizará el estado de la transacción a `pending_anchor`. Hace esto haciendo una solicitud `JSON-RPC API`, así que necesitamos configurar la URL que debería utilizar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Hagamos algunas adiciones al archivo `server.js` para que podamos consultar a la Anchor Platform por nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación de Ejemplo Completo - -Stellar proporciona una implementación de servidor de negocio de ejemplo para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación backend, utilizada para obtener y enviar actualizaciones desde/hacia la Anchor Platform. - -El código de la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código del backend es parte de la Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/faq.mdx deleted file mode 100644 index b7a90de96a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas Frecuentes -sidebar_position: 50 ---- - -### ¿Cómo Usar JWTs? - -Como parte del flujo, una vez que un usuario realiza una solicitud, es decir, una solicitud de retirada/deposito interactiva, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform hará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. `exp` es el tiempo de caducidad del token. Debes verificar que el token proporcionado no haya caducado. -2. `sub` es la cuenta asociada con esta transacción. Puede ser usado para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. -3. `jti` es el hash de la transacción. -4. `data` es la carga adicional que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### ¿Cómo Proporcionar Tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de intercambio en la vista iFrame/web de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` que permite a las empresas establecer tarifas estáticas para sus transacciones. Sin embargo, actualmente no está admitido por la Anchor Platform. - -:::note - -El endpoint `/fee` será descontinuado en el futuro. - -::: - -### ¿Cómo identificar la cuenta del usuario? - -Debes usar el campo `sub` del token JWT. Para billeteras custodiales, este valor estará en el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí, que será igual a la cuenta del usuario. - -### ¿Cómo identificar la billetera? - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, permitiendo la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clientes]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index 88e16d2f8d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el soporte de la Anchor Platform para SEP-24, las empresas hacen que su servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectándose con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap] - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente al depositar y retirar fondos es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información KYC y de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede luego usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor, o cualquier otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que sería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para retirar y la billetera encuentra el anchor -3. Después de autenticar con el anchor, la billetera abre la URL interactiva dada y permite que el cliente ingrese su información de transacción (KYC ya ha sido recopilado) -4. Después de solicitar la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/integration.mdx deleted file mode 100644 index 4a7214a553..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. - -En general, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al endpoint de la Platform API. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario realizar la solicitud JSON-RPC correspondiente y pasar los datos requeridos por este método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado eso, la API se llamará cada vez que un usuario o el anchor realice alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes aprender más sobre el flujo de transacciones y sus estados en el [documento del protocolo SEP-24][sep-24] - -## Devoluciones de llamada - -La Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre cotizaciones. - -### Cotizaciones y Tarifas - -Para soportar el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se usa para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para informar al usuario sobre las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tasas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Seguridad de la Platform API - - - -### Uso de la clave API - - - -### Uso de JWT - - - -## Realizando solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de error - - - -## Actualizando la transacción de depósito vía JSON-RPC - -El diagrama del flujo de depósito SEP-24 define la secuencia/reglas de transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Listo para recibir fondos - -El primer paso del flujo de depósito después de iniciar el depósito en sí es recopilar KYC. Generalmente se realiza en la web-app, pero también puede ser proporcionado opcionalmente por la aplicación de billetera, usando [SEP-9]. Una vez que se recopila el KYC necesario, se debe realizar una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es la cantidad total de tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. - -La información sobre las cantidades (entrada/salida/tarifa) es necesaria si deseas mover la transacción del estado `incomplete` al estado `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de las cantidades. - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso KYC es largo (por ejemplo, verificación de identificación), se recomienda primero establecer el estado de la transacción a `pending_anchor` usando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC está siendo procesado. - -::: - -### Procesando información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo e ir al [siguiente paso](#funds-received). - -Se recomienda usar este estado cuando la verificación KYC pueda necesitar realizarse de forma asíncrona. - -::: - -**Debes** especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos recibidos - -Si se recibieron fondos fuera de cadena, querrás proporcionar información actualizada de la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de los fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de cantidad son opcionales. Si se omiten, se tomarán los valores de las solicitudes JSON-RPC previas. - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando fondos del usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deberían establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero que los fondos aún no se han recibido. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando fondos onchain - -Luego, envía una transacción en la red Stellar para cumplir la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados correctamente. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción cambiará al estado `completed`. - -### Enviando pago a través de un servicio de custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago mediante servicios de custodia, como Fireblocks. Para realizar un pago a través del servicio de custodia, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform automáticamente hará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor está esperando que el usuario establezca la trustline. - -Si la integración con custodia está habilitada, la Anchor Platform realizará esta validación automáticamente. - -::: - -### Pendiente de trust - -Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos maneras en que la transacción puede pasar al estado `pending_trust`. La primera es el procesamiento de un pago a través del servicio de custodia en caso de que se detecte que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si la trustline fue configurada. Si fue configurada, enviará automáticamente un pago al servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- El flag `success` que define si la trustline fue o no configurada por el usuario - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no lo fue. - -::: - -### Enviando reembolso vía servicio de custodia - -Existe la posibilidad de devolver fondos al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o hacer varios reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes devolverle una parte y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso pendiente - -Es similar a [Reembolso enviado](#refund-sent), pero maneja un caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se espera que una transacción de Bitcoin u otra red de cripto externa se complete, o cuando se espera una transferencia bancaria. - -### Error en la transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, deberías hacer una recuperación de transacción y luego puedes reintentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción caducada - -Tu negocio puede querer caducar transacciones que hayan sido abandonadas por el usuario después de cierto tiempo. Es una buena práctica limpiar transacciones inactivas en el estado `incomplete`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya realizado una transferencia. - -::: - -### Transacción en espera - -En casos raros, puede que desees pausar la transacción actual y solicitar más información del usuario (después de que se haya recibido la transferencia). Esto podría usarse para casos de cumplimiento normativo. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando la transacción de retirada de fondos vía JSON-RPC - -Este diagrama define una secuencia/reglas de transición del estado de la transacción para el flujo de retirada SEP-24. - -[![flujo de retirada sep24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez finalizado el flujo de depósito, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la actualización será diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Valor del memo para adjuntar a la transacción -- `memo_type` Tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account` Cuenta de destino - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio externo está activada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige el tipo correspondiente de `deposit_info_generator_type`. También puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto ayuda a asociar las transacciones Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente `memo` y `memo_type` (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta Stellar que se usará para recibir fondos debe estar configurada. - -::: - -### Procesando información KYC - -Este paso es opcional, y es similar a [Procesando información KYC](#processing-kyc-information) del flujo de depósito. - -### Fondos recibidos - -Si se recibieron fondos onchain, necesitas proporcionar las cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad actualizada - -Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere de lo especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos fuera de cadena enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos fuera de cadena disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos fuera de cadena y si está listo para que el usuario/receptor los recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos fuera de cadena pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviando reembolso vía servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso mediante un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similar al flujo de depósito, puedes hacer un reembolso completo o varios reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error en la transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error en la transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Transacción en espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción en espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[manejo de eventos]: ../events/README.mdx -[tasa-devolución]: ../../api-reference/callbacks/README.mdx -[métodos-json-rpc]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index fad57fa0fb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un servidor de producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté En vivo y hayas probado tanto los flujos de depósito como de retirada de fondos, es hora de comenzar con el despliegue real conectado a KYC real y a proveedores de banking rails reales. Antes de usar cualquier API bancaria, es crítico que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Desplegar un entorno seguro - -Asegúrate de mantener el servidor de prueba activo y de desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas funciones en el testnet antes de moverlas al despliegue de producción final. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en esta base de código y/o habrá muchos envíos que se deben probar internamente antes de compartirlos con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, solo tienes que cambiar la [contraseña de la red](/docs/networks#network-passphrases) (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia la configuración de tu Anchor Platform en el archivo `production.env`: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectando a KYC real - -La mayoría de los anchors necesitan recoger información de [Conoce a tu Cliente](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con las regulaciones locales antes de honrar depósitos y retiradas de fondos. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejes el KYC depende de ti: hay muchos servicios que proporcionan soluciones KYC a través de APIs e iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar requisitos. Cada jurisdicción tiene requisitos KYC específicos, y estos difieren de jurisdicción a jurisdicción, por lo que es mejor encontrar un proveedor KYC específico de cada país que satisfaga tus necesidades. - -Algunos países requieren diferentes campos KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios KYC según la cantidad de depósito o retirada, simplemente añade un campo de cantidad antes del formulario KYC, y asegúrate de que los campos KYC se actualicen en función de ese valor. - -La información KYC debe estar vinculada a la sesión creada a través de [Stellar Web Authentication](../sep10/README.mdx) y, en consecuencia, al usuario, así que solo necesitas pedirle al usuario eso una vez. Después de que el primer flujo KYC se complete, un usuario no debería tener que ingresar la información nuevamente. - -Asegúrate de que los errores y los mensajes de validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También deberías localizar los mensajes según el idioma y la ubicación del usuario. - -## Pre-rellenar el formulario KYC - -Pre-rellenar el formulario KYC es una excelente manera de reducir la fricción al comenzar a usar un anchor, y las billeteras generalmente proporcionan un conjunto de campos que se utilizan comúnmente en todo el ecosistema. En resumen, el anchor puede renderizar el formulario KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, debes seguir permitiendo que los campos pre-rellenados sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera y podría querer editarlo antes de finalizar el proceso KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [Interactive JWT](./faq.mdx#how-to-use-jwts), enviados por la Anchor Platform - -## Conectando a banking rails reales - -Se espera que los emisores de tokens respaldados por fiat gestionen una reserva total. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado por un activo real del mundo real y puede ser canjeado por él, los emisores de tokens respaldados por fiat necesitan conectarse a los rails bancarios reales para validar los depósitos de usuario (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y para completar las retiradas de usuario (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiros de un token que emite otra organización, seguirás un proceso similar. - -Para obtener (e identificar) una transferencia de usuario, los emisores generalmente toman uno de dos enfoques: - -- Polling de API: esta opción consiste en obtener la API del banco, a través de un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas por (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a esa cuenta de usuario. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todas las infraestructuras bancarias admiten esta opción, pero es la más eficiente en términos de lógica de back-end. En este enfoque, el banco accede proactivamente al endpoint de un emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede igualar esa transacción con un depósito en proceso existente y validar que el usuario puede recibir sus fondos digitales - -Algunos bancos (y países) tienen infraestructura de transferencias que permite la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Algunos bancos (y países) tienen infraestructura de transferencias que permite la creación de una sola cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Al algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualar eso con la información proporcionada en el formulario KYC. - -Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando estén en su lugar las conexiones de banking rails. Algunos bancos proporcionan una API de prueba que se puede utilizar para el desarrollo y despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para una mejor seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar las transferencias de retirada de fondos. En términos de UX, esta aprobación manual es aceptable siempre que los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no son más largos que un par de horas. - -## Pruebas de casos extremos - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporta como se espera. Aquí tienes una lista de sugerencias de pruebas que deberían cubrir una gran cantidad de los casos extremos de la aplicación: - -### Pruebas generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz usando información de diferentes localidades y verifica el contenido traducido, incluyendo los mensajes de error, respuestas, formato de fechas y formato de números - -### Pruebas KYC - -- Verifica que KYC aparezca con un nuevo wallet SK -- Verifica que KYC no acepte entradas formateadas incorrectamente y que los mensajes de error sean comprensibles -- Verifica que puedas usar la misma información KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) varias veces -- Verifica que puedas pasar por KYC varias veces con el mismo Stellar SK. - -### Prueba interactiva - -- Verifica que el flujo de depósito funcione y que los banking rails estén funcionando -- Verifica que no puedas hacer una retirada con un valor superior al saldo actual -- Verifica que el flujo de retirada funcione y que los banking rails estén funcionando - -### Pruebas de seguridad - -- Asegúrate de que los endpoints de la plataforma estén seguros - -## Pulido e internacionalización - -Apoyar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan a través de las pantallas, y apoya a las instituciones internacionales (como billeteras) que necesitan probar el producto antes de comenzar nuevas integraciones. - -Puedes soportar múltiples idiomas en tu webapp utilizando el parámetro `Accept-Language` de los encabezados de solicitud http para localizar el contenido y permitir a los usuarios cambiar eso de una manera simple (por ejemplo, un icono de e en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al inicio de los procesos de depósito y retirada. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites pedirle una vez. Además de localizar el texto, asegúrate de verificar el formato de números, fechas, etc. - -Tener un grupo de beta testers es una excelente manera de verificar si hay casos extremos que necesitan pulido y de confirmar que el sistema está funcionando bien con una variedad de entradas de usuario. Puedes realizar pruebas beta utilizando una etapa de lanzamiento suave antes de comenzar a dedicar esfuerzos al marketing y la distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y brinda a los nuevos socios y usuarios potenciales claridad y confianza en el producto. - -## Conectando a billeteras - -Todas las interacciones de usuarios de Anchor se realizan a través de una billetera, por lo que es vital que los anchors estén conectados a billeteras que tengan una buena penetración en el mercado en la región donde el negocio está más enfocado. Conectar a billeteras es un proceso simple, ya que ambos extremos de esa integración ya son compatibles con los SEPs. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente admiten SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta emisora es una excelente manera de comenzar a obtener algunos usuarios reales para el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/README.mdx deleted file mode 100644 index d1e5ae3870..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos transnacionales -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual las billeteras y/o exchanges interactúan con el conjunto existente de servicios de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/configuration.mdx deleted file mode 100644 index de767d0993..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información Stellar - -Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación de producción que utilice la frase de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución de mainnet y clave de firma, así como las cuentas de emisión de mainnet de los activos que utiliza tu servicio. - -## Habilitar pagos transnacionales - -Ahora estás listo para habilitar los pagos transnacionales a través de la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -La información proporcionada en los objetos `sep31` y `send` mapea de cerca a la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-31 [`GET /info`][sep31-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y se eliminará en una futura versión, pero puedes ajustar los valores de `send.min_amount` y `send.max_amount` de acuerdo a los límites de tu servicio. - -Los valores `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y están obligadas a solicitar una tasa de cambio utilizando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de proceder. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los remitentes ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté en vivo. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API KYC del cliente - -Los negocios necesitan recopilar y validar información KYC de los clientes para los que están facilitando transacciones. Los clientes determinan qué información KYC necesita ser recopilada y envían esa información a través de una API KYC SEP-12 hospedada por la Anchor Platform, pero la Anchor Platform nunca almacena información que pueda identificar personalmente (PII). En su lugar, reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio de nuevo al cliente, actuando como un servidor proxy. - -Consulta la [especificación KYC API de Anchor Platform][platform-api-kyc] para detalles sobre los endpoints que deben implementarse en el servidor de tu negocio. - -Para hacer esta API disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Habilitemos esto en nuestro entorno también. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, tenemos que definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transnacionales en dos jurisdicciones regulatorias distintas, por lo que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y se representarían utilizando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente excluyentes, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación está en su lugar porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como una que envía un monto grande. Solo puede validar que un cliente está aprobado para uno de los tipos de clientes definidos. Esta limitación se eliminará en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente remitente y un tipo de cliente receptor. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Pongamos el endpoint de información nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Los negocios necesitan proporcionar a sus contrapartes de envío una API de [Tasa][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo on-chain que se utiliza para el ajuste y el activo fiat que se utiliza para pagar al destinatario. Si la tasa es competitiva, los remitentes también necesitan poder solicitar un compromiso con la tasa que actualmente se les ofrece por parte del negocio por un corto período de tiempo. - -La Anchor Platform proporciona la [API RFQ SEP-38][sep38] a los remitentes para este propósito. - -Para hacer esta API disponible a los clientes, agreguemos la URL del servicio a nuestro archivo de información Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Habilitemos esto en nuestro entorno también. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar el USDC para ser utilizado en esta API, así como agregar un activo off-chain con el que se pueda intercambiar. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté en vivo! Después de `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar autenticación de la API de callbacks - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Agreguemos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como el host porque la Anchor Platform estará haciendo solicitudes a tu servidor desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de staging o de producción, asegúrate de actualizar las URLs de tu servicio. - -Definiremos el servidor que implementa los endpoints definidos en la API de callbacks en la siguiente sección. - -:::caution - -Ten en cuenta que a partir de la versión 2.x no se admiten segmentos de ruta en `CALLBACK_API_BASE_URL` (como `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 341ce27211..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de recepción de pagos transnacionales compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transnacionales. - -Al aprovechar el soporte de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios de envío de Stellar. - -:::info - -As we improve the documentation, parts of this guide that are relevant to other use cases may be moved into their own sections. - -::: - -Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Anchor Platform y de haber configurado las características necesarias requeridas por SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/integration.mdx deleted file mode 100644 index 2722683c7f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrar con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recopilar los datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de FX entre los activos on-chain y off-chain admitidos -- `GET /transactions` solicitudes para obtener actualizaciones sobre el estado de las transacciones de la Anchor Platform (documentación próximamente) -- [`JSON-RPC`][json-rpc-methods] solicitudes para actualizar los estados de las transacciones de la Anchor Platform - -Lo siguiente también puede ser requerido dependiendo de tu caso de uso: - -- [`GET /fee`][get-fee] si tu negocio quiere proporcionar a los remitentes la opción de omitir el paso de creación de cotizaciones -- [`GET /unique_address`][get-unique-address] si tu negocio utiliza un servicio de custodia para activos on-chain -- [`DELETE /customer`][delete-customer] si tu negocio quiere o está obligado a permitir que los remitentes soliciten la eliminación de los datos del cliente - -## Crear un Servidor Comercial - -Primero, vamos a crear un servidor comercial y agregarlo a nuestro archivo de composición de Docker. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.11.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.11.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web simple utilizando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar correctamente los tres servicios. `docker compose up` debería iniciar exitosamente los tres servicios. - -Esta guía no proporciona una implementación de ejemplo de los endpoints, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia de API de Anchor Platform][ap-api], y las secciones a continuación ampliarán los conceptos importantes para entender al implementar los endpoints. - -## Puntos finales de Callback de Clientes - -La Anchor Platform nunca almacena la PII de tus clientes, y en su lugar actúa como un servidor proxy entre las aplicaciones cliente y tu negocio, reenvíando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación de API KYC SEP-12][sep12]. - -### Identificar Clientes - -Los clientes pueden ser identificados utilizando dos enfoques. - -El primer enfoque utiliza una cuenta Stellar y un memo. Al usar la Anchor Platform para facilitar pagos transnacionales, la organización remitente utiliza su propia cuenta Stellar, la que se utilizó para autenticarse a través de [SEP-10 Autenticación Stellar][ap-sep10], al registrar clientes con tu negocio. Los memos se utilizan para distinguir a clientes únicos que provienen de la misma organización remitente. - -El segundo enfoque utiliza identificadores de cliente generados por tu servicio. Por ejemplo, si una organización remitente está registrando a un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos suelen ser enteros de 64 bits, pero también pueden ser otros tipos de datos, por lo que deben guardarse como cadenas. En respuesta, tu negocio debe devolver un ID de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor comercial puede usar cualquier identificador para clientes siempre que sea una cadena. - -Después del registro de un cliente, la organización remitente puede usar cualquiera de los enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir una solicitud `GET /customer` como la siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización remitente podría usar el identificador que devolviste cuando originalmente registraron al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio deberá mantener un mapeo entre la cuenta y el memo utilizados para registrar originalmente al cliente y el ID que devolviste en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podríamos mantener este mapeo para tu negocio, para que solo tengas que trabajar con los ID que generas. - -### Tipos de Clientes - -Tu negocio probablemente requiere diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes deberán comprender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, debes usar el tipo enviado para evaluar si el remitente ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, debes usar el tipo para determinar el estado del cliente. - -### Prueba con la Billetera de Demostración - -Puedes probar tu implementación con la [Billetera de Demostración Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar Activo" e introduce el código del activo y el dominio principal de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar línea de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver que la billetera de demostración encuentra las URLs de tu servicio, se autentica y verifica qué campos KYC necesita recopilar. Luego, debe mostrar un formulario para que ingreses los detalles KYC del remitente y del receptor. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, enviará esa información a la Anchor Platform, que la enviará a tu servidor comercial. Una vez que la billetera de demostración tenga los ID de los clientes que generaste, iniciará una transacción que debería fallar. - -## Punto Final de Callback de Tarifas - -Una vez que la organización remitente haya registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa de FX, de tu negocio. La Anchor Platform solicita esta información a tu servidor comercial usando el [`GET /rate` endpoint][get-rate]. - -### Cotizaciones Firmes vs. Indicativas - -Las solicitudes de cotizaciones tendrán un parámetro `type` que es [`indicativa`][indicative] o [`firme`][firm]. Si `type=firm`, tu respuesta debe incluir el `id` y el campo de fecha y hora `expires_at` y reservar la liquidez necesaria para cumplir con esta cotización hasta que expire. Si `type=indicative`, no devuelvas los campos `id` o `expires_at` porque la tasa proporcionada no se utilizará en una transacción. - -Ten en cuenta que el cliente puede solicitar que la cotización expire después de una fecha y hora específicas utilizando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor `expires_at` que esté en o después de la fecha y hora solicitadas o rechazar la solicitud con una respuesta de 400 Bad Request, que se reenviará al cliente. - -### Usando el ID del Cliente - -Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para adherirte a los términos comerciales acordados con esa organización remitente, como ofrecer tarifas con descuento. `client_id` puede no estar presente para solicitudes indicativas, en cuyo caso tu precio de mercado debe ser devuelto. Actualmente, `client_id` siempre será la clave pública Stellar que la organización remitente utilizó para autenticarse con la Anchor Platform. - -### Métodos de Entrega - -Es común que las tarifas y comisiones de las empresas varíen dependiendo de los métodos de pago utilizados para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán el método de pago que quieren que tu negocio utilice para las solicitudes de cotización firmes. - -Debido a que este punto final actualmente solo se utiliza para pagar remesas en activos off-chain, se utilizará `buy_delivery_method`. Si este punto final se utiliza en otros flujos de transacción, como depósitos SEP-24, entonces `sell_delivery_method` también puede ser pasado para negocios que soporten estos tipos de transacciones. - -## Actualizar las Actualizaciones de Estado de la Transacción - -Para facilitar pagos transnacionales, necesitarás poder detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar qué transacción estaba destinado a cumplir. - -La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacción correspondiente con información sobre el pago. Tu negocio puede detectar estas actualizaciones sondeando el punto final de la API de la Plataforma `GET /transactions`. - -### Ejecutando el Stellar Observer - -El Stellar Observer monitorea el ledger Stellar para pagos realizados a tus cuentas y actualiza los registros de transacciones correspondientes con información de pago on-chain. Para ejecutar el observador, añade lo siguiente a tu archivo de composición de Docker. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.11.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Sondeando Pagos Recibidos - -El Stellar Observer realiza solicitudes JSON-RPC a la API de la Plataforma cada vez que detecta pagos recibidos para transacciones iniciadas por organizaciones remitentes, actualizando así la fecha y hora de `transfer_received_at` de la transacción. - -Tu negocio debe sondear periódicamente el punto final de la API de la Plataforma `GET /transactions` para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pagos transnacionales iniciadas por organizaciones remitentes. Esta lista estará ordenada de acuerdo con el momento en que se recibió un pago para esa transacción. Para cada transacción devuelta, tu negocio debe verificar si ya ha detectado el pago para esa transacción. Si lo ha hecho, has detectado todos los pagos realizados a tus cuentas. - -## Actualizar la Transacción a Través de JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para realizar solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para Recibir Fondos - -Las Transacciones SEP-31 deben estar inicialmente en el estado `pending_sender`. El Anchor Receptor espera recibir el pago identificado por el stellar_memo incluido en la respuesta POST /transactions. - -Una vez que tu negocio detecta que ha recibido un pago on-chain para una transacción específica, debe actualizar el estado de la transacción. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción se cambiará a `pending_receiver`. - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verificando la Información del Cliente - -En algunos casos, el Anchor Receptor puede necesitar solicitar una información actualizada del Anchor Remitente. Por ejemplo, el banco le dice al Anchor Receptor que el nombre del Cliente Receptor proporcionado es incorrecto o falta un segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debe ir al estado `pending_customer_info_update` hasta que el Anchor Remitente haga otra solicitud SEP-12 `PUT /customer` para actualizar. El Anchor Remitente puede verificar qué campos necesitan actualizarse haciendo una solicitud SEP-12 `GET /customer` que incluya los parámetros id o account y memo. El Anchor Receptor debe responder con un estado `NEEDS_INFO` y `last_name` incluido en los campos descritos. - -Después de que el Anchor Remitente haga una solicitud SEP-12 `PUT /customer`, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Además, llama a este método cada vez que cambie el estado SEP-12 de un cliente, como cuando se está validando la información del cliente y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado sobre el último estado del cliente, permitiendo al cliente solicitar al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Hacer un Reembolso Stellar - -La integración con el servicio de custodia te permite realizar un reembolso a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el total del monto reembolsado más la cantidad de la tarifa debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Reembolso Enviado - -Hay posibilidad de enviar todos los fondos de vuelta al `Anchor Remitente` (reembolso). Necesitas reembolsar la suma total (reembolso completo). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa de monto debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para ejecutar esto, necesitas hacer: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, deberías hacer una recuperación de la transacción, y luego puedes volver a procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar aquellas transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar las transacciones inactivas en estado `incompleto`. Para hacerlo, simplemente cambia el estado de la transacción a `caducado`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede usar después de que el usuario ha realizado una transferencia. - -::: - -### Recuperación de Transacciones - -El estado de la transacción puede cambiarse de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Endpoint de Callback de Tarifas - -Tu negocio puede querer ofrecer a las organizaciones emisoras la opción de omitir el proceso de creación de cotizaciones, permitiendo a tu negocio usar una tarifa determinada en el momento en que los fondos se pagan al destinatario. En este caso, la Anchor Platform no hará una solicitud `GET /rate`, pero aún deberás proporcionar la tarifa que tu negocio cobrará por estos tipos de transacciones utilizando el endpoint [`GET /fee`][get-fee]. - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Endpoint de Callback de Dirección Única - -Las empresas deben proporcionar un par de cuenta Stellar y memo únicos para cada transacción solicitada por las organizaciones emisoras para que la Anchor Platform pueda identificar y mapear el pago on-chain enviado para la transacción específica. La Anchor Platform puede generar estos pares de cuenta y memo por sí misma, pero la mayoría de las empresas utilizan un servicio de custodia para recibir pagos on-chain. En este caso, la empresa deberá solicitar al custodio que genere la cuenta Stellar y el memo. Esto se realiza utilizando el endpoint [`GET /unique_address`][get-unique-address]. - -### Configuración - -Para configurar la Anchor Platform para realizar estas solicitudes, agrega lo siguiente a tu configuración: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -Este endpoint podría eliminarse durante futuras actualizaciones importantes de la versión de la Anchor Platform, cuando añada soporte para conectarse a servicios de custodia y generar estas direcciones automáticamente. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/README.mdx deleted file mode 100644 index 141c505e58..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas de fondos programáticas -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio mediante el cual las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, sin requerir que el usuario interactúe directamente con el on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/configuration.mdx deleted file mode 100644 index d0e2955fd8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar los depósitos y retiradas SEP-6, la Anchor Platform debe ser configurada para hacer lo siguiente: - -- Proporcionar las URLs de servicio necesarias para los endpoints SEP-6, 12, e 38 en el archivo `stellar.toml` -- Proporcionar información sobre los activos on-chain y off-chain, así como los rails de pago, admitidos por tu negocio a través de los endpoints `/info` SEP-6 y SEP-38 -- Admitir los endpoints y callbacks requeridos para solicitar información KYC y proporcionar tasas de cambio - -## Habilitar depósitos y retiradas programáticas - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un archivo de información Stellar - -Vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 es admitida por tu negocio, y también necesitan conocer todos los activos Stellar que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de contraseña de la red pública, las URLs de servicio de producción, tus cuentas de distribución Mainnet y la clave de firma, así como las cuentas de emisión Mainnet de los activos que utiliza tu servicio. - -### Modificar el archivo de configuración de activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores dependiendo de tu caso de uso. Este archivo de ejemplo de activos habilita el soporte para el USDC de Circle y un USD fiduciario para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que serán expuestos por el endpoint SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que serán expuestos por el endpoint SEP-6 [`GET /info`][sep-6]. Los métodos listados deben corresponder a los métodos definidos en la sección SEP-38 del archivo. Los métodos listados deben coincidir con los métodos definidos en la sección SEP-38 del archivo. - -También ten en cuenta que los activos fiduciarios, aquellos con el `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit`, o `withdraw` especificados. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods` especificados. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Gestión de cuentas de distribución - -Ten en cuenta que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta se proporcionará junto con un memo aleatorio y único por transacción a los clientes como la dirección a la que enviar fondos para las transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar usas un tercero que te proporciona una cuenta Stellar y un memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, debes omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y el memo que te gustaría usar para recibir fondos a través de una solicitud a la Anchor Platform [`request_onchain_funds`][request-onchain-funds] por transacción. - -Para configurar la Anchor Platform para esperar que la cuenta Stellar y el memo sean proporcionados a través de la API en lugar de configurarlos a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si usas un proveedor de billeteras admitido por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billeteras para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también usará el proveedor de billeteras para enviar fondos a los clientes. Consulta la sección [servicios de custodia] para obtener más información sobre cómo configurar esta función, pero primero deberás especificar un valor diferente para la variable de entorno anteriormente mencionada. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar callbacks al servidor del negocio - -Las empresas necesitan recopilar y validar información KYC sobre los clientes para los que están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC necesita ser recopilada y envían esa información a través de la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En cambio, reenvía solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Además, los negocios necesitan proporcionar a los clientes una API [Rates][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre los activos on-chain y off-chain admitidos por el negocio. Si la tasa es competitiva, los clientes también necesitan poder solicitar un compromiso con la tasa actualmente ofrecida por el negocio durante un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform hace solicitudes a tu servidor de negocio para obtener tasas de cambio y cotizaciones y las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor de negocio, primero deberás agregar tu servidor de negocio al archivo docker compose. Luego, para admitir solicitudes a tu servidor de negocio desde la Anchor Platform, necesitas habilitar los callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes realizadas a `/callbacks/` para que tu servidor pueda autenticar la Anchor Platform antes de procesar las solicitudes. - -`more_info_url` es una URL opcional proporcionada por tu servidor de negocio para que las aplicaciones de billetera muestren información sobre transacciones previamente iniciadas. Esta URL se utiliza típicamente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información a mostrar sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Consulta la [API KYC][platform-api-kyc] y la [API de tarifas][sep38] para obtener detalles sobre los endpoints que deben ser implementados en tu servidor de negocio. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían ser capaces de descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse algo como lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [Billetera de Demostración Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar Activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "Depositar SEP-6", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 011fd579ad..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas programáticas. - -Al aprovechar el apoyo de la Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia en la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectándose con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya [has instalado][installation-ap] la Anchor Platform y de haber configurado las características necesarias requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -## La experiencia básica del usuario - -La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información KYC y de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiat real con el anchor (como transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar de la cuenta de distribución del anchor - -El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor, o cualquier otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para retirar y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, el cliente puede ingresar su información de transacción y cualquier información KYC adicional que no se haya recopilado ya -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de cualquier método admitido por el anchor (como transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/integration.mdx deleted file mode 100644 index b6beeb8280..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Plataforma sobre eventos relacionados con transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó las cantidades de entrada/salida/tarifa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo peticiones JSON-RPC al endpoint de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para cambiar la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por el método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Por ello, la API se llamará cada vez que un usuario o el anchor realicen una acción que progrese el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de eventos][event-handling]. - -Puedes obtener más información sobre el flujo y estados de la transacción en el [documento del protocolo SEP-6][sep-6]. - -## Callbacks - -La Anchor Platform confía en el servidor del negocio para proveer y almacenar información sobre clientes y cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información del cliente. En su lugar, reenvía todas las solicitudes SEP-12 del cliente al servidor del negocio. El servidor del negocio es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor del negocio debe implementar las [APIs de cliente][customer-callback] para manejar actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para soportar el exchange de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotización se usa para proveer al usuario con la cantidad esperada del activo que recibirá a cambio del activo que envía. La API de cotización también se usa para proveer al usuario con las tarifas esperadas para la transacción. Por lo tanto, tu servidor del negocio debe implementar la [API de tasas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Uso de Clave API - - - -### Uso de JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando Transacción de Depósito (Exchange) Via JSON-RPC - -El diagrama del flujo de depósito SEP-6 define secuencias/reglas para la transición de estados de la transacción y un conjunto de métodos JSON-RPC que se deben llamar para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de exchange de depósito es igual que el flujo de depósito, excepto que las cantidades no necesitarán ser recalculadas al solicitar fondos offchain, si el usuario proporcionó una cotización firme del anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Verificar Información KYC - -Aunque la Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice una transferencia. Al escuchar eventos de transacciones creadas, o mediante la consulta al endpoint [`GET /transactions`][get-transactions], puedes determinar si una transacción requiere que el cliente actualice su información. Los campos SEP-9 requeridos pueden comunicarse al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - -Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método cada vez que el estado SEP-12 para un cliente cambie, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente solicite al usuario actualizar su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar las cantidades finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado como USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y número de cuenta `123456789`. - -La información sobre las cantidades (entrada/salida/tarifa) es requerida si quieres mover la transacción al estado `pending_user_transfer_start`. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. - -::: - -### Fondos Recibidos - -Si se recibieron fondos offchain, deberás proporcionar información actualizada de la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de cantidad son opcionales. Si se omiten, se usarán los valores previos a esta solicitud. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando fondos del usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deberían establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero que aún no se han recibido los fondos. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando fondos onchain - -Luego, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar haya sido enviada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos se enviaron correctamente. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. - -### Enviando pago vía servicio de custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para hacer un pago a través de un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después de procesar exitosamente el pago en un servicio de custodia, la Anchor Platform hará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -La cuenta del usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta haya establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor está esperando que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Esperando Trust - -Este estado debe establecerse si un pago requiere una trustline de activo que el usuario no ha configurado. Hay dos maneras en que la transacción puede pasar al estado `pending_trust`. La primera es procesar un pago a través de un servicio de custodia en caso de que se detecte que la trustline no está configurada. La segunda es cuando el negocio mismo detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago vía servicio de custodia comprueba periódicamente si la trustline fue configurada. Si fue configurada, enviará automáticamente el pago al servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- El flag `success` que define si la trustline fue o no configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, los fondos deben ser devueltos al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales a la `source_account` usando el `refund_memo` y `refund_memo_type` asociados con la transacción si están presentes. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a una red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establece al esperar que Bitcoin u otra red criptográfica externa complete una transacción, o al esperar una transferencia bancaria. - -### Error en la Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha hecho una transferencia, debes hacer una recuperación de transacción, y luego puedes reintentar el procesamiento de la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer expirar las transacciones abandonadas por el usuario después de algún tiempo. Es buena práctica limpiar las transacciones inactivas en el estado `incomplete`. Para hacerlo, realiza la siguiente solicitud JSON-RPC para expirar una transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de la Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando Transacción de Retirada (Exchange) Via JSON-RPC - -El diagrama del flujo de retirada SEP-6 define la secuencia/reglas para la transición de estados de la transacción. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de exchange de retirada es igual que el flujo de retirada, excepto que las cantidades no necesitarán ser recalculadas al solicitar fondos onchain, si el usuario proporcionó una cotización firme del anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que el flujo de retirada ha finalizado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para Recibir Fondos - -De manera similar al depósito, el paso después de recopilar KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar las cantidades finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado como USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. -- `memo` es el memo que el usuario debe usar al enviar sus fondos onchain al anchor. -- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos onchain al anchor. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiros de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar cantidades. - -::: - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio externo está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige el tipo de generador de información de depósito correspondiente. Además, puedes proporcionar `memo` y `memo_type` en la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto ayuda a asociar transacciones Stellar con transacciones SEP. - -Si tu negocio administra los activos, la Anchor Platform puede generar memos por ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente el `memo` y `memo_type` (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta Stellar que se usará para recibir fondos debe configurarse. - -::: - -### Fondos Recibidos - -Si se recibieron fondos onchain, necesitas proporcionar las cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad Actualizada - -Si se recibieron fondos onchain, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos Offchain Disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y si está listo para que el usuario o destinatario los recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, debes hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso Enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. - -### Enviando Reembolso Vía Servicio de Custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` mientras la suma de reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error en la Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error en la Transacción](#transaction-error) del flujo de depósito. - -### Transacción Caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción Caducada](#expired-transaction) del flujo de depósito. - -### Recuperación de la Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de la Transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de Transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[manejo-de-eventos]: ../events/README.mdx -[callbacks-de-cliente]: ../../api-reference/callbacks/README.mdx -[callbacks-de-tasas]: ../../api-reference/callbacks/README.mdx -[obtener-transacciones]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/README.mdx deleted file mode 100644 index b8868bcf2a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Referencia de API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Ver toda la información de la API de Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/README.mdx deleted file mode 100644 index 8680957cba..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Servidor de callbacks -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de callback para tu servidor de negocios. - - - -| | | -| ---------- | ---------------------------------------- | -| OBTENER | [/customer](./get-customer.api.mdx) | -| PONER | [/customer](./put-customer.api.mdx) | -| ELIMINAR | [/customer/:id](./del-customer.api.mdx) | -| PUBLICAR | [/event](./post-event.api.mdx) | -| OBTENER | [/fee](./get-fee.api.mdx) | -| OBTENER | [/rate](./get-rates.api.mdx) | -| OBTENER | [/unique_address](./gen-address.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/gen-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-fee.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/versions.json deleted file mode 100644 index 96c990ca3e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/README.mdx deleted file mode 100644 index 1c0f791e51..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de endpoints para interactuar con servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/versions.json deleted file mode 100644 index dcf08d52c8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/README.mdx deleted file mode 100644 index 4353069eb2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de la Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos de la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 9cdde3b517..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactúa con tu Anchor Platform a través del uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index e42bf84314..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.11.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index 97e596f751..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección enumera los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La Especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| - | -------------------------------------------------------------------------- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 42f491e60f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 901173359a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_reembolso_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_reembolso_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index c91018830f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_montos_actualizados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_montos_actualizados")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index 60abacf5de..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_información_cliente_actualizada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_información_cliente_actualizada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 817a113664..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar flujo interactivo completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar flujo interactivo completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 35ed445bc2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_disponibles", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index b4c7d587bc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index d58e832a93..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 0e9ca84efe..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_línea_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_línea_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index c4cf2791bb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index c80f0df8e1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_cadena_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_cadena_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 78e56bd450..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_enviado")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index ab9c959050..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_de_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_de_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 119e4aece7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_expirada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 430ed01d9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_espera -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_espera", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 000198f5dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 776bbbf618..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_conjunto_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_conjunto_confianza")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 2550832461..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_fuera_de_la_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index ec9dd3ef90..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_en_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index a12e54bf17..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_fiducia -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fiducia")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index cb10c1118c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único endpoint HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es agnóstico al transporte en el sentido de que los conceptos se pueden usar dentro del mismo proceso, a través de sockets, sobre http o en muchos entornos de paso de mensajes diversos. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de miembros intercambiados entre el Cliente y el Servidor que se consideren para emparejamiento de cualquier tipo deben considerarse sensibles a mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 5c8a5bd712..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando y toda la información necesaria proporcionada por una parte externa (como una billetera o un anchor). - -No debe confundirse con las [transacciones](/docs/learn/glossary#transaction) estelares. - - - -| | | -| ------- | -------------------------------------------- | -| OBTENER | [/transactions/:id](get-transaction.api.mdx) | -| OBTENER | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/versions.json deleted file mode 100644 index 2f7060939b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.11.0", - "label": "v2.11.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.11/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8.json deleted file mode 100644 index 4addd3a2a6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2,8", - "description": "The label for version 2.8" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía Administrativa", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Gestionados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "API JSON-RPC", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callbacks", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/README.mdx deleted file mode 100644 index 8cb9a8bda1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Introducción a la Anchor Platform -sidebar_position: 10 ---- - -# Anchor Platform - -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y a las empresas crear sus propios servicios de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, incluida la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar la integración de las empresas con billeteras y exchanges basados en Stellar. - -La plataforma también incluye características para gestionar activos, transacciones y cuentas de usuario, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de creación y gestión de un servicio financiero basado en Stellar, permitiendo a las empresas centrarse en proporcionar valor a sus clientes. - -Aprende sobre la integración con la Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o obtén información de la API en la [Referencia de la API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/README.mdx deleted file mode 100644 index 4361076122..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía de Administración -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre la configuración, ejecución y uso de la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/architecture.mdx deleted file mode 100644 index 26cd21b628..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son necesarios para todas las implementaciones de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes hacen solicitudes al componente servidor SEP de la Anchor Platform utilizando conjuntos de estándares llamados [SEPs][seps] (Propuestas del Ecosistema Stellar). - -#### Servidor SEP - -El servidor SEP es un servidor orientado al cliente y, por lo tanto, debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de exchange para un par de activos o el estado KYC de un cliente, realiza solicitudes [callback][callback-api] sincrónicas al servidor de negocio y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocios - -El servidor de negocios es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocios responde a las solicitudes de callback enviadas por el servidor SEP, tales como solicitudes de cotización, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido en tu cuenta Stellar, y proporciona actualizaciones al servidor de plataforma cuando ocurren eventos fuera de la cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de plataforma es un componente interno. Debería estar alojado en una red privada y no debería ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones utilizando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades de Stellar. Se usa principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales usar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a los clientes registrados y a tu servidor de negocios cuando el estado de las transacciones cambia, eliminando la necesidad de que los clientes y/o tu servidor de negocios consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema de Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para empresas que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el Servidor de Custodia también puede facilitar pagos salientes a las cuentas Stellar del cliente. Si también utilizas el servicio de [eventos], los pagos a tus cuentas activarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una integración con tu proveedor de billetera, entonces este componente no es necesario, aunque tu servidor de negocios tendrá que notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform haya sido enviado a o desde tus cuentas Stellar a través de la [Platform API][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Observador Stellar - -El observer de Stellar, una alternativa al servidor de custodia mencionado arriba, monitorea la cadena de bloques de Stellar utilizando Horizon, detecta automáticamente los pagos de usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [eventos], los pagos a tus cuentas activarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon, o RPC, entonces este componente no es necesario, aunque tu servidor de negocios tendrá que notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform haya sido realizado a una de tus cuentas Stellar a través de la [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[eventos]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 9ef2778821..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Utilizar el Observador de Pagos te permite delegar este paso a la Anchor Platform. Para habilitar el Observador de Pagos, usa el `--stellar-observer` flag en la sección de comandos del [archivo de composición](../../getting-started.mdx#configuration). - -El Observador de Pagos rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando la transacción con el memo esperado se detecte en la red, el estado cambiará automáticamente a `pending_anchor` y se emitirá el evento (si se usa Kafka). - -Para actualizar los estados de la transacción, el observador realiza peticiones JSON-RPC correspondientes a la plataforma. Debería usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Observador de Pagos no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea los pagos, asegúrate de que la lógica del sistema iguale la descripción a continuación: - -Primero, espera a que la transacción se incluya en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción haya sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/error.mdx deleted file mode 100644 index e4cac67229..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :----------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto Request válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Invalid method parameter(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También harás referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se está devolviendo desde la Anchor Platform en una solicitud de inicio de retirada de fondos o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9fbc106fff..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. DEBE ser exactamente "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. La lista de métodos disponibles la puedes ver en [Métodos JSON-RPC][json-rpc-methods] -- params - - objeto - - Un valor estructurado que contiene los valores de parámetro, correspondientes a la llamada al método, que se utilizarán durante la invocación del método -- id - - cadena - - Un identificador establecido por el cliente. El servidor responderá con el mismo valor en el objeto Response - - - -:::tip - -Es posible proporcionar múltiples actualizaciones en una única solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se realiza una actualización de esta manera, todas las actualizaciones se realizarán secuencialmente. - -Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE APLICARÁN y todas las actualizaciones posteriores SE PROCESARÁN y APLICARÁN también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/response.mdx deleted file mode 100644 index c2e81cd119..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un único objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. It's set to "2.0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles actualizados de la transacción -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Id único de la transacción para la cual ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Consulta una lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index e1024f96e3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform alojada en el puerto predeterminado (8085). Los datos de transacción JSON almacenados en el archivo proporcionado se usarán como cuerpo (las solicitudes deben ser un array). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/api_key.mdx deleted file mode 100644 index 711bac254e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación mediante clave de API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitado, todas las solicitudes deben incluir un encabezado válido `X-Api-Key`, establecido en la clave de API configurada. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 67b767e08c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres de longitud por seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/security.mdx deleted file mode 100644 index 074384f585..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -Por defecto, los endpoints de la API de la Plataforma como `GET /transactions` y `GET /transactions/:id` no están protegidos y son accesibles por cualquier persona que tenga acceso al servidor, incluidas las aplicaciones de billeteras. - -::: - -:::info - -Se recomienda mantener el servidor de la Plataforma accesible solo desde la red privada. Sin embargo, es posible que desees añadir una capa adicional de protección mediante la seguridad de la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/README.mdx deleted file mode 100644 index 6bbaf661d5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de Custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Usar un servicio de custodia te permitirá utilizar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 1cdad43902..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si deseas utilizar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas desplegar un servicio más: el Servidor de Custodia. - -Este servicio también necesita el `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. Por defecto, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas desplegar el Observador Stellar, ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si configuras el tipo de autenticación `api_key` o `jwt`, entonces necesitas añadir una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia utilizando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.8.4 --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósito para SEP-24 y SEP-31. Además, necesitas configurar una verificación de línea de confianza, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - el memo y el tipo de memo se generan en el código local, y la cuenta de distribución se utiliza para la dirección de depósito. -- `custody` - el memo y el tipo de memo se generan a través de la Custody API, por ejemplo Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, el memo y el tipo de memo deben ser proporcionados por la empresa en una solicitud PATCH/JSON-RPC. -- `api` - el memo y el tipo de memo se generan a través de la llamada al endpoint GET /unique_address del anchor. - -::: - -## Configuración del Servidor de Referencia de Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia de Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index e179fc9611..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configurar [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index aabed10da3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar usuario API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL del Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de dirección de una sola vez](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del servidor de custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 345d39dce9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones del diagrama de secuencia se encuentran en la carpeta /static/definitions" -[comentario]: # "Para actualizarlos, utiliza https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de conciliación: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retirada SEP-24 con webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retirada SEP-24 con trabajo de conciliación: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de conciliación: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/README.mdx deleted file mode 100644 index 6e098f827a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos de webhook HTTP. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/delivery.mdx deleted file mode 100644 index 7d7e462718..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de entrega -sidebar_position: 30 ---- - -## Garantías de entrega - -Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como el sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del corredor que uses. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden ser entregados fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debe utilizar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor de negocios. - -### Garantías de entrega del cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento a ese cliente. - -### Garantías de entrega del servidor de negocios - -El servicio de eventos intentará entregar cada evento al servidor de negocios hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor de negocios no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento al servidor de negocios. - -:::note - -Las garantías de entrega del servidor de negocios son las mismas que las garantías de entrega del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a clientes que no son accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/getting-started.mdx deleted file mode 100644 index 0ae91762ff..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones HTTP webhook a: - -**Servidores Empresariales** - -- Cambios en el estado de las transacciones -- Actualizaciones de cotización -- Cambios en el estado KYC del cliente - -Los esquemas de eventos para servidores empresariales están definidos en la [referencia de la API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones de Clientes** - -- Cambios en el estado de las transacciones que afectan a sus usuarios -- Cambios en el estado KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para las aplicaciones de clientes están definidos en sus respectivos SEPs:_ - -- [SEP-6 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Eventos de Clientes](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores empresariales y las aplicaciones de clientes consulten continuamente las APIs para obtener actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/integration.mdx deleted file mode 100644 index a2637ab4f6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te guiará a través de la integración con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend. - -Se asume familiaridad con Kafka y no se cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema de Kafka `TRANSACTION`. El servicio de eventos consumirá eventos de este tema y los enviará a los puntos finales apropiados. - -## Configuración - -Primero, el productor de Kafka del servicio de eventos necesita ser configurado utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. El siguiente es el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite configurar un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para obtener más información sobre lo que está disponible. Para obtener más información sobre la configuración del cliente del productor de Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, se debe configurar el procesador de eventos en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto permitirá que el procesador de eventos comience a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. - -## Recibiendo Eventos - -El servicio de eventos se puede usar para enviar eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. El servicio de eventos enviará eventos a estos puntos finales como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como una Aplicación Cliente - -Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios e información de clientes. El esquema de los datos del evento dependerá del tipo de evento que se envíe. - -Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de devolución de llamada a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite configurar puntos finales únicos por tipo de evento. - -Anchor Platform solo enviará eventos a los clientes enumerados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para más información. - -#### Firma de Devolución de Llamada - -Anchor Platform firma las solicitudes de devolución de llamada que envía a las aplicaciones cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de la firma de la URL de devolución de llamada se puede encontrar en las correspondientes especificaciones del protocolo SEP. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como un Servidor de Negocios - -Además de las actualizaciones del estado de las transacciones SEP, los servidores de negocios pueden recibir eventos sobre creación de cotizaciones SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la [documentación de la API de Eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. - -Para recibir eventos como un servidor de negocios, necesitarás exponer una URL de devolución de llamada a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de devolución de llamada del servicio de eventos se puede configurar utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -:::caution - -El `--event-processor` ignorará cualquier segmento de ruta especificado en `callback_api.base_url` y en su lugar enviará eventos a `[scheme]://[host]:[port]/event`. Este es un error, pero para no interrumpir a quienes utilizan el procesador de eventos, pospondremos la corrección de incluir segmentos de ruta en la versión 3 de Anchor Platform. - -::: - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación por clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de devolución de llamada del servicio de eventos que se utilizará para enviar eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del punto final de devolución de llamada del servidor de negocios. -- `secret`: El secreto que se utilizará al enviar eventos al punto final de devolución de llamada del servidor de negocios. Esto se utiliza para firmar el cuerpo de la solicitud cuando la autenticación JWT está habilitada y es la clave API cuando la autenticación por clave API está habilitada. -- `auth`: El método de autenticación a utilizar al enviar eventos al punto final de devolución de llamada del servidor de negocios. Los siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un JSON Web Token (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de caducidad del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[archivo-de-valores-predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración-de-clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/getting-started.mdx deleted file mode 100644 index b7b99c7f74..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es descargar la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.8.4 -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía utilizaremos [docker compose][docker-compose] por simplicidad, pero también puedes ejecutar la Anchor Platform usando otras herramientas que admiten docker, como [minikube] o un clúster de [kubernetes] completo. - -Vamos a crear un archivo de composición mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` le indica a la Anchor Platform que haga disponibles los puntos finales de API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -La opción `--platform-sever` hace que la API de la Plataforma esté disponible, que es la API de backend que tu(s) servicio(s) utilizarán para comunicarse con la Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- utilizando variables de entorno -- utilizando un archivo de configuración YAML - -Uno o una combinación de ambos enfoques se pueden usar. Las variables anidadas en el archivo YAML se expresan usando guiones bajos o puntos (`_`, `.`) cuando se utilizan variables de entorno. Demostraremos ambos enfoques aquí, pero usaremos exclusivamente variables de entorno en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el [archivo de valores predeterminados][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En cambio, los secretos de la aplicación, que todos tienen el prefijo `SECRET_`, deben especificarse en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de composición de docker. - - - -```bash -touch dev.env -``` - - - -Y si estás usando un archivo de configuración YAML, vamos a crear eso también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a agregar una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambiar el Puerto del Servidor de la Plataforma - -Por ejemplo, vamos a cambiar el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simple: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especificar los Activos de Tu Servicio - -Vamos a agregar los activos que tu implementación de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás utilizando la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación SEP-10 Stellar, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía construiremos servicios de anchor para el USDC de Circle en la red de prueba de Stellar. Actualiza los valores anteriores según los activos que emitirás. Asegúrate de especificar el `emisor` de testnet en tu archivo de desarrollo, y crea tu propio `distribution_account` usando una herramienta como [Stellar Lab][stellar-lab]. El `distribution_account` será utilizado por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo debe ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para su uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para su uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL admitida por Flyway es PostgreSQL 14. - -Antes de continuar, vamos a agregar una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Solo se necesita una base de datos si se utiliza la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora actualizaremos nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás usando configuración YAML en su lugar, las variables de entorno `POSTGRES_` siempre deben estar en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Debemos crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que hagamos un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los registros informando una conexión exitosa a la base de datos postgres. - -### Configurar la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará obtener y actualizar registros de transacciones de la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace que las API SEP públicas estén disponibles, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciada por la opción `--platform-server`. El negocio debe hacer que el servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible agregar autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al hacer solicitudes a la API de la Plataforma, agrega un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` utiliza `platform` en lugar de `localhost` como el host porque estarás haciendo solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de pruebas o producción, asegúrate de actualizar las URL de tu servicio. - -### Pasar flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable ambiental `JVM_FLAGS` en el valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar una variable de entorno desde tu máquina al contenedor, deberías usar la opción de composición `environment` para establecer variables en su lugar. Aquí hay un ejemplo de cómo usar un almacén de claves desde tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación del almacén de claves local y `KEYSTORE_PASSWORD` es la contraseña del almacén de claves local. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/overview.mdx deleted file mode 100644 index 9dd24acd26..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -La Anchor Platform es la forma más fácil y rápida de implementar [servicios de anchor](/docs/learn/fundamentals/anchors) compatibles con [Propuestas del Ecosistema Stellar (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad y los requerimientos específicos de Stellar para operar un anchor, permitiendo a las empresas centrarse en la lógica de negocio central necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto implementando las APIs estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones que consumen, mientras ofrece un conjunto de APIs backend para que las empresas proporcionen información específica para ellas, como tarifas de transacción, tasas de cambio y estados de transacciones fuera de la cadena. - -A continuación, se presenta una lista de SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Archivo de Información Stellar][sep1-ap] -- [SEP-6][sep-6]: [Depósito y Retirada Programáticos][sep6-ap] -- [SEP-10][sep-10]: [Autenticación Stellar][sep10-ap] -- [SEP-12][sep-12]: API KYC -- [SEP-24][sep-24]: [Depósito y Retirada Alojados][sep24-ap] -- [SEP-31][sep-31]: [API de Pagos Transnacionales][sep31-ap] -- [SEP-38][sep-38]: API RFQ de Anchor - -La documentación para la Anchor Platform está en progreso. Los desarrolladores son bienvenidos a sumergirse en el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si buscas crear un servicio de entrada y salida compatible con SEP-24, consulta nuestra [guía para comenzar][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep1/README.mdx deleted file mode 100644 index c65d4b714c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de Información Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos aplicaciones para aprender más sobre tu servicio alojando un archivo `stellar.toml` en una ruta URL estandarizada. Este archivo permite a las aplicaciones encontrar información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas URL raíz para estos servicios. Podemos alojar este archivo utilizando la Anchor Platform. - -Creamos un archivo llamado `dev.stellar.toml` usando el contenido a continuación como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que utilice la frase de contraseña de la red pública, las URLs de servicio de producción, tus cuentas de distribución de Mainnet y la clave de firma, así como las cuentas de emisión de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto indicará a la Anchor Platform que debe alojar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser alojado utilizando un servidor de archivos estáticos adecuado como [nginx]. Siempre que tu archivo de información incluya las URLs apropiadas que apuntan a la Anchor Platform, esto funcionará perfectamente. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep10/README.mdx deleted file mode 100644 index 482d7b51c3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar la Autenticación Stellar - -Las aplicaciones de billetera basadas en Stellar crean sesiones autenticadas con anclas Stellar al demostrar que ellos o sus usuarios tienen suficiente control sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el anchor en solicitudes posteriores a los servicios estandarizados del anchor. - -La Anchor Platform admite esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás hospedando el archivo toml a través de la plataforma, (`SEP1_ENABLED` está configurado como `true`), el archivo toml será hospedado en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre que estés en posesión de la `SIGNING_KEY`. Las billeteras verificarán esta firma antes de firmar y enviar de vuelta el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de cifrado que se utilizará para firmar y verificar los tokens de autenticación que emites a las aplicaciones de billetera después de que ellas o sus usuarios hayan demostrado control sobre su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique con tus servicios. Si deseas permitir que solo los usuarios de una aplicación de billetera en particular se autentiquen, o quieres deshabilitar a usuarios específicos de autenticarse, utiliza las siguientes variables de entorno. Esta es una característica opcional y solo debe ser añadida si es un requisito del negocio. - -::: - -## Configurar con Atribución del Cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTES` es la lista de servidores de billeteras externas o clientes con los que el servidor Anchor puede comunicarse de manera segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTES` es la lista de servidores de billeteras externas o clientes para que el servidor Anchor se comunique de manera segura. - -## Modificar un Archivo de Información de Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 es admitida por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/README.mdx deleted file mode 100644 index bec7979b25..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y Retiros Hospedados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio por el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con un on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/configuration.mdx deleted file mode 100644 index 8c8d928ad4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -A continuación, modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 es admitida por tu negocio y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue de producción que use la frase de paso de la red pública, las URL de tu servicio en producción, tus cuentas de distribución Mainnet y la clave de firma, así como las cuentas emisoras Mainnet de los activos que utiliza tu servicio. - -## Habilitar depósitos y retiradas alojados - -Ahora estás listo para habilitar depósitos y retiradas alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml` y cambia los valores dependiendo de tus preferencias. Este archivo de activos de ejemplo habilitará el soporte para el USDC de Circle y un USD fiat. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -La información proporcionada para el valor `assets` se mapea de cerca con la información que se expondrá a la aplicación de billetera usando el endpoint SEP-24 [`GET /info`][sep24-get-info]. La Anchor Platform también usa esta información para validar las solicitudes realizadas a tu servicio. - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, pasando el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que tu negocio implementa. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando quieran mostrar información sobre una transacción iniciada anteriormente. Esta URL es más utilizada por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de cifrado que la Anchor Platform utilizará para generar tokens de corta duración que añadirá a las URL proporcionadas a la billetera. Tu servidor de negocio también debe tener estas claves en su entorno para que pueda verificar la firma del token. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían ser capaces de descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían parecerse a esto. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse así. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, ve a la [billetera de demostración Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la Anchor Platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Inicia una transacción haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "SEP-24 Depósito", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, recibirás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/example.mdx deleted file mode 100644 index c24de16bbe..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrar con la Anchor Platform implica tres áreas clave: - -- Crear una experiencia de usuario basada en la web que pueda abrirse en una vista web móvil -- Proporcionar actualizaciones del estado de las transacciones a la Anchor Platform -- Recuperar actualizaciones del estado de las transacciones de la Anchor Platform - -## Crear una experiencia de usuario basada en la web - -La Anchor Platform no ofrece una interfaz de usuario de marca blanca que tu negocio pueda utilizar, y en cambio espera que el negocio construya su propia interfaz de usuario y sistema backend. No construiremos una experiencia completa de usuario en & fuera de la plataforma en esta guía, pero cubriremos las maneras en que tu producto existente debe actualizarse para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto existente en & fuera de la plataforma, probablemente ya tienes un sistema existente para la autenticación de usuarios. Sin embargo, dado que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es realmente innecesario. De esta manera, se puede pensar en la Anchor Platform como una forma alternativa de autenticación. - -El negocio es libre de continuar requiriendo que los usuarios se autentiquen usando su sistema existente, pero la experiencia de usuario ideal omitiría este paso y crearía una sesión autenticada para el usuario si ya se ha autenticado utilizando su cuenta Stellar. - -La Anchor Platform añade un parámetro de consulta de JWT `token` a la URL del negocio dado a la aplicación de billetera. Este token está firmado por el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` configurado previamente, e incluye la información que necesitas para identificar al usuario. El proceso debería verse algo así: - -1. Pasa el `token` añadido a la URL de tu sistema backend -2. Verifica la firma del `token` y comprueba su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -El contenido decodificado del `token` se verá algo así: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Ten en cuenta que el valor `sub` identifica al usuario utilizando una cuenta Stellar y un número entero. Este será el valor cuando las aplicaciones de custodia que utilizan una cuenta omnibus se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentiquen, el token puede verse ligeramente diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticarse. - -En ambos casos, toda la información en el objeto `data` es opcional, y solo estará presente si la billetera proporciona esa información. - -Vamos a añadir un servidor backend a nuestro archivo de composición que se utilizará para verificar el token y crear sesiones web autenticadas para los usuarios que inician transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Vamos a crear un contenedor Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora vamos a crear una aplicación NodeJS mínima. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend autenticando a un usuario utilizando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de la plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionar actualizaciones a la plataforma - -Vamos a crear un endpoint para nuestro servidor de negocios que acepte la información recopilada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá que las aplicaciones de billetera recuperen esta información actualizada para que puedan transmitirla al usuario. Deberías haber informado ya al usuario sobre las cantidades de la transacción y que tu negocio está esperando que llegue el pago on-chain, pero proporcionar estas actualizaciones permite a los usuarios visualizar el estado de sus transacciones a través de su aplicación móvil sin tener que abrir de nuevo la interfaz de usuario del negocio. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando cambian los estados de las transacciones, sin embargo, está en nuestra hoja de ruta añadir estas notificaciones o "solicitudes de devolución de llamada" para que las aplicaciones de billetera no tengan que sondear la Anchor Platform en busca de actualizaciones. - -::: - -## Recuperar actualizaciones de la plataforma - -Si solo utilizas la Anchor Platform para exponer las API SEP a las aplicaciones de billetera, entonces no tendrás una razón fuerte para recuperar actualizaciones del estado de las transacciones de la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que hagas solicitudes `JSON-RPC API`. - -Sin embargo, si utilizas la Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados a las transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando se reciban los pagos. - -Hay dos formas de obtener actualizaciones de la Anchor Platform, - -- Sondear el endpoint `GET /transactions/:id` de la API de la plataforma para las transacciones que esperas un pago -- Transmitir eventos de cambio de estado de transacciones desde un clúster de Kafka - -Mientras que transmitir cambios en el estado de las transacciones desde un clúster de Kafka puede ser un enfoque más robusto y escalable, usaremos el método de sondeo en esta guía. Configurar y usar un clúster de Kafka será el tema de una sección diferente de la documentación. - -Primero, configuremos la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.8.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` en busca de pagos de retirada. - -Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará la transacción asociada con ese memo como recibida y actualizará el estado de la transacción a `pending_anchor`. Esto lo hace haciendo una solicitud `JSON-RPC API`, así que necesitamos configurar la URL que debe usar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Vamos a hacer algunas adiciones al archivo `server.js` para que podamos sondear la Anchor Platform en busca de nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación de ejemplo completa - -Stellar proporciona una implementación de ejemplo de servidor de negocios para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación de backend, utilizada para obtener y enviar actualizaciones desde/hacia la Anchor Platform. - -El código para la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código para el backend es parte de la Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://laboratory.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/faq.mdx deleted file mode 100644 index 837906b661..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas Frecuentes -sidebar_position: 50 ---- - -### ¿Cómo usar JWTs? - -Como parte del flujo, una vez que un usuario hace una solicitud, es decir, una solicitud de retirada de fondos/deposito interactiva, será procesada por la Anchor Platform y remitida a tu servicio. La Anchor Platform hará una llamada `GET` a `?token=`. La Anchor Platform hará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. `sub` es la cuenta asociada con esta transacción. Puede ser usada para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que será usada para recibir/enviar fondos. Puede ser usada para identificar la cuenta del usuario. -2. Nota que este valor puede ser diferente de la cuenta que será usada para recibir/enviar fondos. `jti` es el hash de la transacción. `data` es la carga útil adicional que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. -3. `jti` es el hash de la transacción. -4. `data` es la carga adicional que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. Si lo proporciona el cliente, también contendrá el `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificada durante la autenticación SEP-10 y el `client_name` (definido como 'name' en la configuración de [clients] si se proporciona), y la preferencia de `lang` (idioma) del usuario. - -### ¿Cómo proporcionar tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de exchange en la vista web/iFrame de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` para permitir que las empresas establezcan tarifas estáticas para sus transacciones. Sin embargo, actualmente no es admitido por el Anchor Platform. Sin embargo, actualmente no está admitido por la Anchor Platform. - -:::note - -/fee endpoint será desaprobado en el futuro. - -::: - -### Cómo identificar la cuenta del usuario? - -Deberías usar el campo `sub` del token JWT. Para billeteras custodiales, este valor estará en el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí, que será igual a la cuenta del usuario. Cómo identificar la billetera? Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, permitiendo la identificación de la billetera. - -### [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración de [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, lo que permitirá la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clientes]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index 1e4975a213..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el soporte de la Anchor Platform para SEP-24, las empresas hacen que su servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar como billeteras y exchanges, extendiendo su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias, requeridas por SEP-24: [SEP-1 (Archivo de Información de Stellar)][sep1-ap] y [SEP-10 (Autenticación de Stellar)][sep10-ap] - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente en un depósito y retirada es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también pueden elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su KYC y la información de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede luego usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor o otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para retirar y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, la billetera abre la URL interactiva dada y permite al cliente ingresar su información de transacción (KYC ya ha sido recolectado) -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe la retirada de fondos mediante transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/integration.mdx deleted file mode 100644 index 4ead612fb6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. - -En general, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se hace realizando solicitudes JSON-RPC al endpoint de la API de la platform. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario realizar una solicitud JSON-RPC correspondiente y pasar los datos que requiere este método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, se llamará a la API cada vez que un usuario o el ancla realice cualquier acción que progrese el estado de la transacción en el flujo. - -La comunicación de la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una característica opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes obtener más información sobre el flujo de la transacción y los estados en el [documento del protocolo SEP-24][sep-24] - -## Callbacks - -La Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre cotizaciones. - -### Cotizaciones y Honorarios - -Para admitir el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotizaciones se utiliza para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor del negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Usando Clave de API - - - -### Usando JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando la Transacción de Depósito a través de JSON-RPC - -El diagrama del flujo de depósito SEP-24 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Listo para Recibir Fondos - -El primer paso del flujo de depósito después de iniciar el depósito en sí es recolectar KYC. Generalmente se realiza en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación de billetera, utilizando [SEP-9]. Una vez que se haya recolectado el KYC necesario, se debe realizar una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario tiene que enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es la cantidad total de tarifas recaudadas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema utilizando USD. - -La información sobre las cantidades (en/salida/tarifa) es requerida si deseas mover la transacción del estado `incompleto` al estado `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de las cantidades. - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso KYC es largo (por ejemplo, verificación de ID), se recomienda primero establecer el estado de la transacción en `pending_anchor` utilizando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC está siendo procesado. - -::: - -### Procesando la Información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo y pasar al [siguiente paso](#funds-received). - -Utilizar este estado se recomienda cuando la verificación KYC puede necesitar realizarse de manera asincrónica. - -::: - -Debes especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos Recibidos - -Si se recibieron fondos offchain, querrás proporcionar información de transacción actualizada. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recibir fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de cantidad son opcionales. Si se omiten, los valores de las solicitudes JSON-RPC anteriores serán tomados. - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de la transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que la confirmación de la transferencia ha sido recibida, pero los fondos en sí aún no han sido recibidos. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción en la red Stellar para cumplir con una solicitud de usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar a un usuario que los fondos fueron enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se trasladará al estado `completed`. - -### Enviando Pago a Través del Servicio de Custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como Fireblocks. Para realizar un pago a través del servicio de custodia, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en el servicio de custodia, la Anchor Platform realizará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pending_trust` para indicar que el ancla está esperando a que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una trustline de activos que no ha sido configurada por el usuario. Hay dos formas en que la transacción puede trasladarse al estado `pending_trust`. La primera es el procesamiento de un pago a través del servicio de custodia en caso de que haya detectado que la trustline no está configurada. La segunda es cuando el negocio en sí detecta que falta la trustline y quiere notificar al usuario que debe configurarse. Para mover la transacción al estado `pending_trust`, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si se configuró la trustline. Si lo fue, enviará automáticamente un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Conjunto de Confianza - -Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la trustline fue o no configurada por el usuario - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del `success` flag, el estado de la transacción cambiará a `pending_stellar` si se configuró la trustline, o a `pending_anchor` si no se configuró. - -::: - -### Enviando Reembolso a Través del Servicio de Custodia - -Hay una posibilidad de enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Es similar a [Reembolso enviado](#refund-sent), pero maneja un caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá al esperar que Bitcoin u otra red de criptomonedas externas complete una transacción, o cuando se espera una transferencia bancaria. - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción, y luego puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Expirada - -Tu negocio puede querer expirar transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar transacciones inactivas en el estado `incompleto`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede utilizarse después de que el usuario haya realizado una transferencia. - -::: - -### Transacción en Espera - -En raras ocasiones, puede que desees pausar la transacción actual y solicitar más información del usuario (después de que se haya recibido la transferencia). Esto podría ser utilizado para casos de cumplimiento. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando transacción de retirada de fondos a través de JSON-RPC - -Este diagrama define una secuencia/reglas de la transición de estado de la transacción para el flujo de retirada SEP-24. - -[![flujo de retirada sep24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que el flujo de depósito ha terminado, implementar la retirada de fondos es sencillo. Algunas partes del flujo son similares y se pueden reutilizar. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, dado que tu servicio recibirá transacciones a través de la red Stellar, la actualización se verá diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Valor del memo para adjuntar a la transacción -- `memo_type` Tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account` Cuenta de destino - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Configurar `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un correspondiente `deposit_info_generator_type`. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se mostró arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar transacciones Stellar con transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambie a `pending_user_transfer_start`, la Anchor Platform configura `memo` y `memo_type` automáticamente (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta de Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Procesando información KYC - -Este paso es opcional, y es similar a [Procesando información KYC](#processing-kyc-information) del flujo de depósito. - -### Fondos recibidos - -Si se recibieron fondos on-chain, necesitas proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Monto actualizado - -Si se recibieron fondos on-chain, pero por alguna razón el `amount_in` difiere de lo especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Sólo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos enviados off-chain - -Para completar la transacción y cambiar su estado a `completed`, necesitas realizar la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos off-chain disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos off-chain y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos pending off-chain - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviando reembolso a través del servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción se mantendrá en estado `pending_anchor` hasta que la suma de los reembolsos sea menor que `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Error de transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Transacción en espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Transacción en espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Rastreo de transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index ad1c5f09c3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un Servidor de Producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté en vivo y hayas probado tanto los flujos de depósito como de retirada, es hora de comenzar con la implementación real conectada a KYC real y a proveedores de banking rails reales. Antes de usar cualquier API bancaria, es crítico que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Implementar un Entorno Seguro - -Asegúrate de mantener el servidor de prueba activo y de implementar el sistema de producción (mainnet) en un entorno separado. Tener dos implementaciones te permite validar nuevas características en el testnet antes de moverlas a la implementación final de producción. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en esta base de código y/o habrá muchos push que se deben probar internamente antes de compartir con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, solo tienes que cambiar la [frase de contraseña](/docs/networks#network-passphrases) de la red (para autenticar solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia la configuración de Anchor Platform en el archivo `production.env`: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectar a KYC Real - -La mayoría de los anchors necesitan recopilar información de [Conozca a su Cliente](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con las regulaciones locales antes de honrar los depósitos y retiros. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejes KYC depende de ti: hay muchos servicios que ofrecen soluciones KYC a través de APIs e iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar los requisitos. Cada jurisdicción tiene requisitos KYC específicos, y difieren de una jurisdicción a otra, por lo que es mejor encontrar un proveedor KYC específico del país que satisfaga tus necesidades. - -Algunos países requieren diferentes campos KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios KYC según la cantidad de depósito o retiro, simplemente agrega un campo de cantidad antes del formulario KYC, y asegúrate de que los campos KYC se actualicen según ese valor. - -La información KYC debería estar vinculada a la sesión creada a través de [Stellar Web Authentication](../sep10/README.mdx) y, por consiguiente, al usuario, así que solo necesitas pedirle al usuario una vez. Después de que se complete el primer flujo de KYC, un usuario no debería tener que ingresar la información nuevamente. - -Asegúrate de que los mensajes de error y validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión KYC. También deberías localizar los mensajes basándote en el idioma y la ubicación del usuario. - -## Rellenar Previamente el Formulario KYC - -Rellenar previamente el formulario KYC es una excelente manera de reducir la fricción al comenzar a usar un ancla, y las billeteras generalmente proporcionan un conjunto de campos que son comúnmente utilizados en todo el ecosistema. En resumen, el ancla puede renderizar el formulario KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, deberías habilitar que los campos pre-rellenados sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera, y podría querer editarlo antes de finalizar el proceso KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [JWT Interactivo](./faq.mdx#how-to-use-jwts), enviado por Anchor Platform - -## Conectar a Rails Bancarios Reales - -Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) y para completar las retiradas de los usuarios (generalmente a través de transferencias bancarias). Si eres un ancla que honra depósitos y retiradas de un token que otra organización emite, seguirás un proceso similar. - -Para recuperar (e identificar) una transferencia de usuario, los emisores generalmente toman uno de dos enfoques: - -- Polling de API: esta opción consiste en recuperar la API del banco, a través de un trabajo programado, para verificar el estado actualizado de la lista de transferencias recibidas por (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que está relacionada con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todos los rails bancarios admiten esta opción, pero es la más ligera en términos de lógica de backend. En este enfoque, el banco activa de manera proactiva un endpoint del emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -Hay muchas formas de identificar que una transferencia bancaria específica se relaciona con un depósito específico (y, en consecuencia, con un usuario). Al algunos bancos (y países) tienen una infraestructura de transferencia que permite la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualarlo con la información proporcionada en el formulario KYC. - -Asegúrate de realizar una auditoría completa de seguridad en tus sistemas cuando las conexiones de rails bancarios estén en su lugar. Algunos bancos proporcionan una API de prueba que se puede usar para desarrollo y despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para mejorar la seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar los retiros. En términos de UX, esta aprobación manual es aceptable siempre y cuando los tiempos de espera estén alineados con las expectativas del usuario, lo que generalmente significa que no son más largos que un par de horas. - -## Probar Casos Límite - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos límite para asegurarte de que el sistema se comporte como se espera. Aquí tienes una lista de sugerencias de prueba que deberían cubrir una gran cantidad de los casos límite de la aplicación: - -### Pruebas Generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz usando información de locale diferente y verifica el contenido traducido, incluidos mensajes de error, respuestas, formato de fechas y formato de números - -### Pruebas KYC - -- Verifica que KYC aparezca con un nuevo wallet SK -- Verifica que KYC no acepte entradas con formato incorrecto, y que los mensajes de error sean comprensibles -- Verifica que puedas usar la misma información KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) múltiples veces -- Verifica que puedas pasar por KYC múltiples veces con el mismo Stellar SK. - -### Prueba Interactiva - -- Verifica que el flujo de depósito funcione y que los rails bancarios estén operativos -- Verifica que no puedas hacer una retirada con un valor superior al saldo actual -- Verifica que el flujo de retirada se complete y que los rails bancarios estén operativos - -### Pruebas de Seguridad - -- Asegúrate de que los endpoints de la plataforma estén asegurados - -## Pulido e Internacionalización - -Admitir dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan por las pantallas, y apoya a instituciones internacionales (como billeteras) que necesitan probar el producto antes de iniciar nuevas integraciones. - -Puedes admitir múltiples idiomas en tu webapp utilizando el parámetro `Accept-Language` de los encabezados de solicitud http para localizar el contenido y permitir que los usuarios cambien eso de una manera simple (por ejemplo, un ícono de bandera en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al comienzo de los procesos de depósito y retirada. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de verificar el formato de números, fechas, etc. - -Tener un grupo de testers beta es una excelente manera de verificar si hay casos límite que necesitan pulirse y de confirmar que el sistema funciona bien con una variedad de entradas de usuario. Puedes hacer pruebas beta usando una etapa de lanzamiento suave antes de comenzar a poner esfuerzo en marketing y distribución. Documentar el proceso de prueba con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y brinda a nuevos socios y usuarios potenciales claridad y confianza en el producto. - -## Conectar a Billeteras - -Todas las interacciones de usuarios de Anchor se realizan a través de una billetera, por lo que es vital que los anchors estén conectados a billeteras que tengan una buena penetración de mercado en la región en la que el negocio está más enfocado. Conectar a billeteras es un proceso simple, ya que ambos extremos de esa integración ya son conformes con los SEPs. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente admiten SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta de emisor es una excelente manera de comenzar a obtener usuarios reales para el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/README.mdx deleted file mode 100644 index f59a1652fa..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos transnacionales -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual billeteras y/o exchanges interactúan con el conjunto existente de servicios de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/configuration.mdx deleted file mode 100644 index 6d33eab8a6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue de producción que utilice la frase de passphrase de la red pública, las URL de servicio de producción, tus cuentas de distribución de mainnet y clave de firma, así como las cuentas de emisión de mainnet de los activos que utiliza tu servicio. - -## Habilitar pagos transnacionales - -Ahora estás listo para habilitar los pagos transnacionales en la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -La información proporcionada en los objetos `sep31` y `send` se mapea estrechamente a la información que se expondrá a la aplicación de billetera usando el endpoint SEP-31 [`GET /info`][sep31-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y se eliminará en una futura versión, pero puedes ajustar los valores de `send.min_amount` y `send.max_amount` de acuerdo a los límites de tu servicio. - -Los `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones remitentes pueden y están obligadas a solicitar una tasa de FX usando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de proceder. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los remitentes ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté en vivo. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API KYC del cliente - -Las empresas necesitan recopilar y validar información KYC sobre los clientes para los cuales están facilitando transacciones. Los clientes determinan qué información KYC necesita ser recopilada y envían esa información a través de una API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En su lugar, reenvía las solicitudes de los clientes al servidor de negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Consulta la [especificación de API KYC de Anchor Platform][platform-api-kyc] para detalles sobre los endpoints que deben ser implementados en el servidor de tu negocio. - -Para hacer que esta API esté disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Habilitémoslo en nuestro entorno también. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, tenemos que definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transnacionales en dos jurisdicciones regulatorias distintas, por lo que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y estarían representados utilizando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente excluyentes, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación existe porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como una que envíe una gran cantidad. Solo puede validar que un cliente esté aprobado para uno de los tipos de cliente definidos. Esta limitación se eliminará en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente remitente y un tipo de cliente receptor. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Hagamos ping al endpoint de información nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Las empresas necesitan proporcionar a sus contrapartes de envío una API de [Tasa][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo on-chain que se usa para liquidar y el activo fiat que se usa para pagar al receptor. Si la tasa es competitiva, los remitentes también necesitan poder solicitar un compromiso con la tasa que se ofrece actualmente por el negocio durante un corto período de tiempo. - -La Anchor Platform proporciona la [API SEP-38 RFQ][sep38] a los remitentes para este propósito. - -Para hacer que esta API esté disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Habilitémoslo en nuestro entorno también. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar el USDC para ser utilizado en esta API, así como agregar un activo off-chain con el que se puede intercambiar. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté en vivo! Después de `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar la autenticación de la API de Callback - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Agreguemos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como el host porque la Anchor Platform estará haciendo solicitudes a tu servidor de negocio desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de prueba o producción, asegúrate de actualizar tus URL de servicio. - -Definiremos el servidor que implemente los endpoints definidos en la API de Callback en la siguiente sección. - -:::caution - -Ten en cuenta que desde la versión 2.x los segmentos de path no son admitidos en `CALLBACK_API_BASE_URL` (como `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 1a110fb6d1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de recepción de pagos transnacionales compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transnacionales. - -Al aprovechar el soporte de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios de envío de Stellar. - -:::info - -A medida que mejoramos la documentación, las partes de esta guía que son relevantes para otros casos de uso pueden trasladarse a sus propias secciones. - -::: - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las funcionalidades necesarias requeridas por SEP-31: [SEP-1 (Archivo de Información Stellar)][sep1-ap] y [SEP-10 (Autenticación Stellar)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/integration.mdx deleted file mode 100644 index c6193985a1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,693 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrar con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recopilar los datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de cambio entre los activos on-chain y off-chain admitidos -- `GET /transactions` solicitudes para obtener actualizaciones sobre el estado de las transacciones de la Anchor Platform (documentación próximamente) -- [`JSON-RPC`][json-rpc-methods] solicitudes para actualizar el estado de las transacciones de la Anchor Platform - -Lo siguiente también puede ser requerido dependiendo de tu caso de uso: - -- [`GET /fee`][get-fee] si tu negocio quiere proporcionar a los remitentes la opción de omitir el paso de creación de la cotización -- [`GET /unique_address`][get-unique-address] si tu negocio utiliza un servicio de custodia para activos on-chain -- [`DELETE /customer`][delete-customer] si tu negocio quiere o está obligado a permitir que los remitentes soliciten la eliminación de datos de clientes - -## Crear un Servidor Empresarial - -Primero, vamos a crear un servidor empresarial y agregarlo a nuestro archivo docker compose. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.8.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.8.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web sencillo usando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar con éxito todos los tres servicios. - -Esta guía no proporciona una implementación de ejemplo de los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia API de Anchor Platform][ap-api], y las secciones a continuación expandirán sobre conceptos importantes para entender al implementar los puntos finales. - -## Puntos finales de Callback del Cliente - -La Anchor Platform nunca almacena la información PII de tus clientes, y en cambio actúa como un servidor proxy entre las aplicaciones de cliente y tu negocio, reenviando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación API KYC SEP-12][sep12]. - -### Identificando Clientes - -Los clientes pueden ser identificados usando dos enfoques. - -El primer enfoque usa una cuenta Stellar y un memo. Al usar la Anchor Platform para facilitar pagos transnacionales, la organización remitente usa su propia cuenta Stellar, la que se usó para autenticarse a través de [Autenticación Stellar SEP-10][ap-sep10], al registrar clientes con tu negocio. Los memos se utilizan para distinguir a clientes únicos que provienen de la misma organización remitente. - -El segundo enfoque utiliza identificadores de cliente generados por tu servicio. Por ejemplo, si una organización remitente está registrando un cliente, tu negocio recibirá un request `PUT /customer` como el siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos son generalmente enteros de 64 bits, pero también pueden ser otros tipos de datos, por lo que deben ser guardados como cadenas. En respuesta, tu negocio deberá devolver un identificador de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor empresarial puede usar cualquier identificador para los clientes siempre que sea una cadena. - -Tras el registro de un cliente, la organización remitente puede usar cualquiera de los enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir un request `GET /customer` como el siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización remitente podría usar el identificador que devolviste cuando originalmente registraron al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio necesitará mantener un mapeo entre la cuenta y el memo usados para registrar originalmente al cliente y el ID que devuelves en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, puede que mantengamos este mapeo para tu negocio para que solo tengas que trabajar con los ID que generas. - -### Tipos de Clientes - -Tu negocio probablemente requiera diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes deberán entender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, deberías usar el tipo pasado para evaluar si el remitente ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, deberías usar el tipo para determinar el estado del cliente. - -### Prueba con la Billetera Demo - -Puedes probar tu implementación con la [Billetera Demo Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar Activo" y introduce el código del activo y el dominio principal de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar línea de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver la billetera demo encontrar tus URLs de servicio, autenticarse y verificar qué campos KYC necesita recopilar. Luego debería presentarte un formulario para que ingreses los detalles KYC para el remitente y el receptor. - -[![billetera demo después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, se enviará esa información a la Anchor Platform, que la enviará a tu servidor empresarial. Una vez que la billetera demo tenga los IDs de los clientes que generaste, iniciará una transacción que debería fallar. - -## Punto final de Callback de Tarifas - -Una vez que la organización remitente ha registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa de cambio, de tu negocio. La Anchor Platform solicita esta información a tu servidor empresarial usando el [`GET /rate` endpoint][get-rate]. - -### Cotizaciones Firmes vs. Indicativas - -Las solicitudes de cotizaciones tendrán un parámetro `type` que es [`indicativa`][indicative] o [`firme`][firm]. Si `type=firme`, tu respuesta debe incluir el campo `id` y la fecha-hora de `expires_at` y reservar la liquidez necesaria para cumplir esta cotización hasta que esta expire. Si `type=indicativa`, no devuelvas los campos `id` o `expires_at` porque la tasa proporcionada no se usará en una transacción. - -Ten en cuenta que el cliente puede solicitar que la cotización expire después de una fecha-hora específica usando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor de `expires_at` que esté antes o en la fecha-hora solicitada o rechazar la solicitud con una respuesta 400 Bad Request, que será reenviada al cliente. - -### Métodos de Entrega - -Es común que las tarifas y comisiones de los negocios difieran dependiendo de los rails de pago utilizados para enviar fondos al destinatario. Puedes usar este parámetro para adherirte a los términos comerciales acordados con esa organización emisora, como ofrecer tarifas con descuento. Debido a que este punto final actualmente solo se usa para pagar remesas en activos off-chain, se utilizará `buy_delivery_method`. Actualmente, `client_id` será siempre la clave pública Stellar que la organización emisora usó para autenticar con la Anchor Platform. - -### Métodos de entrega - -Es común que las tarifas y comisiones de las empresas varíen según los métodos de pago utilizados para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán el método de pago que desean que tu empresa utilice para solicitudes de cotización firme. - -Debido a que este endpoint se utiliza actualmente solo para pagar remesas en activos off-chain, se utilizará el `buy_delivery_method`. Si este endpoint se utiliza alguna vez en otros flujos de transacciones, como depósitos SEP-24, también se puede pasar `sell_delivery_method` para empresas que admiten estos tipos de transacciones. - -## Obteniendo Actualizaciones del Estado de las Transacciones - -Para facilitar pagos transnacionales, necesitarás poder detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar qué transacción se pretendía cumplir con ese pago. - -La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacción correspondiente con información sobre el pago. Tu negocio puede luego detectar estas actualizaciones consultando el punto final de la API `GET /transactions` de la plataforma. - -### Ejecutando el Stellar Observer - -El Stellar Observer monitorea el ledger Stellar para pagos realizados a tu(s) cuenta(s) y actualiza los registros de transacción correspondientes con información de pago on-chain. Para ejecutar el observer, agrega lo siguiente a tu archivo docker compose. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.8.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Consultando Pagos Recibidos - -El Stellar Observer realiza solicitudes JSON-RPC a la API de la plataforma cada vez que detecta pagos recibidos para transacciones iniciadas por organizaciones remitentes, actualizando así la fecha-hora `transfer_received_at` de la transacción. - -Tu negocio debe consultar periódicamente el punto final de la API `GET /transactions` de la plataforma para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pagos transnacionales iniciadas por organizaciones remitentes. Esta lista se ordenará según el momento en que se recibió un pago para esa transacción. Para cada transacción devuelta, tu negocio debe verificar si ya ha detectado el pago para esa transacción. Si es así, has detectado todos los pagos realizados a tu(s) cuenta(s). - -## Actualizando Transacciones a Través de JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de la transición de estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![fluxo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en estado de error o ha caducado. - -::: - -Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para Recibir Fondos - -Las transacciones SEP-31 deberían estar inicialmente en estado `pending_sender`. El Anchor Receptor espera recibir el pago identificado por el stellar_memo incluido en la respuesta POST /transactions. - -Una vez que tu negocio detecta que ha recibido un pago on-chain para una transacción específica, debe actualizar el estado de la transacción. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción cambiará a `pending_receiver`. - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Información del Cliente Necesaria - -En algunos casos, el Anchor Receptor podría necesitar solicitar información actualizada del Anchor Remitente. Por ejemplo, el banco le dice al Anchor Receptor que el nombre del Cliente Receptor proporcionado es incorrecto o le falta una inicial del segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debe entrar en estado `pending_customer_info_update` hasta que el Anchor Remitente realice otra solicitud `PUT /customer` de SEP-12 para actualizar. El Anchor Remitente puede verificar qué campos necesitan actualizarse realizando una solicitud `GET /customer` de SEP-12 incluyendo el id o los parámetros de cuenta y memo. El Anchor Receptor debería responder con un estado `NEEDS_INFO` y `last_name` incluido en los campos descritos. - - - -```json -// pending-customer-info-update.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "pending_customer_info_update", - "params": { - "transaction_id": "", - "message": "Customer info needed" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh pending-customer-info-update.json -``` - - - -### Información del Cliente Actualizada - -Después de que el Anchor Remitente haya realizado otra solicitud `PUT /customer` de SEP-12 para actualizar la información del cliente, el Anchor Receptor debería cambiar el estado de la transacción a `pending_receiver`. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Hacer un Reembolso Stellar - -La integración con el servicio de custodia te permite realizar reembolsos a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto total del reembolso más la tarifa de monto debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Reembolso Enviado - -Hay una posibilidad de enviar todos los fondos de vuelta al `Anchor Remitente` (reembolso). Necesitas reembolsar la suma total (reembolso completo). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa de monto debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción, y luego puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción caducada - -Tu empresa puede querer caducar aquellas transacciones que han sido abandonadas por el usuario después de algún tiempo. Es una buena práctica limpiar las transacciones inactivas en estado `incomplete`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede utilizar después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de transacciones - -El estado de la transacción se puede cambiar de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Endpoint de devolución de tarifas - -Tu empresa puede querer ofrecer a las organizaciones enviadoras la opción de omitir el proceso de creación de cotizaciones, lo que permite a tu empresa utilizar una tarifa determinada en el momento en que se pagan los fondos al destinatario. En este caso, la Anchor Platform no hará una solicitud `GET /rate`, pero aún necesitarás proporcionar la tarifa que tu empresa cobrará por estos tipos de transacciones utilizando el endpoint [`GET /fee`][get-fee]. - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Endpoint de devolución de dirección única - -Las empresas deben proporcionar un par de cuenta y memo Stellar único para cada transacción solicitada por las organizaciones enviadoras para que la Anchor Platform pueda identificar y mapear el pago on-chain enviado para la transacción específica. La Anchor Platform puede generar estos pares de cuentas y memos ella misma, pero la mayoría de las empresas utilizan un servicio custodial para recibir pagos on-chain. En este caso, la empresa debe solicitar al custodio que genere la cuenta y memo Stellar. Esto se hace utilizando el endpoint [`GET /unique_address`][get-unique-address]. - -### Configuración - -Para configurar la Anchor Platform para hacer estas solicitudes, agrega lo siguiente a tu configuración: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -Este endpoint puede ser eliminado durante futuras actualizaciones de versiones principales de la Anchor Platform, cuando se añada soporte para conectarse a servicios custodiales y generar estas direcciones automáticamente. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/README.mdx deleted file mode 100644 index 17792e2fa6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas de fondos programáticos -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio mediante el cual las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, sin requerir nunca que el usuario interactúe directamente con la entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 54035236fb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar depósitos y retiradas SEP-6, la Anchor Platform debe configurarse para hacer lo siguiente: - -- Proporcionar las URL de servicio necesarias para los puntos finales SEP-6, 12 y 38 en el archivo `stellar.toml` -- Proporcionar información sobre los activos on-chain y off-chain, así como sobre las vías de pago, admitidas por tu negocio a través de los puntos finales `/info` de SEP-6 y SEP-38 -- Admitir los puntos finales y los callbacks requeridos para solicitar información KYC y proporcionar tasas de cambio - -## Habilitar Depósitos y Retiros Programáticos - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un Archivo de Información de Stellar - -Modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 es admitida por tu negocio, y también necesitan conocer todos los activos Stellar que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de la red pública, las URL de servicio en producción, tus cuentas de distribución Mainnet y la clave de firma, así como las cuentas emisoras Mainnet de los activos que utiliza tu servicio. - -### Modificar el Archivo de Configuración de Activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores según tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para USDC de Circle y un fiat USD para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que serán expuestos por el punto final SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que serán expuestos por el punto final SEP-6 [`GET /info`][sep-6]. Los métodos listados deben coincidir con los métodos definidos en la sección SEP-38 del archivo. - -También ten en cuenta que los activos fiat, aquellos con `schema: iso4217`, no necesitan que se especifiquen los objetos de configuración `sep6_enabled`, `deposit` o `withdraw`. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan que se especifiquen los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods`. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Gestionar Cuentas de Distribución - -Ten en cuenta que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta se proporcionará junto con un memo único y generado aleatoriamente por transacción a los clientes como la dirección a la que enviar fondos para transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar usas un tercero que te proporciona una cuenta Stellar y memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, debes omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y el memo que te gustaría usar para recibir fondos a través de una solicitud a la Anchor Platform [`request_onchain_funds`][request-onchain-funds] de forma individual para cada transacción. - -Para configurar la Anchor Platform para esperar que la cuenta Stellar y el memo sean proporcionados a través de la API en lugar de configurarlos a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si utilizas un proveedor de billeteras admitido por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billeteras para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también utilizará el proveedor de billeteras para enviar fondos a los clientes. Consulta la sección [servicios de custodia] para más información sobre la configuración de esta función, pero primero necesitarás especificar un valor diferente para la variable de entorno mencionada anteriormente. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar Callbacks al Servidor del Negocio - -Las empresas necesitan recolectar y validar información KYC sobre los clientes para quienes facilitan transacciones. Los clientes preguntan a tu negocio qué información KYC necesita ser recolectada y envían esa información a través de la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información que pueda identificar personalmente (PII). En su lugar, reenvía solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio de nuevo al cliente, actuando como un servidor proxy. - -Además, las empresas necesitan proporcionar a los clientes una API [Rates][get-rates-api] para consultar las tasas de cambio que están ofreciendo entre los activos on-chain y off-chain admitidos por el negocio. Si la tasa es competitiva, los clientes también necesitan poder solicitar un compromiso con la tasa actualmente ofrecida por el negocio durante un breve periodo de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor de negocio para obtener tasas de cambio y cotizaciones y las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor de negocio, primero necesitarás agregar tu servidor de negocio al archivo docker compose. Luego, para admitir solicitudes a tu servidor de negocio desde la Anchor Platform, necesitas habilitar callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes realizadas a `/callbacks/` para que tu servidor pueda autenticar la Anchor Platform antes de procesar las solicitudes. - -`more_info_url` es una URL opcional proporcionada por tu servidor de negocio para que las aplicaciones de billetera muestren información sobre transacciones previamente iniciadas. Esta URL se utiliza típicamente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se mostrará sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Consulta la [API KYC][platform-api-kyc] y la [Rates API][sep38] para obtener detalles sobre los puntos finales que deben implementarse en tu servidor de negocio. - -## Probar Con la Billetera de Demostración - -¡Las billeteras ahora deberían ser capaces de descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse algo parecido a lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [Billetera de Demostración Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar Activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el desplegable y haz clic en "Deposito SEP-6", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear, e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 67de9c46a5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te llevará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas programáticas. - -Al aprovechar el soporte de la Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar como billeteras y exchanges, extendiendo su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform, y configurado las características necesarias, requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información de KYC y transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita la moneda fiat real con el anchor (como transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, trading, almacenar valor, o cualquier otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, que tendría un aspecto similar a esto: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, el cliente puede ingresar su información de transacción y cualquier información adicional de KYC que no se haya recolectado previamente -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de cualquier método admitido por el anchor (como transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/integration.mdx deleted file mode 100644 index 06b094db93..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,987 +0,0 @@ ---- -title: Integrar -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Plataforma sobre eventos relacionados con las transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó los montos de entrada/salida/tasa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al endpoint de la API de la Plataforma. Las solicitudes JSON-RPC permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos que requiere el método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API se llamará cada vez que un usuario o el ancla realicen alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que necesita ser configurada por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes encontrar más sobre el flujo y los estados de las transacciones en el [documento del protocolo SEP-6][sep-6]. - -## Callbacks - -La Anchor Platform se basa en el servidor comercial para proporcionar y almacenar información sobre los clientes y las cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información del cliente. En su lugar, reenvía todas las solicitudes de clientes SEP-12 al servidor comercial. El servidor comercial es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor comercial debe implementar las [API de cliente][customer-callback] para manejar actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para admitir el exchange de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se utiliza para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor comercial debe implementar la [API de tasas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Usando la Clave API - - - -### Usando JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando Transacción de Depósito (Exchange) Vía JSON-RPC - -El diagrama de flujo de depósito SEP-6 define las secuencias/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de intercambio de depósitos es el mismo que el flujo de depósito, excepto que los montos no necesitan ser recalculados al solicitar fondos offchain, si el usuario ha proporcionado una cotización firme del ancla. - -[![diagrama de flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Verificando Información KYC - -Aunque la Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice una transferencia. Al escuchar eventos de transacción creados, o al consultar el [`GET /transactions`][get-transactions] endpoint, puedes determinar si una transacción requiere que el cliente actualice su información. Los campos requeridos de SEP-9 se pueden comunicar al usuario retornando un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - - - -```json -// reuest-customer-info-update.json -[ - { - "id": "1", - "jsonrpc": "2.0", - "method": "request_customer_info_update", - "params": { - "id": "", - "message": "Please update your information to continue" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-customer-info-update.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el ancla puede notificar a la Plataforma que está listo para recibir fondos. El ancla debe usar el RPC `request_offchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el total de tarifas recaudadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y el número de cuenta `123456789`. - -La información sobre montos (entrada/salida/tasa) es requerida si deseas mover la transacción al estado `pending_user_transfer_start`. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -### Fondos Recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada sobre la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de cantidad son opcionales. Si se omiten, se usarán los valores anteriores a esta solicitud. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de la transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero los fondos mismos no han sido recibidos aún. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que se haya enviado la transacción Stellar, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar a un usuario que los fondos se enviaron con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el id de la transacción en la red Stellar de la transferencia. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. - -### Enviando Pago a Través de Servicio de Custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para realizar un pago a través de un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después de que se procese con éxito el pago en un servicio de custodia, la Anchor Platform automáticamente realizará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta haya establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pending_trust` para indicar que el ancla está esperando que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, la Anchor Platform realizará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos formas de cómo la transacción puede moverse al estado `pending_trust`. La primera es procesar un pago a través de un servicio de custodia en caso de que detecte que la trustline no está configurada. La segunda es cuando el negocio mismo detecta que falta la trustline y desea notificar al usuario que debe ser configurada. Para mover la transacción al estado `pending_trust`, haz la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si la trustline fue configurada. Si fue así, enviará automáticamente un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la trustline fue o no configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del `success` flag, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, es necesario devolver fondos al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales de vuelta a la `source_account` usando el `refund_memo` y `refund_memo_type` asociados con la transacción, si están presentes. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma de vuelta al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero no ha sido confirmado aún. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se espere que la red externa de Bitcoin u otra red de criptomonedas complete una transacción, o cuando se esté esperando una transferencia bancaria. - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, deberías hacer una recuperación de transacción, y luego puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar transacciones inactivas en estado `incomplete`. Para hacerlo, realiza la siguiente solicitud JSON-RPC para caducar una transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede utilizar después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando Transacción de Retirada (Exchange) a Través de JSON-RPC - -El diagrama de flujo de retirada SEP-6 define la secuencia/reglas de la transición de estado de la transacción. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de intercambio de retiradas es el mismo que el flujo de retiradas, excepto que los montos no necesitarán ser recalculados al solicitar fondos en la cadena, si el usuario ha proporcionado una cotización firme del anchor. - -[![diagrama de flujo de retirada sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que el flujo de retirada ha terminado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden ser reutilizadas. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para Recibir Fondos - -De manera similar al depósito, el paso después de haber recopilado la KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, dado que tu servicio recibirá transacciones a través de la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, haz la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es el monto que el usuario debe enviar al negocio. -- `amount_out` es el monto que el usuario recibirá. -- `amount_fee` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, está configurado a USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `memo` es el memo que el usuario debe usar al enviar sus fondos en la cadena al anchor. -- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos en la cadena al anchor. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiradas de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se mostró arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones de Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambie a `pending_user_transfer_start`, la Anchor Platform establecerá el `memo` y el `memo_type` automáticamente (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta Stellar que se usará para recibir fondos debe estar configurada. - -::: - -### Fondos Recibidos - -Si se recibieron fondos en la cadena, necesitas proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Monto Actualizado - -Si se recibieron fondos en la cadena, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. El estado de la transacción en este caso no se cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden ser actualizados usando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos Fuera de la Cadena Disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos fuera de la cadena, y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos Fuera de la Cadena Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos Fuera de la Cadena Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso Enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. - -### Enviar Reembolso a Través del Servicio de Custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea inferior a `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de Transacción](#transaction-error) del flujo de depósito. - -### Transacción Caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción Caducada](#expired-transaction) del flujo de depósito. - -### Recuperación de Transacciones - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de Transacciones](#transaction-recovery) del flujo de depósito. - -## Rastrear Transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/README.mdx deleted file mode 100644 index b8868bcf2a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Referencia de API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Ver toda la información de la API de Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/README.mdx deleted file mode 100644 index 2057315253..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Servidor de Callbacks -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de callback para tu servidor de negocios. - - - -| | | -| ---------- | ---------------------------------------- | -| OBTENER | [/customer](./get-customer.api.mdx) | -| PONER | [/customer](./put-customer.api.mdx) | -| ELIMINAR | [/customer/:id](./del-customer.api.mdx) | -| PUBLICAR | [/event](./post-event.api.mdx) | -| OBTENER | [/fee](./get-fee.api.mdx) | -| OBTENER | [/rate](./get-rates.api.mdx) | -| OBTENER | [/unique_address](./gen-address.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 149e2db097..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zgQ/SvE7KEtIEuON4dCtyDxIUCxCNbZk22gFDm22FIkwxk1MQT99wVlKbZbb3/B6iJpOB+ceW9eByz3BOUa7lti32Ak2GbwNiMMg3m1fJrdLCAbPv68SYcaSUUT2HgHJTzXKCK+tEgsdj4Krg0JdDp441gYEkajY6OkFewF17hx668Pyy/L56Uo1Fj06/ZjzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm85tF3ug/psQzjRYZP23cdEeNO+NQC+PEsbd84zbuYXBL1xNT6AcSWrIUPoqXFtvLw/EsNTxUMN7lGwcZ+IBRpt9HDSVotNNcIYMgo2yQ04zLdQcmjS9IriEDJxuEEoyGDEjV2EgoO+BDSFbiaNwe+gxSEyaihpJji/02WSh4R0jJfzG/Ta9LgFatUkiUp/jbaw7TDYXzCcLW6RwyUN4xOk7uMgRr1NBV8Y1STPfrJX31DRWnLmOaAZvjlTBGH6/2YvQV80WP6zF6mwEbtslvORj69GSAb4yOjHfHeX7HA5QTdTP4IW2LVymc5tYg136ECBkHdLiGEt45WXRG9wkOjD8myNpooYSJqkpaW0n1Pa9aMg6JZkffHN9kEyxKp2ofE5UhlTRu51PLKdtx8ov8c34L1zZqdXCqjt75lsT9WIbE3dOjoIDK7EY4xo1DsTquiLgbSoonK3nnYyNC9AmWgeO/z3vcC5p2mUQjNYrqMKR/z/daG4vCDIsdok/EMm4v5EkCom+EFMoadCzOmJOL57T7x5l8SHVG4o6yQHgqLXc7VHxZ+Wf/ayWGDZyocmpvNaACGVij0BEmEMaFuwtS1SgW+RyyM3TLonh9fc3lcJr7uC/GUCq+PN4v/1otZ4t8ntfc2IGzwRM30p0lHgXlfbceJMufke5OS/a/jF7K6CgLjG9cBCuNS4ox4NONi7oGdVLW0uikErUnTiddV0nCf6Lt+2R+aTEeoFxvkyhEI6vEj3UH2lD61lDupCX8DTof/x5F6ZP4r8uNRukOJ+0ByEZVMhr6bZ9BjVJjPJOrO6Uw8FnIL2J7oVZHxKHv/wVOQ7B+ -sidebar_class_name: "delete api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/gen-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index 1a51c2a1d5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 84bbbe99e7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-fee.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index a449e4b095..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index e89903be15..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,578 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 60a2b0972f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 8400f829a4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: eJztWltv47YS/isE+9DuwpazblAUfkvTFAh6WgRNgoMiDmSKGkXsUiRLUkmMIP+9GFGyLpacHGALnAX8ksic0dw4M/xE8oV69uDo6o6el87rAqyj9zP6PHdgquHri6v5D3RW/f+0rB+Wp/XD95+QOwXHrTBeaEVX9OPHmxzImeK5tuRKMp9pW5BUgyNKe2LAOuE8YWpLeK2T/PrnOUmZZ9HHj2u1VijAwt8lVHwpseCMVg5Ipi3xuXAEVGq0UJ4wC0SkoLzgTBKvic9hre42V7c3ZNHI39x/l3tv3GqxeBA+L5OI62LhPEjJbPN/bqz2mmu5SKROFgVzHuwCuHZb56FYODDzk5NPy6hIv2kEz03pP6zVqK0pZEJBSoQiIXgRunYuBaDZxkjBGYbMkYJ93vnryJPwOXpBMi2lfhLqYReLRKfbGXnKBc+JcBiNJ2ZTSGu/CauCHtXBd2tVlM6TRyZFyjxU5jXhR3aMODHMOUhnte2+tKqiNR5+68hGpJuI/NHYx7XyTCi0Syu5Jc5bfM4EyBStl3KtEpgyjrCOh5tOGBZ/Oa02lXQMkN8aGFW6VolQzG67Csl79RWl9MIw6xeYlHMMwEDlWtEZ1QZsZdRlSlfUlL4pDjqj9Vz8pNMtXb3Q+mV8HDqDY47nUDB8Qul0RXXyF3BPZ9RY1OIFOKSKFP/2Cwmr4PJnorPehKBDYZ5CbvmqVuqc0xlhxFh4FLp0BGugNjeis8aCMF/0dUYZ57oMtu9rvg5VQbQlv5XPkJKzwE1Y6fNQbx7SNra7Sn8ULCT8yajSAgo9rhEpmKxlU9HZFhOLta5XyhhxObOQktp8LAiwUBnRp2CNbOrnzaQxcRgdswgpGNPKstKF3Gpse9OwfY0zCqossK2KlM5ozlyOPPDs6f1rw3zIEMZxsJ8PwpEEMFC//nmeYhlEa3UNIR53N/jitQEusjo1v3QrRNPmrqvhA0k1LwtQvtv9qt5daGzXKtPRWv2iLQlrCNnqknCm6paJPy3RT6py2zVJjn0qdIJMPJShPjtilqeY+POm64Y82jgwy9P5bh3AYOE8hjLfSwdvmXIhxvFURXZ4iKjzP3TkQdtEN1Efc05zgcUSkf/moCqCLSr7SWZ10Z/OFAyo1JEwzWvV1fcdRA/RrI1iI0W4qs4FJh+GWTL7gJ2iwDR0H8adzYR1PlasgE57asmSHaKyNBWomsmDPBaci6tisNuY63Sc0XnmIdY2NlY/CsXHubjw21GC0c4zOS2+tmOUVuhESIhVWSRgRzmgYELGh2Qkwvo8xhV2nzyjYZboilYMO3Yj2YSfgf5m0BKmPk/HvqLWfeiQdz2+pv9M6HpDism1OhjJiiuxuC4fDPizB4uJVWV+BjZuloz9lJAsOaiSJ2XMpGAHJ7/QCraHpPT4qhxNp/TZrfH6YLbULOPL4M9gLPDQK24dkM14MDZEKOeBpaOLmmfPdfeaIE2njea8NCwYM1oLRuot2GkBO45DIZBMPZTsAaaTW6TTySjSt4tDpLFwroT3V6VIY3g2Iiwr/9NrBxJHmINxcPA8Om4hA2uZnJrFXtOKH8Hult63O9hb7Jgkwkscumpxb43DK/IIhj4i3SPSPSLdrwnpHsHfEfwdwd8R/B3B378G/kyuvcaAZ1YH6DEpMOxo9l5KGP/8zneU9sxuY2YwO5mMdRY3Yt4p4Q2cGqQZq3UWW3AIC8ba16joKYzblamzWCiux7JqPEjNW1I8ghq1evS9/z9c/VuDpVuA/VoZGlBu5djy5GS/V1yXnINz2AK+6A70O78Ggnm1tadjBl6q6tghnOp8OSvBWj3xrTVhf7Mxhlg0vH3fOnVRDTRunO678bv25BddqvRr8KFeP5XDUyW6unuhn2FLV81p3oxWUPF9p3qv9/jN4HNdn4CgF8zndEV3p2oUq9s+4pEh6iqtpCvaQG7OpMQeFiWlE1ij88AbwTMrjIT6qIrrgqIqjOEf7cnKRWBq8rKt6t2HXDsUFtP+73oBCR8fw84w3OXt9IwOKm5HO2C4Y8gQA/dII9C3pY8g3pYYgG77u4dv93T0/O6j2c6XWB/EtoQudqXLk+Xp/OTH+adTOoCpwxem/OqA0sHgEItOkIcT1UOeg+E+4BwQBzizE4oJeNmJfw9VdsZbMLkX8j6GnCC30LEjdIAY9yhD6xp0NxzZC3sXy3UzoQfhRggjpgwAW0vY4bTe0FR2DFBZP9/GANgex36Au7ilU18IOdqfvVV/olwGq/dE7UxwYeNWWQXosRkG2jL6MUK7R7abtornVivctzqvu6QjZ1eXpLe3UN91aLenhjcqjNW4vETNhYlpuWGnwLVXDAqWAkm2/d2sp1xIIKLaSzJWI7wIm1LN7YPqrIoRvneDISI3eFIVWvq3brdJ5+qjeNe53cCyDLjvax7yj6kI2xj1kte6d10tKpilggNCktULrZP7zDCeA1lGJ3TWWZxWi8XT01PEKmqk7cOiftUt/nN5fvH79cV8GZ1EuS9ktfZiAy6Y6gg+t4C3KbQlt6a6V9HgInKJaTCY884VgePVmOPVmK/9akzd8XEnd2EkEwrbX1VdLzVAvKM7gHg/o7l2HsdeXhLm4NbK11cc/rsEu6Wru3sEpVawBOv6DreGc2DVKrlDr+fBhjlu8LYYdvQY4nXWvHTGORjfYd8D7D2Ae3V7g9ihvtNThKUL5VZiZ+0j2vj6+g+SqOe8 -sidebar_class_name: "put api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/README.mdx deleted file mode 100644 index 84b47467f3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de endpoints para interactuar con los servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index a683a68837..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tv2zgQ/isDXvaiyNnsAwvd0jTFBvuoscme0hzG1NhiQ5EqObJjGP7vxZDyI4obtN31wVZG8358M9momqIOpmPjnarUVR/Z12u4pbCkADoQMkXQA5kDuohamCGQ9qEG4+Dtm1IVyncUUN7c1KpSWXJQd3cQU4ViXERV3e9tHb2N6qFQT2eRusRxez09+1UV6ffi5+Hhpx+FKdCnniK/8fVaVRulvWNyLI/Yddbo5MnkY5SoNirqhlqUJ153pCrlZx9JsypUF8RvNhTlranl+3lKbq+nz+K+eSvRDnoiB+MWaluollr/Uvgvaj0s0fZUADfIYCL0kWpgD6Ymx2a+BuNmvnc1+AC+5/zc4bolx/GLtu4ScWxPqODnIBz/m8VCketbKYipVaEajI3w0BOrh21KIXvt7UtvpsMb8WiUxtesSMlTuaXU20LNg28vtfZ9LvCoPL4PmuCWyVoMgJnvZNrYf1HLW4psXGqar1KF7Wk9l4ku8XJDgDESH8oQyfEkkCazpPoVte/oRGXfEX1VGkWLmD3h27d682jciXn4w0jj5AC/oag1dT4aGbmV4aYOuEKrZI6TA+phmz5CiJ13Mc/jxfn5iYr3WlNMffqdY58t/XJK+Y1jCg7tDgGvQ/Dh+y1loDKBaskBJWUPY9TJ5IPsrgLSsoYtHXA5ezNkip6YXEyoWd1v1COtVbUDz0Il0HkVRLcPgiTceMHrzscEh8iNqtSEjzG5UDElI9vpg1WVapi7WE0mw2Y4yxwlPWHbWUKnGx9K7VslViRL/xwA+zoz7QD30CsZQ5//nXEuI88BaRJGPMOFg9TRmB+Iu4EdU9KsHRHz6BwIeQb23bstlHHzBPSSkNwzF+VvpSR2VKyhhVQxxuiG9gs1DnvWO0eao4A0SQd2wUSCFVpLDF3wS1NTiAXEXjeAEd6ZQDPr9WMsRCaSqwFdDcM47cEc5j4cT2gE4wwbZKphaTAN8WUqFkwt8tyHtoS7JsFDWBpNghToAG0aCxbd7PPsDzD5fjYEIaZmfTSOYqQIq8bL4gHvaAcXse86H8T2PqQSbhxgXZsEvYPqee+St2gNr8HP5xSohtn6pN0iUceHS/I5epijNtYwMr3cdGJOW0OOf4hj1BfH5rD2fVYjgYgZWibBITnFM1Vr3x/EYWWsBQ5msaAACL/f3U1Bo7Uz1I/QYk17kV3OhmYoP7gPbm87ENZraHBJUgbjmBb5ygKB0axg1CYpIQ5Yqqh923lHLiG+8ww7OCqkpI3vF81JJ7L7jvLd4Hy6Gk40C6zEFO7yIBvP69xeyT90LySOb6kV5j0kRnwAGejszrga+2bdq7mc3qRMXfUhkGOb3fPOrk+0mUR/GJnyg5yh1mhyMaGQw1bm9rJD3RBclOeqOIK5ajJZrVYlprelD4vJIBonf95cXf99e312UZ6XDbc2YbZAaYvuSPFVOobhxME7BoejS/a/3OLDIpETbdJZNE6AK0W0GSD+XvHo7G5kA1T3arOZYaR/g91uhfypp7BW1f2DrJRgcCYQdy9nWUNYUzjaPVfZ9bME2fsN9HJfboudxKXW1PGrvMdLavr+9k4VajYc/a2vRSbgSvYsrlSl0v8hOaRqk2kbZdEtelwIb9Ypn880aYvU -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 17db5e93f5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVlFT20YQ/is799IXIVMgoaM3AyZhSlKCSZi2yQzn08q65HSr3K1sPIz/e2dPsiGG9qF5kkbe3e+7/b7d84MqMZpgW7bkVaFOu8hUrmCKYYEBjHYuAtcIhnxl513AEswQEzEsrEFggjl6DJoRSmwpWgZdlgFjBO1LaLCh/LP/7M8pNJqBKrjTMSLfQauDbpAxwB7cRUbndCg+Ts9OizcnJ2dHxxfnry9vfz++On53Nvk0Pb29Pj67+nj76fD9n4dnNx8mn84vj96Pb47GH94e/nV5eX45fnX32atMUSt0LPmLUhVqw+6jt987HPfUVKZYz6Mq/t4euv8dNgFfMnW/F7FNMdPJ1d5rlaXnwdHwcvirBAX83mHkEypXqnhQhjyjZ3nVbeusSURGX6M0+EFFU2Oj5Y1XLapC0ewrGlbr9XottWJLPmKUgIP9fXn8qNC0MwZjzFX2f5Ey1QZpENseZtDqOdTZjphMsKytqXtDOIueIdbUuRIi+hKqzpeJ2IAXOVg/V+tMiQWe13+HDcFCuw4z4Fpvi81QILEUwFavGsGZrZ6g/ivGTfq4iyNfxXUS8dNImULfNWIJW6pM1TrWEoP3rL6IgmzZSfibl0x3Pcg7qP3qJYEvPGPw2m1mcBIChZ+SWwxqA5ZCGqWauPZHD/SfH3M3bX1yoGFKEp3Ef50pvGf00ZKXGXlQ33Clis3QZCpJ+5/Ds/4iunFNMqYtxWROzbUq1CitiDgq0nM0eBClbkyN6SG74FShauY2FqPRsJr2+ogc73XTOtTe1BRyQ40SQGnY9ePMTvogVTysM2V9lYwq9Xs5DvLfcqG804ZBHZXtek2s82RByhIl79Fwmh8UcdtgI8JSO4cMbaCFLTHEDGJnatARzm3AmSPzLWaSk2ZLFmlAg3aBG6dGqCgAB+2jNgIfwXrLVjOWsLA62Xiczg5XTnNFocnhprZxu7qtbGjQLjmOpTZTSpv2uxj+mA2HEKhZF61PIsCyJugiAvk0WZISu7alINjbI+Vw4WXArLDblK46n9hqZ3kFVFUol8owdbu4Wfr67FYSzpGg0sY6y3LxUMcz6nz52BymYYZ/iduy2hjqPAuxClbU9WXkIAKDi5Q4NCf7odSKusd0WFrngIOdzzGAhrc3N1fprpxp8w0aXeI2ZdOzwQzpHtxiB9TlCmq9QJHBesZ5f23B0nLdF9ixSWqIBxYVDTUtedlZNoInhs2gZyJpTd28fpFET99jv/c8sa1WL5kFlgKlt5tRx0imt1fip/2zjCduhKUWQM8CQgGqQE1PZ1eNrVm3ZcZXF6lTp10I6Nn19Mi71Qs2k9M/jkye/gA4a1D2bPGgvG5kbsetNjXCQb6vsidboxiNlstlrtOvOYX5aEiNo8uL08n76WTvIN/Pa26cLL1/AFWlP4c= -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index f1b1bcb05b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVstu6zYQ/ZUBN90ocuqbFq12aeqiBoo2iL0o0NwFTY0s3lCkyhnZEQz/ezGU/IjjtkC7yUoCyXmcM8Mz3KkSyUTbsg1eFeqhIw5lDwuMG4xgtHMEXCOY4Cu77iKWYMYzhHFjDQIHIPQltLpv0HOuMhVajFpczktVKNl9HDZVplivSRV/qHGF1OdMvd4Qtml1MXu8+VZl6Tu9G38+fS2HIv7ZIfEPoexVsVMmeBaPxU7ptnXWpICTLyRAdopMjY2WP+5bVIUKqy9oWO33+734ojZ4QpID09tb+bxlYtEZg0SC5j9GylQbhQi2Qxhbnp0hjtavVXYRdfbKGL12sPwd5j9CFUNzyXeuBABbduJnceL2acQ0Qry7hmruN9rZEp4GLv8XOqmHjVhK2TDGEKVIbyEPy+9QnwMYO26WTh4yv3uf+aEzl1F70kZWwRL4wFCFzpcfFMr0+7+HshgvUNSM4GxjWRDhq0Es8YMC+uZ6V41dO8pGMvio+X/694JYgs7rjbZOrxx+RCD7TOEroycbvOjmTr1gr4qDkGZqo12H/yio+8+ZapDrIBLdBkqCpblWhZrw6ZLRpLDlpD2IdaYo1XgI2kWnClUzt1RMJqNQ3QwncnzVTetQe1OHmJvQKAkplD2dlHw2HFLFbp8p66sgRIj/oTLT/Ltckr4gYmy0d/K5lEl1JpcywoL3aJhkTKH0aRstIWy1c8jQxrCxJUbKgDpTgyb4yUZcuWBeKDuONu1LiGjQbvAw5giqEOGcKLDestWMJWysTlPzPmGHR6e5CrHJYVlbOg5OS6A9aJcuD4tvDslsweicjvDbagQhoVYdWY9ESLCtA3SEEDxCqJIJdW0bosQ+Qsph7kGXpU1aObquOp+y1c5yD6GqUEb6qr8aN0ur794EkjMFqLSxzrKIV+h4JSJ8IocDGGfR81d0dKuNCZ1nSayCPnSDGwEiYXCTDEdysjeu+tCdzGFrnQOOdr3GCBp+Xi4f00tlpc0LNLrEo8mBs7EZ8mf/7I+xI+qyh1pvUMpgPeN6eLTA1nI9OLhok0SIB5YqmtC0waPnwxg6XPVMSlqHbl1fTWJI3yOWkqYPbKv+WrPAVkLpAw+giYIZ2ivlp/07i7NuhK2WgJ4lSIjDSyKlc1mNY7Me3dw/zhNTD12M6NkN6QXv+ittJuhPVyZ/9ipTzhqUh0ixU143cm/vW21qhGl+q7Iz1Sgmk+12m+u0m4e4noymNPll/jD7dTG7mea3ec2NE9n7C3X2yKY= -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index a1a5f2847c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv40YM/ivEXHpR5DSbFq1u2ayDGugjiH0o0OxhPKKs2Yxm1CFlRwjy3wuO5Edsd3vYHuKLhXl85Edy+PFFlUgm2pZt8KpQtx1xKHuYY1xjBKOdIzDBV3bVRSzhcN8aBA5A6EuIWHW+zHf7HLUnbQQVIpoQS7AE2lEAE1EzlmA9fPqYq0yFFqOWk7NSFUrgHhKayhTrFaniLzUskPqcqecLwjYtzqf3Fz+qLP1fXY8fH76XQxH/7pD4Yyh7VbwoEzyjZ/nUbeusSeYmX0g4vygyNTZavrhvURUqLL+gYZWpNopzbJFkt8EmyP/bkP2GTYC1dh1mwLVm2FjnYImgyxJLiRDXOAYIWt036Floj7aIo/Ur9Zol+EVaPDYhqxAqkBPfaEQ3oRsi8dbETVo/Ah/wsPwK0h2e8fcOk7t7l84ApJ9kitrgaQjw1eXlKdi8MwaJBOJ/yqMtD86M/mRHVqfPjNFrB4s/YfYJqhgaMGNx01D8uRICbNkJzhx9eT8E/mHkpAaK1+dYzfxaO1vCw1Cp38ROqt1GLOVRYIwhyhN4S3lYPmF9SGB8utN0cuv59ann2ye+OHjilsAHhiqMuX6HVK5+/ncq224WNSM421gWRvhsEMfqf3+EfjhfVWPVjv07XXiv/n/474RYgs7rtbZOLx2+RyKvmcJnRk82eFGlF/WEvSq2MpWppAxflavXz9L7uQ4if22g1LA016pQkwMdpUlhy0kclTBTlFI82OyiU4WqmVsqJpOxT10MJ3J81k3rUHtTh5ib0CixKBF72MvkdDi0l7l9Y9zr0n5tKyPHK0kODkTC+ipJpng6pPgq/ykX9kcRHSv2pA8vanzTd2UoCd6jYRLVQyn4NlpC2GjnkKGNYW1LjJQBdaYGTXBnIy5dME+U7QYWnYYWg3aNW70kqEI8nFwIrLds07Sytjrp2U2KItw7zVWITQ6L2tJWEdKM40G79ApZsEdlnjM6pyP8sRxJiKllR9YjERJs6gAdIQS/U07q2jZEsb2jlMPMi+Lb1HRH6KrzyVvtLPcQqgplUFv2Z+1mafVkyvPDaFZpY51l6YKh42U4GCZStI2z6Pk72sFqYyTr4lgFfegGGCEiZnCdLo7Byd5A9aHbXx8GDo52tcIIGn5ZLO7T7LnU5gkaXeLuyjZmYzHkj/7R72xH1GUPtV6jpMF6xtUwWcLGcj0AHJVJCogHliya0LTBo+etnm17RiYprUO3qs86MbjvcRjEfGBb9eeKBTZiSm/jAJoomKG8kn/an9w4nKM3Wgx6FiMhDiNJcuc4G7ti3cHc3M9SpG67GNGzG9wL3vVnykzY759M/uhVppw1KBNN8aK8buTd3rTa1AhX+aXKDvpPMZlsNptcp908xNVkvEqTX2e309/n04ur/DKvuXHSP/8BrbBp9A== -sidebar_class_name: "post api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/README.mdx deleted file mode 100644 index ebda808b42..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/README.mdx deleted file mode 100644 index b82588f27a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactuar con tu instancia de Anchor Platform mediante el uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 8d10c9b7e2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,9298 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "3.0.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "Additional customer information was received and updated.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_customer_info_update", - "summary": "Customer info needed", - "description": "Additional customer information is required", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_customer_info_updateResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_customer_info_updateExample", - "description": "Example request to the `request_customer_info_update` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info requested" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index ec19c7714a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección enumera los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La especificación de OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| - | -------------------------------------------------------------------------- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [request_customer_info_update](request_customer_info_update.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 42f491e60f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 5c5818f183..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: reembolsar_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "reembolsar_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index d2028af03c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_actualización_de_cantidades -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_actualización_de_cantidades")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index 45836a5f59..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_info_cliente_actualizada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_info_cliente_actualizada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 817a113664..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar flujo interactivo completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar flujo interactivo completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 35ed445bc2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_disponibles", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index 07e0511109..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 291add5e3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 39ca9284f4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index c4cf2791bb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 9465a15b06..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_envíos_de_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_envíos_de_fondos_en_cadena", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 78e56bd450..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_enviado")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index d7bc13aaf4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 119e4aece7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_expirada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 430ed01d9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_espera -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_espera", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 000198f5dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 776bbbf618..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_conjunto_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_conjunto_confianza")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx deleted file mode 100644 index ab1dfda476..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_customer_info_update.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: actualizar_informacion_cliente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "actualizar_informacion_cliente", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 2550832461..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_fuera_de_la_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index ec9dd3ef90..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_en_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index a12e54bf17..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_fiducia -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fiducia")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index 7185271614..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único endpoint HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es agnóstico al transporte en el sentido de que los conceptos pueden usarse dentro del mismo proceso, a través de sockets, sobre http, o en muchos entornos diversos de paso de mensajes. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de miembros intercambiados entre el Cliente y el Servidor que se consideren para la coincidencia de cualquier tipo deben considerarse sensibles a mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 4f33913ec6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando, y toda la información necesaria proporcionada por una parte externa (como billetera o un anchor). - -No debe confundirse con [transacciones](/docs/learn/glossary#transaction) stellar. - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 504840e254..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMhZb7AodEsLozBQtEaSnrJBliZHFjcSyZAjJ4ah/14MLSPybhpst4cCPeljhvOldx7tkdUmYXWLN1G5pDRb7xLeFfh8lihky/VidfYBi3ydX4w379+Jkw8UlRxZGqxwQzyJggUaSjrakJ8qXEW/tYYScENgXe1jl8+CI00pqbiD2sdsXffJOkoJ2IMhpthZR9mSWDGBr/MDv2QDa8ixrS0ZWO/gkzWfCjCkrSGwNSi3g9Gx6xPDmoDVAzlJoL1j63qCEL0UYt3my+gFKGckAHiXbRI5We9KLDCoqDopUqa1Ryu9BsUNFuhUR1ihNVhgpMfeRjJYceypwKQb6hRWe+RdEK/E0boNDsOdOKfgXaIk9vn5uVxOpzmZNNS+d0ZKkVbIsXirEFqr84Bnn5Mc2U9Sekd/1LncMblffybNJ2XeHupOFLDAB+vyAyvu0+EmMpl7xaIDttzSaVHXi9UHHIrvTqA63zu+p+dAmskc1MTW5Y7uldZi/sZC5hf/ppJvyfD+HQ53wzAMBV689rV+Vgau6LGnxP/kM31ZcYiycWwPuqAYfXxFQIV084quTjs+nJ50tMgvjk1cvC055/k7ZPcf9TMUSM9MLmW4ieofaIfVkXEFblXb05usk6XsiBs/gi7vPTdY4WzCiTTbWzNkJcXtEQh9bLHChjmkajYLrWJB39nBpaRn1YWWlNONj6X2HUoqwaO0LEEOw5+XP5VS0LG71RgHrnOcr2h70xAcc8EhF9gEyoF1TNGpFrTvgnfkuIQlQ2p83xohY+MTkwHrQEGIdivEdcRPPj5kDo6eIoE1gdIZmuuWoI6+y3hc5hTEJdw0Nh3Tk1PrduT/lPA1sW5y5D4YSXYK+sl4oc90tpzgcrUsP8pPprWaXCKZ1ojby6B0QzAvz7GYTL+azZ6enkqVraWPm9l4NM1+W/6y+P16cTYvz8uGuzaLK/jEnXKTwFfE0dKWQMEbP7r9yz78b/954yoyPbMo2jrZ0jzq/bgXtzj9cFhgZY1sp4hLrPv9WiX6M7bDIK8fe4o7rG7vZBmjFaHk5TE2yb3BqlZtojdG/cPVCIMf4e8KHF8qt3vZeRTiZxpYIwwvsCFlKE4wcak1BZ4c+QpyJ3T4dXGDw/AX+0E5jA== -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index b1947098f2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: ap_versioned_docs/version-2.8.4/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep31-transition-diagram.png deleted file mode 100644 index 3944ea0b18..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index 75d4d271ac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 0bf199f47c..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.8/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9.json deleted file mode 100644 index a96969a0ba..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "2,9", - "description": "The label for version 2.9" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "API JSON-RPC", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callbacks", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/README.mdx deleted file mode 100644 index 6cf2bb9d11..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Introducción a la Anchor Platform -sidebar_position: 10 ---- - -# Anchor Platform - -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y empresas crear sus propios servicios de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, incluyendo la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar a las empresas la integración con billeteras y exchanges basados en Stellar. - -La plataforma también incluye características para gestionar activos, transacciones y cuentas de usuario, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de crear y gestionar un servicio financiero basado en Stellar, permitiendo a las empresas centrarse en proporcionar valor a sus clientes. - -Infórmate sobre cómo integrar la Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o obtén información de la API en la [Referencia de la API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/README.mdx deleted file mode 100644 index bd3a6256db..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía del Administrador -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre cómo configurar, ejecutar y utilizar la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/architecture.mdx deleted file mode 100644 index 38631fff53..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiarizémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son necesarios para todos los despliegues de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y hace solicitudes al sistema. Los clientes hacen solicitudes al componente del servidor SEP de la Anchor Platform usando conjuntos de estándares llamados [SEPs][seps] (Propuestas del Ecosistema Stellar). - -#### Servidor SEP - -El servidor SEP es un servidor orientado al cliente y, por lo tanto, necesita ser accesible desde una red externa. El servidor SEP procesa solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio para un par de activos o el estado de KYC de un cliente, hace solicitudes [callback][callback-api] síncronas al servidor de negocios y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocios - -El servidor de negocios es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocios responde a solicitudes de callback enviadas por el servidor SEP, como solicitudes de una cotización, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido en tu cuenta Stellar, y proporciona actualizaciones al servidor de la plataforma cuando ocurren eventos fuera de la cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de la plataforma es un componente interno. Debe ser alojado en una red privada y no debe ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones usando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades de Stellar. Se utiliza principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales usar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a los clientes registrados y a tu servidor de negocios cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocios consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre cómo usar el servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para empresas que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el servidor de custodia también puede facilitar pagos salientes a las cuentas Stellar del cliente. Si también utilizas el servicio de [eventos], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una integración con tu proveedor de billetera, entonces este componente no es necesario, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando se envíe un pago asociado con una transacción de la Anchor Platform a o desde tus cuentas Stellar a través de la [API de la Plataforma][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Observador Stellar - -El Stellar Observer, una alternativa al servidor de custodia mencionado anteriormente, monitorea la blockchain de Stellar usando Horizon, detecta automáticamente los pagos de los usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [eventos], los pagos a tus cuentas desencadenarán un callback HTTP realizado a tu servidor de negocios. - -Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon o RPC, entonces este componente no es necesario, aunque tu servidor de negocios necesitará notificar a la Anchor Platform cuando se realice un pago asociado con una transacción de la Anchor Platform a una de tus cuentas Stellar a través de la [API de la Plataforma][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[eventos]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 251651c751..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Usar el Payment Observer te permite delegar este paso a la Anchor Platform. Para habilitar el Payment Observer, usa el `--stellar-observer` flag en la sección de comando del [archivo de composición](../../getting-started.mdx#configuration). - -El Payment Observer rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando la transacción con el memo esperado sea detectada en la red, el estado cambiará automáticamente a `pending_anchor` y el evento será emitido (si se utiliza Kafka). - -Para actualizar los estados de la transacción, el observador realiza las solicitudes JSON-RPC correspondientes a la plataforma. Debería usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Payment Observer no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario es correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea pagos, asegúrate de que la lógica del sistema iguale la descripción a continuación: - -Primero, espera a que la transacción sea incluida en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción haya sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 8e292ad3b7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :--------------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto de solicitud válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Invalid method parameter(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se está devolviendo desde la Anchor Platform en una solicitud de inicio de retirada de fondos o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/request.mdx deleted file mode 100644 index b18d0da38a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. MUST be exactly "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. Lista de métodos disponibles que puedes ver en [Métodos JSON-RPC][json-rpc-methods] -- params - - objeto - - Un valor estructurado que contiene los valores de los parámetros, correspondientes a la llamada de método, que se utilizarán durante la invocación del método -- id - - cadena - - Un identificador establecido por el cliente. El servidor responderá con el mismo valor en el objeto Response - - - -:::tip - -Es posible proporcionar múltiples actualizaciones en una única solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se realiza una actualización de esta manera, todas las actualizaciones se realizarán secuencialmente. - -Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE APLICARÁN y todas las actualizaciones posteriores SE PROCESARÁN y se aplicarán también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 98e5158389..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un único objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. It's set to "2.0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles de la transacción actualizada -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Id único de la transacción para la cual ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Por favor, consulta una lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index 527e8b66a5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform alojada en el puerto predeterminado (8085). Los datos de transacción JSON almacenados en el archivo proporcionado se utilizarán como cuerpo (las solicitudes deben ser un arreglo). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/api_key.mdx deleted file mode 100644 index 3d1734881a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación por clave API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitado, todas las solicitudes deben incluir un encabezado válido `X-Api-Key`, configurado con la clave API establecida. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 67b767e08c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_SERVER_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres de longitud por seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/security.mdx deleted file mode 100644 index 5959c56eba..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -Por defecto, los endpoints de la API de la Plataforma, como `GET /transactions` y `GET /transactions/:id`, no están protegidos y son accesibles por cualquiera que tenga acceso al servidor, incluidas las billeteras. - -::: - -:::info - -Se recomienda mantener el servidor de la Plataforma accesible solo desde la red privada. Sin embargo, puede que quieras añadir una capa adicional de protección mediante la seguridad de la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/README.mdx deleted file mode 100644 index ee98f3195e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Utilizar un servicio de custodia te permitirá usar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 76f5afaa94..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si quieres usar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas implementar un servicio más: el Servidor de Custodia. - -Este servicio también necesita el `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. Por defecto, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas desplegar el Stellar Observer ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si estableces el tipo de autenticación `api_key` o `jwt`, entonces necesitas agregar una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia usando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:2.9.0 --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósito para SEP-24 y SEP-31. Además, necesitas configurar una verificación de línea de confianza, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - el memo y el tipo de memo se generan en el código local, y la cuenta de distribución se utiliza para la dirección de depósito. -- `custody` - el memo y el tipo de memo se generan a través de la API de Custodia, por ejemplo Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, el memo y el tipo de memo deben ser proporcionados por la empresa en una solicitud PATCH/JSON-RPC. -- `api` - el memo y el tipo de memo se generan a través de la llamada al endpoint GET /unique_address del anchor. - -::: - -## Configuración del Servidor de Referencia de Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia de Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index e179fc9611..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configurar [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 135bde8e01..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar usuario API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL de Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de dirección única](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del Servidor de Custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index f70235bbf7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones de diagramas de secuencia se encuentran en la carpeta /static/definitions" -[comentario]: # "Para actualizarlos, utiliza https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de conciliación: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retiro SEP-24 con webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retiro SEP-24 con trabajo de conciliación: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de conciliación: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/README.mdx deleted file mode 100644 index 7c8ed3dd9b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de Eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos webhook HTTP. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/delivery.mdx deleted file mode 100644 index 3321327ab7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de Entrega -sidebar_position: 30 ---- - -## Garantías de Entrega - -Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como el sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del corredor que uses. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden ser entregados fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debe utilizar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor de negocios. - -### Garantías de Entrega del Cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar eventos a ese cliente. - -### Garantías de Entrega del Servidor de Negocios - -El servicio de eventos intentará entregar cada evento al servidor de negocios hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor de negocios no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar eventos al servidor de negocios. - -:::note - -Las garantías de entrega del servidor de negocios son las mismas que las del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a los clientes que no sean accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/getting-started.mdx deleted file mode 100644 index ab37222b9a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones HTTP webhook a: - -**Servidores de negocios** - -- Cambios en el estado de la transacción -- Actualizaciones de cotización -- Cambios en el estado KYC del cliente - -Los esquemas de eventos para servidores comerciales están definidos en la [referencia de la API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones de clientes** - -- Cambios en el estado de la transacción que afectan a sus usuarios -- Cambios en el estado KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para las aplicaciones de clientes están definidos en sus respectivos SEPs:_ - -- [SEP-6 Eventos de Transacción](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Eventos de Cliente](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Eventos de Transacción](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Eventos de Transacción](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores de negocios y las aplicaciones de clientes consulten continuamente las API en busca de actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/integration.mdx deleted file mode 100644 index f75c195c66..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/events/integration.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te guiará a través de la integración con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend. - -Asume familiaridad con Kafka y no cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema `TRANSACTION` de Kafka. El servicio de eventos consumirá eventos de este tema y los enviará a los endpoints apropiados. - -## Configuración - -Primero, el productor de Kafka del servicio de eventos debe configurarse utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. El siguiente es el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite establecer un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para más información sobre lo que está disponible. Para más información sobre la configuración del cliente del productor de Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, el procesador de eventos debe configurarse en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto habilitará el procesador de eventos para comenzar a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los endpoints de devolución de llamada de cliente y servidor comercial. - -## Recibir Eventos - -El servicio de eventos se puede utilizar para enviar eventos a los endpoints de devolución de llamada de cliente y servidor comercial. El servicio de eventos enviará eventos a estos endpoints como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como Aplicación Cliente - -Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones y la información de los clientes de sus usuarios. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. - -Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de devolución de llamada a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. Anchor Platform permite configurar endpoints únicos por tipo de evento. - -Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración de clientes][clients-config] para más información. - -#### Firma de Devolución de Llamada - -Anchor Platform firma las solicitudes de devolución de llamada que envía a las aplicaciones cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de firma de la URL de devolución de llamada se puede encontrar en las especificaciones de protocolo SEP correspondientes. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como Servidor Comercial - -Además de las actualizaciones del estado de transacción SEP, los servidores comerciales pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información de clientes SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se esté enviando. Visita la [documentación de la API de eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. - -Para recibir eventos como un servidor comercial, necesitarás exponer una URL de devolución de llamada a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de devolución de llamada del servicio de eventos se puede configurar utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -:::caution - -El `--event-processor` ignorará cualquier segmento de ruta especificado en `callback_api.base_url` y en su lugar enviará eventos a `[scheme]://[host]:[port]/event`. Este es un error, pero para no interrumpir a quienes utilizan el procesador de eventos, postergaremos la corrección de incluir segmentos de ruta en la versión 3 de Anchor Platform. - -::: - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación por clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de devolución de llamada del servicio de eventos que se utilizará para enviar eventos a los endpoints de devolución de llamada de cliente y servidor comercial. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del endpoint de devolución de llamada del servidor comercial. -- `secret`: El secreto que se utilizará al enviar eventos al endpoint de devolución de llamada del servidor comercial. Esto se utiliza para firmar el cuerpo de la solicitud cuando se habilita la autenticación JWT y es la clave API cuando se habilita la autenticación por clave API. -- `auth`: El método de autenticación que se utilizará al enviar eventos al endpoint de devolución de llamada del servidor comercial. Los siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un token web JSON (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de caducidad del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[archivo-de-valores-predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración-de-clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/getting-started.mdx deleted file mode 100644 index 4f1d33ce1f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/getting-started.mdx +++ /dev/null @@ -1,384 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es descargar la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:2.9.0 -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía usaremos [docker compose][docker-compose] por simplicidad, pero también puedes ejecutar la Anchor Platform utilizando otras herramientas que admiten docker, como [minikube] o un clúster completo de [kubernetes]. - -Vamos a crear un archivo de compose mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` le indica a la Anchor Platform que haga disponibles los puntos finales de la API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- usando variables de entorno -- usando un archivo de configuración YAML - -Se puede utilizar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan utilizando guiones bajos o puntos (`_`, `.`) al usar variables de entorno. Aquí demostraremos ambos enfoques, pero usaremos exclusivamente variables de entorno en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el [archivo de valores predeterminados][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En su lugar, los secretos de aplicación, que todos tienen el prefijo `SECRET_`, deben ser especificados en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de docker compose. - - - -```bash -touch dev.env -``` - - - -Y si estás usando un archivo de configuración YAML, vamos a crear eso también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a agregar una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambiar el Puerto del Servidor de la Plataforma - -Por ejemplo, cambiemos el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas la configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especifica los Activos de Tu Servicio - -Vamos a agregar los activos que tu implementación de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás usando la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación SEP-10 Stellar, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía construiremos servicios ancla para el USDC de Circle en la red de prueba de Stellar. Actualiza los valores anteriores según los activos que emitarás. Asegúrate de especificar el `emisor` de testnet en tu archivo de desarrollo, y crea tu propio `distribution_account` usando una herramienta como [Stellar Lab][stellar-lab]. El `distribution_account` será utilizado por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo necesita ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL soportada por Flyway es PostgreSQL 14. - -Antes de avanzar, vamos a agregar una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Se necesita una base de datos solo si utilizas la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás usando configuración YAML en su lugar, las variables de entorno `POSTGRES_` deben estar siempre en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Tenemos que crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que vamos a hacer un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los registros informando una conexión exitosa a la base de datos postgres. - -### Configura la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará obtener y actualizar registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace que las APIs SEP públicas estén disponibles, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciada por la opción `--platform-server`. El negocio debe hacer que el Servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible agregar autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al hacer solicitudes a la API de la Plataforma, agrega un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` usa `platform` en lugar de `localhost` como el host porque estarás haciendo solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -### Pasar flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` al valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar una variable de entorno desde tu máquina al contenedor, deberías usar la opción de compose `environment` para establecer variables en su lugar. Aquí hay un ejemplo de usar el keystore de tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación del keystore local y `KEYSTORE_PASSWORD` es la contraseña del keystore local. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/overview.mdx deleted file mode 100644 index 3a0befc62d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -La Anchor Platform es la forma más fácil y rápida de desplegar [anchor services](/docs/learn/fundamentals/anchors) compatibles con [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad específica de Stellar y los requisitos para operar un anchor, permitiendo a las empresas centrarse en la lógica de negocio fundamental necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto al implementar las APIs estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones, mientras ofrece un conjunto de APIs de backend para que las empresas proporcionen información específica para ellas, como tarifas de transacción, tasas de cambio y estados de transacción fuera de la cadena. - -A continuación, se presenta una lista de SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Depósito y Retirada Programática][sep6-ap] -- [SEP-10][sep-10]: [Autenticación Stellar][sep10-ap] -- [SEP-12][sep-12]: API de KYC -- [SEP-24][sep-24]: [Depósito y Retirada Alojados][sep24-ap] -- [SEP-31][sep-31]: [API de Pagos Transnacionales][sep31-ap] -- [SEP-38][sep-38]: API de RFQ de Anchor - -La documentación de la Anchor Platform es un trabajo en progreso. Los desarrolladores son bienvenidos a sumergirse en el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si buscas crear un servicio de entrada y salida compatible con SEP-24, consulta nuestra [guía para comenzar][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep1/README.mdx deleted file mode 100644 index 134402c217..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de Información Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos aplicaciones para aprender más sobre tu servicio hospedando un archivo `stellar.toml` en una ruta URL estandarizada. Este archivo permite a las aplicaciones encontrar información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas URL raíz para estos servicios. Podemos hospedar este archivo utilizando la Anchor Platform. - -Creamos un archivo llamado `dev.stellar.toml` utilizando el contenido de abajo como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Nota que necesitarás crear otro archivo para tu implementación de producción que use la frase de paso de la red pública, las URLs de servicio de producción, tus cuentas de distribución de Mainnet y clave de firma, así como las cuentas de emisión de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto le indicará a la Anchor Platform que debe hospedar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser hospedado utilizando un servidor de archivos estático apropiado como [nginx]. Mientras tu archivo de información incluya las URLs apropiadas que apuntan a la Anchor Platform, esto funcionará perfectamente. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep10/README.mdx deleted file mode 100644 index 42b6012cbe..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar Autenticación Stellar - -Las aplicaciones de billetera basadas en Stellar crean sesiones autenticadas con anclajes Stellar al demostrar que ellos, o sus usuarios, tienen control suficiente sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el ancla en solicitudes posteriores a los servicios estandarizados del ancla. - -La Anchor Platform admite esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás hospedando el archivo toml a través de la Plataforma, (`SEP1_ENABLED` está configurado como `true`), el archivo toml será hospedado en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre que tengas en tu posesión la `SIGNING_KEY`. Las billeteras verificarán esta firma antes de firmar y enviar de vuelta el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de cifrado que se utilizará para firmar y verificar los tokens de autenticación que emitas a las aplicaciones de billetera después de que ellas o sus usuarios hayan demostrado control sobre su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique con tus servicios. Si deseas permitir solo a los usuarios de una aplicación de billetera en particular autenticar, o quieres deshabilitar a usuarios específicos de autenticarse, utiliza las siguientes variables de entorno. Esta es una característica opcional y solo debe añadirse si es un requisito del negocio. - -::: - -## Configurar Con Atribución de Cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores o clientes de billetera externos con los que el servidor Anchor puede comunicarse de forma segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint. - # If one of SEP-specific URLs is also provided, then this URL will be used as a fallback. - # For example, if `callback_url_sep6` is not provided, but `callback_url_sep24` is, - # SEP-6 transactions will use the `callback_url` as the callback URL. This field is - # deprecated and will be removed in 3.0. - # - callback_url_sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_url_sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_url_sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_url_sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_url: (optional) the URL of the client's callback API endpoint - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_url: https://callback.custodial-client1.com/api/v1/anchor/callback - callback_url_sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - callback_url_sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_url: https://callback.noncustodial-client1.co/api/v2/anchor/callback - callback_url_sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - callback_url_sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_CALLBACK_URL=https://callback.custodial-client1.com/api/v1/anchor/callback -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[2]_CALLBACK_URL=https://callback.noncustodial-client1.co/api/v2/anchor/callback -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores o clientes de billetera externos con los que el servidor Anchor puede comunicarse de forma segura. - -## Modificar un Archivo de Información Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 es admitida por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/README.mdx deleted file mode 100644 index 6d756933d6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas de fondos alojados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio por el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con un puente de entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/configuration.mdx deleted file mode 100644 index fe782c35b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -A continuación, modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución de Mainnet y clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -## Habilitar depósitos y retiros alojados - -Ahora estás listo para habilitar depósitos y retiros alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml`, y cambia los valores dependiendo de tus preferencias. Este ejemplo de archivo de activo habilitará el soporte para el USDC de Circle y un USD fiat. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true - - schema: iso4217 - code: USD - significant_decimals: 2 - deposit: - enabled: true - withdraw: - enabled: true - # Optional support for XLM - - schema: stellar - code: native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24_enabled: true - deposit: - enabled: true - withdraw: - enabled: true -``` - - - -La información proporcionada para el valor `assets` se mapea estrechamente a la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-24 [`GET /info`][sep24-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando deseen mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada con mayor frecuencia por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de encriptación que la Anchor Platform utilizará para generar tokens de corta duración que se añadirán a las URLs proporcionadas a la billetera. Tu servidor de negocios también debe tener estas claves en su entorno para poder verificar la firma del token. - -## Prueba con la billetera de demostración - -¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse como el siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, ve a la [Billetera de Demostración Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Inicia una transacción haciendo lo siguiente: - -- Crea un nuevo keypair -- Haz clic en el botón "Agregar Activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticarse utilizando el keypair Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, verás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/example.mdx deleted file mode 100644 index 9dc8dd70b1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrarse con la Anchor Platform implica tres áreas clave: - -- Crear una experiencia de usuario basada en la web que se pueda abrir en una vista web móvil -- Proporcionar actualizaciones del estado de las transacciones a la Anchor Platform -- Recuperar actualizaciones del estado de las transacciones desde la Anchor Platform - -## Crear una experiencia de usuario basada en la web - -La Anchor Platform no ofrece una interfaz de usuario de marca blanca que tu negocio pueda utilizar, y en su lugar espera que el negocio cree su propia interfaz de usuario y sistema backend. No construiremos una experiencia de usuario completa de entrada y salida en esta guía, pero cubriremos las maneras en que tu producto existente debería ser actualizado para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto existente de entrada y salida, es probable que ya tengas un sistema existente para la autenticación de usuarios. Sin embargo, dado que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es en realidad innecesario. De esta manera, la Anchor Platform puede considerarse como que proporciona una forma alternativa de autenticación. - -El negocio es libre de seguir exigiendo que los usuarios se autentiquen usando su sistema existente, pero la experiencia de usuario ideal omitiría este paso y crearía una sesión autenticada para el usuario si ya se ha autenticado usando su cuenta Stellar. - -La Anchor Platform añade un parámetro de consulta `token` JWT a la URL del negocio proporcionada a la aplicación de billetera. Este token está firmado por el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` previamente configurado, y contiene la información que necesitas para identificar al usuario. El proceso debería verse algo así: - -1. Pasa el `token` agregado a la URL de tu sistema backend -2. Verifica la firma en el `token` y comprueba su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -El contenido decodificado del `token` se verá algo así: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Ten en cuenta que el valor `sub` identifica al usuario usando una cuenta Stellar e integer. Este será el valor cuando las aplicaciones de custodia que utilizan una cuenta omnibus se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentiquen, el token puede verse ligeramente diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticar. - -En ambos casos, toda la información en el objeto `data` es opcional, y solo estará presente si la billetera proporciona esa información. - -Vamos a añadir un servidor backend a nuestro archivo de composición que se utilizará para verificar el token y crear sesiones web autenticadas para usuarios que inician transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Vamos a crear un contenedor Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora vamos a crear una aplicación mínima NodeJS. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend que autentica a un usuario usando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de la plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionando Actualizaciones a la Plataforma - -Vamos a crear un endpoint para nuestro servidor de negocio que acepte la información recopilada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": req.body.amount_fee.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá a las aplicaciones de billetera recuperar esta información actualizada para poder transmitirla de nuevo al usuario. Deberías haber informado ya al usuario sobre los montos de la transacción y que tu negocio está esperando a que llegue el pago en on-chain, pero proporcionar estas actualizaciones permite a los usuarios ver el estado de sus transacciones a través de su aplicación móvil sin tener que abrir la interfaz de usuario del negocio de nuevo. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando los estados de las transacciones cambian, sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "peticiones de callback" para que las aplicaciones de billetera no tengan que consultar a la Anchor Platform para actualizaciones. - -::: - -## Recuperando Actualizaciones de la Plataforma - -Si solo usas la Anchor Platform para exponer las APIs SEP a las aplicaciones de billetera, entonces no tendrás una razón fuerte para recuperar actualizaciones del estado de las transacciones desde la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que realices solicitudes de `JSON-RPC API`. - -Sin embargo, si usas la Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados con transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando se reciban pagos. - -Hay dos formas de recuperar actualizaciones de la Anchor Platform, - -- Consultando el endpoint `GET /transactions/:id` de la API de la plataforma para las transacciones de las cuales esperas un pago -- Transmitiendo eventos de cambio de estado de transacción desde un clúster de Kafka - -Si bien transmitir cambios de estado de transacción desde un clúster de Kafka puede ser un enfoque más robusto y escalable, vamos a usar el método de consulta en esta guía. Configurar y usar un clúster de Kafka será el tema de una sección diferente de la documentación. - -Primero, vamos a configurar la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:2.9.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` para pagos de retirada de fondos. - -Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará que la transacción asociada con ese memo ha sido recibida y actualizará el estado de la transacción a `pending_anchor`. Lo hace mediante una solicitud de `JSON-RPC API`, por lo que necesitamos configurar la URL que debe usar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Vamos a hacer algunas adiciones al archivo `server.js` para que podamos consultar a la Anchor Platform por nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación de Ejemplo Completo - -Stellar proporciona una implementación de ejemplo de servidor de negocio para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación backend, utilizada para obtener y enviar actualizaciones desde/hacia la Anchor Platform. - -El código para la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código para el backend es parte de la Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/faq.mdx deleted file mode 100644 index 77d18fd409..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas Frecuentes -sidebar_position: 50 ---- - -### ¿Cómo utilizar JWTs? - -Como parte del flujo, una vez que un usuario realiza una solicitud, es decir, una solicitud interactiva de retirada/deposito, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform realizará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. `exp` es el tiempo de caducidad del token. Debes verificar que el token proporcionado no haya caducado. `sub` es la cuenta asociada con esta transacción. Puede ser utilizada para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. -2. `jti` es el hash de la transacción. Puede ser utilizado para identificar la cuenta del usuario. Nota que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. -3. `jti` es el hash de la transacción. -4. `data` es la carga adicional que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que desea depositar o retirar. Si lo proporciona el cliente, también contendrá el `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificado durante la autenticación SEP-10, y `client_name` (definido como 'name' en la configuración de [clients] si está proporcionado), y la preferencia de `lang` (idioma) del usuario. - -### ¿Cómo proporcionar tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de cambio en el iFrame/vista web de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` para permitir a las empresas establecer tarifas estáticas para sus transacciones. Sin embargo, actualmente no está admitido por la Anchor Platform. - -:::note - -El endpoint /fee será descontinuado en el futuro. - -::: - -### ¿Cómo identificar la cuenta del usuario? - -Debes usar el campo `sub` del token JWT. Para billeteras custodiales, este valor estará en el formato `account:memo`. Utiliza el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí, que será igual a la cuenta del usuario. - -### ¿Cómo identificar la billetera? - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración de [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, permitiendo la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clientes]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index 3095c86503..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te llevará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el apoyo de la Anchor Platform para SEP-24, las empresas hacen que su servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, extendiendo su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y de haber configurado las características necesarias requeridas por SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap] - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito y una retirada de fondos es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información de KYC y transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede usar entonces el activo digital en la red Stellar para remesas, pagos, trading, reserva de valor o cualquier otro caso de uso no mencionado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticar con el anchor, la billetera abre la URL interactiva proporcionada y permite al cliente ingresar su información de transacción (KYC ya ha sido recopilada) -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo de activos del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/integration.mdx deleted file mode 100644 index ce01c1af35..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con Anchor Platform es notificar a Anchor Platform sobre eventos relacionados con la transacción. - -En general, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza mediante solicitudes JSON-RPC al endpoint de la API de la Platform. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por este método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API se llamará cada vez que un usuario o el anchor realice alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes obtener más información sobre el flujo y estados de la transacción en el [documento del protocolo SEP-24][sep-24] - -## Callbacks - -Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre cotizaciones. - -### Cotizaciones y Tarifas - -Para admitir el intercambio de activos no equivalentes, Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se usa para proporcionar al usuario el monto esperado del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se usa para brindar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a Anchor Platform. - -## Asegurando la API de la Platform - - - -### Uso de clave API - - - -### Uso de JWT - - - -## Realizando solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de error - - - -## Actualizando la transacción de depósito vía JSON-RPC - -El diagrama de flujo de depósito SEP-24 define la secuencia/reglas de transición de estados de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo significan que la transacción está en estado de error o ha caducado. - -::: - -### Listo para recibir fondos - -El primer paso del flujo de depósito después de iniciar el depósito es la recopilación de KYC. Normalmente se realiza en la aplicación web, pero también puede proporcionarse opcionalmente a través de la aplicación de billetera, usando [SEP-9]. Una vez recolectado el KYC necesario, se debe hacer una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está establecido a USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. - -La información sobre las cantidades (entrada/salida/tarifa) es requerida si quieres mover la transacción del estado `incomplete` a `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de las cantidades. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso KYC es largo (por ejemplo, verificación de identificación), se recomienda primero establecer el estado de la transacción a `pending_anchor` usando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC se está procesando. - -::: - -### Procesando información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo y pasar al [siguiente paso](#funds-received). - -Se recomienda usar este estado cuando la verificación KYC debe realizarse de forma asíncrona. - -::: - -**Debes** especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de los fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de cantidad son opcionales. Si se omiten, se tomarán los valores de las solicitudes JSON-RPC previas. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando los fondos del usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indica que la confirmación de la transferencia ha sido recibida pero los fondos aún no han llegado. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando fondos onchain - -A continuación, envía una transacción en la red Stellar para cumplir con la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de transacción en Stellar network del transfer - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción pasará al estado `completed`. - -### Enviando pago a través de servicio de custodia - -Anchor Platform proporciona la posibilidad de enviar un pago a través de servicios de custodia, como Fireblocks. Para hacer un pago vía servicio de custodia, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, Anchor Platform automáticamente realizará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta haya establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor espera que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, Anchor Platform realizará esta validación automáticamente por ti. - -::: - -### Confianza pendiente - -Este estado debe establecerse si un pago requiere una trustline de activo que el usuario no configuró. Hay dos formas en que la transacción puede moverse al estado `pending_trust`. La primera es el procesamiento de un pago a través de un servicio de custodia si se detecta que la trustline no está configurada. La segunda es cuando el negocio detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago vía servicio de custodia verifica periódicamente si la trustline fue configurada. Si lo fue, automáticamente enviará un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Trust Set - -Este estado debe establecerse si el negocio ha detectado que el usuario configuró o no la trustline. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si el usuario configuró o no la trustline - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no lo fue. - -::: - -### Enviando reembolso vía servicio de custodia - -Existe la posibilidad de enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar la suma completa (reembolso completo) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar parte de la suma y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción será `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado cambiará a `refunded`. - -::: - -### Reembolso pendiente - -Es similar a [Reembolso enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción es `pending_external`. Este estado se establece cuando se espera que la red externa de Bitcoin u otra criptomoneda complete la transacción, o cuando se espera una transferencia bancaria. - -### Error de transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción y luego puedes reintentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción caducada - -Tu negocio puede querer expirar transacciones que han sido abandonadas por el usuario después de cierto tiempo. Es buena práctica limpiar transacciones inactivas en estado `incomplete`. Para ello, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya realizado una transferencia. - -::: - -### Transacción en espera - -En casos raros, puedes querer pausar la transacción actual y solicitar más información al usuario (después de que se haya recibido la transferencia). Esto puede usarse para casos de cumplimiento. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar procesando la transacción. Para recuperar una transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando la transacción de retirada vía JSON-RPC - -Este diagrama define una secuencia/reglas de transición de estados para el flujo de retirada SEP-24. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo significan que la transacción está en estado de error o ha caducado. - -::: - -Una vez finalizado el flujo de depósito, implementar la retirada es sencillo. Algunas partes del flujo son similares y se pueden reutilizar. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio recibirá transacciones a través de la red Stellar, la actualización se verá diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` valor del memo para adjuntar a la transacción -- `memo_type` tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account` cuenta destino - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige el `deposit_info_generator_type` correspondiente. También puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único; esto ayuda a asociar las transacciones Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, Anchor Platform puede generar memos por ti. Cuando el estado cambia a `pending_user_transfer_start`, Anchor Platform establece el `memo` y `memo_type` automáticamente (solo si no se incluye en la solicitud). - -::: - -:::note - -La cuenta Stellar que usará para recibir fondos debe estar configurada. - -::: - -### Procesando información KYC - -Este paso es opcional y es similar a [Procesando información KYC](#processing-kyc-information) del flujo de depósito. - -### Fondos recibidos - -Si se recibieron fondos onchain, debes proporcionar las cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad actualizada - -Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan al `amount_in` real. En este caso, el estado de la transacción no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos offchain disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y está listo para que el usuario/receptor los recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona igual que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviando reembolso vía servicio de custodia - -La integración con un servicio de custodia permite hacer un reembolso vía servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Transacción en espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción en espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[manejo-eventos]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 6f77fb9b21..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un servidor de producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté en vivo y hayas probado tanto los flujos de depósito como de retiro, es hora de comenzar con el despliegue real conectado a KYC real y a proveedores de banking rails reales. Antes de usar cualquier API bancaria, es fundamental que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Desplegando un entorno seguro - -Asegúrate de mantener el servidor de prueba activo y de desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas características en el testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en esta base de código y/o si habrá muchos envíos que probar internamente antes de compartirlos con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, simplemente tienes que cambiar la [frase de paso](/docs/networks#network-passphrases) de la red (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia la configuración de Anchor Platform en el archivo `production.env`: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectando a KYC real - -La mayoría de los anchors necesitan recopilar información de [Conozca a su Cliente](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con las regulaciones locales antes de honrar depósitos y retiros. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejes el KYC depende de ti: hay muchos servicios que proporcionan soluciones de KYC a través de APIs e iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar requisitos. Cada jurisdicción tiene requisitos específicos de KYC, y difieren de una jurisdicción a otra, por lo que es mejor encontrar un proveedor de KYC específico del país que se ajuste a tus necesidades. - -Al algunos países requieren diferentes campos de KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios de KYC según la cantidad de depósito o retiro, simplemente agrega un campo de cantidad antes del formulario de KYC y asegúrate de que los campos de KYC se actualicen según ese valor. - -La información de KYC debe estar vinculada a la sesión creada a través de [Stellar Web Authentication](../sep10/README.mdx) y, en consecuencia, al usuario, por lo que solo necesitas pedirle al usuario una vez. Después de que el primer flujo de KYC esté completo, un usuario no debería tener que ingresar la información nuevamente. - -Asegúrate de que los mensajes de error y validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También debes localizar los mensajes según el idioma y la ubicación del usuario. - -## Rellenando previamente el formulario de KYC - -Rellenar previamente el formulario de KYC es una excelente manera de reducir la fricción al comenzar a usar un anchor, y las billeteras normalmente proporcionan un conjunto de campos que se utilizan comúnmente en todo el ecosistema. En resumen, el anchor puede renderizar el formulario de KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, debes permitir que los campos pre-rellenados sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera y podría querer editarlo antes de finalizar el proceso de KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [JWT interactivo](./faq.mdx#how-to-use-jwts), enviado por la Anchor Platform - -## Conectando a banking rails reales - -Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado por un activo real subyacente y se puede canjear por él, los emisores de tokens respaldados por fiat necesitan conectarse a banking rails reales para validar los depósitos de los usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y para completar los retiros de los usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiros de un token que otra organización emite, seguirás un proceso similar. - -Para recuperar (e identificar) una transferencia de usuario, los emisores suelen elegir uno de dos enfoques: - -- Polling de API: esta opción consiste en recuperar la API del banco, a través de un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todos los banking rails admiten esta opción, pero es la más sencilla en términos de lógica de back-end. En este enfoque, el banco activa proactivamente el endpoint de un emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede entonces igualar esa transacción a un depósito en proceso existente y validar que el usuario puede recibir sus fondos digitales - -Hay muchas formas de identificar que una transferencia bancaria específica se relaciona con un depósito específico (y, en consecuencia, con un usuario). Al algunos bancos (y países) tienen infraestructura de transferencia que permite la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualar eso con la información proporcionada en el formulario de KYC. - -Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando se establezcan conexiones con banking rails. Al algunos bancos proporcionan una API de prueba que se puede usar para desarrollo y despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria lista para producción. Para mejorar la seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar los transferencias de retiro. En términos de UX, esta aprobación manual es aceptable siempre que los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no sean más largos que un par de horas. - -## Probando casos extremos - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporte como se espera. Aquí hay una lista de sugerencias de prueba que deberían cubrir una gran cantidad de los casos extremos de la aplicación: - -### Pruebas generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz utilizando información de configuración regional distinta, y verifica el contenido traducido incluyendo mensajes de error, respuestas, formato de fecha y formato numérico - -### Pruebas de KYC - -- Verifica que KYC aparezca con un nuevo SK de billetera -- Verifica que KYC no acepte entradas con formato incorrecto, y que los mensajes de error sean comprensibles -- Verifica que puedas usar la misma información de KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) múltiples veces -- Verifica que puedas pasar por KYC múltiples veces con el mismo SK de Stellar. - -### Prueba interactiva - -- Verifica que el flujo de depósito se complete, y que los banking rails estén funcionando -- Verifica que no puedes hacer un retiro con un valor superior al saldo actual -- Verifica que el flujo de retiro se complete, y que los banking rails estén funcionando - -### Pruebas de seguridad - -- Asegúrate de que los endpoints de la plataforma estén asegurados - -## Pulido e internacionalización - -Apoyar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan a través de las pantallas, y apoya a instituciones internacionales (como billeteras) que necesitan probar el producto antes de comenzar nuevas integraciones. - -Puedes soportar múltiples idiomas en tu aplicación web utilizando el parámetro `Accept-Language` de los encabezados de solicitudes http para localizar el contenido y permitir que los usuarios cambien eso de manera simple (por ejemplo, un ícono de bandera en la barra superior). Si una billetera específica no envía el parámetro del encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al comienzo de los procesos de depósito y retiro. Una vez que un usuario elija un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de verificar el formato de números, fechas, etc. - -Tener un grupo de beta testers es una excelente manera de verificar si hay algún caso extremo que necesita pulirse, y para confirmar que el sistema funciona bien con una variedad de entradas de usuarios. Puedes realizar pruebas beta utilizando una etapa de lanzamiento suave antes de comenzar a esforzarte en marketing y distribución. Documentar el proceso de prueba con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y da claridad y confianza a nuevos socios y usuarios potenciales en el producto. - -## Conectando a billeteras - -Todas las interacciones de usuario de Anchor se realizan a través de una billetera, por lo que es vital que los anchors estén conectados a billeteras que tengan buena penetración en el mercado en la región donde se centra más el negocio. Conectar con billeteras es un proceso simple, ya que ambos extremos de esa integración ya cumplen con las SEP. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente soportan SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta de emisor es una excelente manera de comenzar a atraer algunos usuarios reales al Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/README.mdx deleted file mode 100644 index f59a1652fa..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos transnacionales -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual billeteras y/o exchanges interactúan con el conjunto existente de servicios de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/configuration.mdx deleted file mode 100644 index bbf0df40e2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un Archivo de Información Stellar - -Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que utilice la frase de contraseña de una red pública, las URL de tu servicio de producción, tus cuentas de distribución de mainnet y la clave de firma, así como las cuentas emisoras de mainnet de los activos que utiliza tu servicio. - -## Habilitar Pagos Transnacionales - -Ahora estás listo para habilitar los pagos transnacionales a través de la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - send: - min_amount: 0 - max_amount: 10000 -``` - - - -La información proporcionada en los objetos `sep31` y `send` mapea estrechamente a la información que será expuesta a la aplicación de billetera utilizando el endpoint SEP-31 [`GET /info`][sep31-get-info]. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y será eliminado en una futura versión, pero puedes ajustar los valores `send.min_amount` y `send.max_amount` de acuerdo con los límites de tu servicio. - -Los valores `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y están obligadas a solicitar una tasa de cambio utilizando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de proceder. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los remitentes ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté en vivo. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API KYC del Cliente - -Las empresas necesitan recopilar y validar la información KYC de los clientes para quienes facilitan transacciones. Los clientes determinan qué información KYC debe ser recopilada y envían esa información a través de una API KYC SEP-12 hospedada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En su lugar, reenvía solicitudes de los clientes al servidor de la empresa y devuelve las respuestas de la empresa al cliente, actuando como un servidor proxy. - -Consulta la [especificación de la API KYC de la Anchor Platform][platform-api-kyc] para detalles sobre los endpoints que deben implementarse en el servidor de tu empresa. - -Para hacer esta API disponible para los clientes, añadamos la URL del servicio a nuestro Archivo de Información Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Habilitemos también en nuestro entorno. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, tenemos que definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transnacionales en dos jurisdicciones regulatorias distintas, de manera que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y serían representados usando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente excluyentes, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación está en su lugar porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como una que envíe una gran cantidad. Solo puede validar que un cliente está aprobado para uno de los tipos de clientes definidos. Esta limitación se eliminará en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente que envía y un tipo de cliente que recibe. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Hagamos ping al endpoint de info nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - }, - "sep12": { - "sender": { - "types": { - "sep31-sender": { - "description": "customers sending to recipients" - } - } - }, - "receiver": { - "types": { - "sep31-receiver": { - "description": "customers receiving from senders" - } - } - } - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Las empresas necesitan proporcionar a sus contrapartes del lado enviador una API [Rate][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo on-chain que se está utilizando para la liquidación y el activo fiduciario que se utilizará para pagar al destinatario. Si la tasa es competitiva, los remitentes también necesitan poder solicitar un compromiso con la tasa que se está ofreciendo actualmente desde el negocio por un breve período de tiempo. - -La Anchor Platform proporciona la API [SEP-38 RFQ][sep38] a los remitentes para este propósito. - -Para hacer esta API disponible para los clientes, añadamos la URL del servicio a nuestro Archivo de Información Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Habilitemos también en nuestro entorno. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar que se use USDC en esta API, así como agregar un activo off-chain con el que se pueda intercambiar. - - - -```yaml -# dev.assets.yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31_enabled: true - sep38_enabled: true - send: - min_amount: 0 - max_amount: 10000 - sep31: - quotes_supported: true - quotes_required: true - fields: - transaction: {} - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders - sep38: - exchangeable_assets: - - iso4217:BRL - country_codes: - - BRA - - schema: iso4217 - code: BRL - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BRA - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté en vivo! Siguiendo `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BRA"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar la Autenticación de la API de Callback - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Añadamos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` usa `server` en lugar de `localhost` como el host porque la Anchor Platform hará solicitudes a tu servidor empresarial desde dentro de la red local creada por docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -Definiremos el servidor que implementa los endpoints definidos en la API de Callback en la siguiente sección. - -:::caution - -Ten en cuenta que a partir de la versión 2.x, los segmentos de ruta no son admitidos en `CALLBACK_API_BASE_URL` (como `http://server:8081/myPath`). - -::: - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 9cd78eb5ef..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de recepción de pagos transnacionales compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transnacionales. - -Aprovechando el soporte de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios de envío de Stellar. - -:::info - -A medida que mejoramos la documentación, partes de esta guía que son relevantes para otros casos de uso pueden ser trasladadas a secciones propias. - -::: - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/integration.mdx deleted file mode 100644 index 7c27ecb19b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrar con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recopilar datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de cambio entre los activos on-chain y off-chain admitidos -- `GET /transactions` solicitudes para obtener actualizaciones sobre el estado de las transacciones de la Anchor Platform (documentación próximamente) -- [`JSON-RPC`][json-rpc-methods] solicitudes para actualizar el estado de las transacciones de la Anchor Platform - -Lo siguiente también puede ser necesario dependiendo de tu caso de uso: - -- [`GET /fee`][get-fee] si tu negocio quiere ofrecer a los remitentes la opción de omitir el paso de creación de cotización -- [`GET /unique_address`][get-unique-address] si tu negocio utiliza un servicio de custodia para activos on-chain -- [`DELETE /customer`][delete-customer] si tu negocio quiere o está obligado a permitir que los remitentes soliciten la eliminación de los datos del cliente - -## Crear un servidor de negocios - -Primero, vamos a crear un servidor de negocios y agregarlo a nuestro archivo docker compose. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:2.9.0 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:2.9.0 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web simple usando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar exitosamente los tres servicios. - -Esta guía no proporciona una implementación de ejemplo de los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia de la API de Anchor Platform][ap-api], y las secciones a continuación expandirán sobre conceptos importantes a entender al implementar los puntos finales. - -## Puntos finales de callback del cliente - -La Anchor Platform nunca almacena la PII de tus clientes, y en su lugar actúa como un servidor proxy entre las aplicaciones clientes y tu negocio, reenvíando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación de la API KYC SEP-12][sep12]. - -### Identificar clientes - -Los clientes pueden ser identificados usando dos enfoques. - -El primer enfoque utiliza una cuenta Stellar y un memo. Al usar la Anchor Platform para facilitar pagos transnacionales, la organización remitente usa su propia cuenta Stellar, la que se utiliza para autenticar a través de [SEP-10 Stellar Authentication][ap-sep10], al registrar a los clientes con tu negocio. Los memos se utilizan para distinguir a clientes únicos que provienen de la misma organización remitente. - -El segundo enfoque utiliza los ID de los clientes generados por tu servicio. Por ejemplo, si una organización remitente está registrando un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica la organización remitente, y el memo `780284017` identifica al cliente. Los memos son generalmente enteros de 64 bits, pero también pueden ser otros tipos de datos, por lo que deben guardarse como cadenas. En respuesta, tu negocio deberá retornar un ID de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor de negocios puede usar cualquier identificador para clientes siempre que sea una cadena. - -Luego del registro de un cliente, la organización remitente puede usar cualquiera de los dos enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir una solicitud `GET /customer` como la siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización remitente podría usar el identificador que devolviste cuando registraron originalmente al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio deberá mantener un mapeo entre la cuenta y el memo utilizados para registrar originalmente al cliente y el ID que devuelves en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podríamos mantener este mapeo para tu negocio para que solo tengas que trabajar con los IDs que generas. - -### Tipos de clientes - -Tu negocio probablemente requiere diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes deberán entender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, debes usar el tipo pasado para evaluar si el remitente ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, debes usar el tipo para determinar el estado del cliente. - -### Probar con la billetera de demostración - -Puedes probar tu implementación con la [Billetera de Demostración Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar activo" e introduce el código del activo y el dominio principal de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar línea de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver que la billetera de demostración encuentra las URL de tu servicio, autentica y comprueba qué campos KYC necesita recopilar. Luego debería presentar un formulario para que introduzcas los detalles KYC para el remitente y el receptor. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, enviará esa información a la Anchor Platform, que la enviará a tu servidor de negocios. Una vez que la billetera de demostración tenga los ID de los clientes que generaste, iniciará una transacción que debería fallar. - -## Punto final de callback de tarifas - -Una vez que la organización remitente ha registrado a los clientes involucrados en la transacción, deberá solicitar una cotización, o tasa de cambio, a tu negocio. La Anchor Platform solicita esta información a tu servidor de negocios utilizando el [`GET /rate` endpoint][get-rate]. - -### Cotizaciones firmes vs. indicativas - -Las solicitudes de cotizaciones tendrán un parámetro `type` que es [`indicative`][indicative] o [`firm`][firm]. Si `type=firm`, tu respuesta debe incluir el campo `id` y `expires_at` y reservar la liquidez necesaria para cumplir con esta cotización hasta que la cotización caduque. Si `type=indicative`, no devuelvas los campos `id` o `expires_at` porque la tasa proporcionada no se utilizará en una transacción. - -Ten en cuenta que el cliente puede solicitar que la cotización caduque después de una fecha-hora específica utilizando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor `expires_at` que esté en o después de la fecha-hora solicitada o rechazar la solicitud con una respuesta 400 Bad Request, que será reenviada al cliente. - -### Usando el ID del cliente - -Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para adherirte a los términos comerciales acordados con esa organización remitente, como ofrecer tarifas con descuento. `client_id` puede no estar presente para solicitudes indicativas, en cuyo caso deberías devolver tu precio de mercado. Actualmente `client_id` siempre será la clave pública Stellar que la organización remitente utilizó para autenticar con la Anchor Platform. - -### Métodos de entrega - -Es común que las tarifas y cargos de las empresas difieran dependiendo de los rails de pago utilizados para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán el rail de pago que desean que tu negocio use para solicitudes de cotización firmes. - -Dado que este punto final actualmente solo se utiliza para pagar remesas en activos off-chain, se utilizará `buy_delivery_method`. Si este punto final se usa en otros flujos de transacción como depósitos SEP-24, entonces `sell_delivery_method` también puede ser pasado para negocios que soporten estos tipos de transacciones. - -## Obteniendo actualizaciones de estado de transacción - -Para facilitar pagos transnacionales, deberás ser capaz de detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar qué transacción estaba destinado a cumplir. - -La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacciones correspondiente con información sobre el pago. Tu negocio puede detectar estas actualizaciones consultando el punto final de la API de la Plataforma `GET /transactions`. - -### Ejecutando el Stellar Observer - -El Stellar Observer monitorea el ledger Stellar para pagos realizados a tu(s) cuenta(s) y actualiza los registros de transacciones correspondientes con información sobre pagos on-chain. Para ejecutar el observador, agrega lo siguiente a tu archivo docker compose. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:2.9.0 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Consultando los pagos recibidos - -El Stellar Observer realiza solicitudes JSON-RPC a la API de la Plataforma cada vez que detecta pagos recibidos para transacciones iniciadas por organizaciones remitentes, actualizando así la fecha-hora `transfer_received_at` de la transacción. - -Tu negocio debería consultar periódicamente el punto final de la API de la Plataforma `GET /transactions` para detectar estas actualizaciones. Puedes consultar el siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pago transnacional iniciadas por organizaciones remitentes. Esta lista estará ordenada según la hora en que se recibió un pago para esa transacción. Para cada transacción devuelta, tu negocio debe verificar si ya ha detectado el pago para esa transacción. Si es así, has detectado todos los pagos realizados a tu(s) cuenta(s). - -## Actualizando la transacción a través de JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y pueden omitirse. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para recibir fondos - -Las transacciones SEP-31 deberían inicialmente estar en el estado `pending_sender`. El Anchor receptor espera recibir el pago identificado por el stellar_memo incluido en la respuesta POST /transactions. - -Una vez que tu negocio detecta que ha recibido un pago on-chain para una transacción específica, debe actualizar el estado de la transacción. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción cambiará a `pending_receiver`. - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero no ha sido confirmado aún. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verificando la información del cliente - -En algunos casos, el Anchor receptor podría necesitar solicitar información actualizada del Anchor remitente. Por ejemplo, el banco le dice al Anchor receptor que el nombre del cliente receptor proporcionado es incorrecto o le falta un segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debería entrar en el estado `pending_customer_info_update` hasta que el Anchor remitente haga otra solicitud SEP-12 `PUT /customer` para actualizar. El Anchor remitente puede verificar qué campos necesitan ser actualizados haciendo una solicitud SEP-12 `GET /customer` incluyendo los parámetros id o cuenta y memo. El Anchor receptor debería responder con un estado `NEEDS_INFO` y `last_name` incluido en los campos descritos. - -Después de que el Anchor remitente haga una solicitud SEP-12 `PUT /customer`, llama al método JSON-RPC `notify_customer_info_updated` otra vez para actualizar el estado de la transacción. Adicionalmente, llama a este método cada vez que cambie el estado SEP-12 de un cliente, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente le pida al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Hacer reembolso Stellar - -La integración con el servicio de custodia te permite hacer reembolsos a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto total del reembolso más la tarifa debería ser igual a `amount_in`. De lo contrario, obtendrás un error. - -::: - -### Reembolso enviado - -Hay una posibilidad de enviar todos los fondos de vuelta al `Anchor remitente` (reembolso). Necesitas reembolsar la suma total (reembolso completo). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa debería ser igual a `amount_in`. De lo contrario, obtendrás un error. - -::: - -### Error de transacción - -Si encuentras un error irrecuperable al procesar la transacción, se requiere establecer el estado de la transacción a `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de la transacción, y luego puedes reintentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar aquellas transacciones que han sido abandonadas por el usuario después de algún tiempo. Es una buena práctica limpiar las transacciones inactivas que están en estado `incompleto`. Para hacerlo, simplemente cambia el estado de la transacción a `caducado`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede usar después de que el usuario ha realizado una transferencia. - -::: - -### Recuperación de Transacciones - -El estado de la transacción se puede cambiar de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Punto Final de Callback de Tarifa - -Tu negocio puede querer ofrecer a las organizaciones remitentes la opción de omitir el proceso de creación de cotizaciones, permitiendo que tu negocio use una tarifa determinada en el momento en que los fondos se entregan al destinatario. En este caso, la Anchor Platform no realizará una solicitud `GET /rate`, pero aún necesitarás proporcionar la tarifa que tu negocio cobrará por estos tipos de transacciones usando el endpoint [`GET /fee`][get-fee]. - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -assets: - - ... - sep31: - quotes_required: false -``` - - - -## Punto Final de Callback de Dirección Única - -Las empresas deben proporcionar una cuenta Stellar única y un par de notas para cada transacción solicitada por las organizaciones remitentes para que la Anchor Platform pueda identificar y mapear el pago on-chain enviado para la transacción específica. La Anchor Platform puede generar estos pares de cuenta y notas por sí misma, pero la mayoría de las empresas utilizan un servicio de custodia para recibir pagos on-chain. En este caso, el negocio debe solicitar al custodio que genere la cuenta Stellar y la nota. Esto se hace utilizando el endpoint [`GET /unique_address`][get-unique-address]. - -### Configuración - -Para configurar la Anchor Platform para hacer estas solicitudes, agrega lo siguiente a tu configuración: - - - -```bash -# dev.env -SEP31_DEPOSIT_INFO_GENERATOR_TYPE=api -``` - - - -:::caution - -Este endpoint puede ser eliminado durante futuras actualizaciones de versión principales de la Anchor Platform, cuando se agregue soporte para conectar con servicios de custodia y generar estas direcciones automáticamente. - -::: - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: ../../api-reference/callbacks/gen-address.api.mdx -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[get-fee]: ../../api-reference/callbacks/get-fee.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/README.mdx deleted file mode 100644 index 463b9765b9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas de fondos programáticos -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio por el cual las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, sin requerir que el usuario interactúe directamente con el on & off-ramp. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 57dd1cb30e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar depósitos y retiradas SEP-6, se debe configurar la Anchor Platform para hacer lo siguiente: - -- Proporcionar las URL de servicio necesarias para los endpoints SEP-6, 12 y 38 en el archivo `stellar.toml` -- Proporcionar información sobre los activos en cadena y fuera de cadena, así como sobre los métodos de pago, admitidos por tu negocio a través de los endpoints `/info` SEP-6 y SEP-38 -- Admitir los endpoints y callbacks necesarios para solicitar información KYC y proporcionar tasas de exchange - -## Habilitar Depósitos y Retiradas Programáticas - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un Archivo de Información Stellar - -Vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 es admitida por tu negocio, y también necesitan saber todos los activos Stellar que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Nota que necesitarás crear otro archivo para tu despliegue de producción que use la frase de paso de la red pública, tus URL de servicio de producción, tus cuentas de distribución Mainnet y la clave de firma, así como las cuentas emisoras Mainnet de los activos que utiliza tu servicio. - -### Modificar el Archivo de Configuración de Activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores dependiendo de tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para el USDC de Circle y un fiat USD para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que se expondrán por el endpoint SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que se expondrán por el endpoint SEP-6 [`GET /info`][sep-6]. Los métodos listados deben coincidir con los métodos definidos en la sección SEP-38 del archivo. También nota que los activos fiat, aquellos con `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit`, o `withdraw` especificados. - -Ten en cuenta que los activos fiat, aquellos con `schema: iso4217`, no necesitan que se especifiquen los objetos de configuración `sep6_enabled`, `deposit` o `withdraw`. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods` especificados. - - - -```yaml -assets: - - schema: stellar - code: USDC - issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6_enabled: true - sep38_enabled: true - sep38: - exchangeable_assets: - - iso4217:USD - deposit: - enabled: true - methods: - - ACH - withdraw: - enabled: true - methods: - - ACH - - schema: iso4217 - code: USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Gestión de Cuentas de Distribución - -Nota que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta se proporcionará junto con un memo único y generado aleatoriamente por transacción a los clientes como la dirección a la que enviar fondos para transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar usas un tercero que te proporciona una cuenta Stellar y un memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, deberías omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y el memo que te gustaría usar para recibir fondos mediante una solicitud a la Anchor Platform [`request_onchain_funds`][request-onchain-funds] por transacción. - -Para configurar la Anchor Platform para esperar que se proporcione la cuenta Stellar y el memo a través de la API en lugar de configurados a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si utilizas un proveedor de billetera admitido por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billetera para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también utilizará el proveedor de billetera para enviar fondos a los clientes. Consulta la sección [servicios de custodia] para más información sobre cómo configurar esta función, pero primero tendrás que especificar un valor diferente para la variable de entorno mencionada anteriormente. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar Callbacks al Servidor de Negocios - -Las empresas necesitan recopilar y validar la información KYC de los clientes para los que están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC debe recopilarse y envían esa información a través de la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información de identificación personal (PII). En cambio, reenvía solicitudes de clientes al servidor de negocios y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Además, las empresas necesitan proporcionar a los clientes una API [Rates][get-rates-api] para comprobar las tasas de exchange que están ofreciendo entre los activos en cadena y fuera de cadena admitidos por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso con la tasa actualmente ofrecida por el negocio por un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor de negocios para obtener tasas de exchange y cotizaciones y las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor de negocios, primero tendrás que agregar tu servidor de negocios al archivo docker compose. Luego, para admitir solicitudes a tu servidor de negocios desde la Anchor Platform, necesitas habilitar callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado de `Authorization` de las solicitudes hechas a `/callbacks/` para que tu servidor pueda autenticar la Anchor Platform antes de procesar las solicitudes. - -`more_info_url` es una URL opcional proporcionada por tu servidor de negocios para que las aplicaciones de billetera muestren información sobre transacciones iniciadas previamente. Esta URL es típicamente utilizada por billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se mostrará sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Consulta las [API KYC][platform-api-kyc] y [Rates API][sep38] para obtener detalles sobre los endpoints que deben implementarse en tu servidor de negocios. - -## Probar con la Billetera de Demostración - -¡Las billeteras ya deberían ser capaces de descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían lucir ahora algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno debería lucir ahora algo similar a lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [Billetera de Demostración Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crea un nuevo keypair -- Haz clic en el botón "Agregar Activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "Depósito SEP-6", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index 2508918886..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas programáticas. - -Al aprovechar el apoyo de la Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia en la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectándose con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera autentica con el anchor, el cliente comienza a ingresar su información de KYC y transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiat real con el anchor (como transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede luego utilizar el activo digital en la red Stellar para remesas, pagos, trading, reserva de valor, o otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticar con el anchor, el cliente puede ingresar su información de transacción y cualquier información adicional de KYC que no se haya recopilado ya -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de cualquier método admitido por el anchor (como transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/integration.mdx deleted file mode 100644 index 396666cf7d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Plataforma sobre eventos relacionados con las transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó los montos de entrada/salida/tarifa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al endpoint de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por el método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API será llamada cada vez que un usuario o el anchor tome alguna acción que progrese el estado de la transacción en el flujo. - -La comunicación de Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una característica opcional que necesita ser configurada separadamente de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes encontrar más información sobre el flujo de transacciones y estados en el [documento de protocolo SEP-6][sep-6]. - -## Callbacks - -La Anchor Platform depende del servidor empresarial para proporcionar y almacenar información sobre clientes y cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información del cliente. En su lugar, reenvía todas las solicitudes de clientes SEP-12 al servidor empresarial. El servidor empresarial es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor empresarial debe implementar las [APIs de clientes][customer-callback] para manejar las actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para admitir el exchange de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se usa para proporcionar al usuario el monto esperado del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se usa para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor empresarial debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Usando la Clave API - - - -### Usando JWT - - - -## Haciendo Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando la Transacción de Depósito (Exchange) a Través de JSON-RPC - -El diagrama de flujo de depósito SEP-6 define las secuencias/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de depósito exchange es el mismo que el flujo de depósito, excepto que los montos no necesitan ser recalculados al solicitar fondos offchain, si el usuario ha proporcionado una cotización firme del anchor. - -[![diagrama de flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Verificando la Información KYC - -Aunque la Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice una transferencia. Al escuchar eventos de transacciones creadas, o al consultar el [`GET /transactions`][get-transactions] endpoint, puedes determinar si una transacción requiere que el cliente actualice su información. Los campos requeridos de SEP-9 pueden ser comunicados al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - -Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Además, llama a este método siempre que el estado SEP-12 de un cliente cambie, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente le pida al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es el monto total de tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, está establecido a USD, asumiendo que el usuario realizó una transferencia bancaria al sistema utilizando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y el número de cuenta `123456789`. - -La información sobre los montos (entrada/salida/tarifa) es requerida si quieres mover la transacción al estado `pending_user_transfer_start`. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -### Fondos Recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada sobre la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de los fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de montos son opcionales. Si se omiten, se utilizarán los valores previos a esta solicitud. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de la transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero que los fondos en sí aún no han sido recibidos. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar haya sido presentada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos han sido enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción será transferida al estado `completada`. - -### Enviando Pago a Través del Servicio de Custodia - -La Anchor Platform ofrece la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para hacer un pago a través de un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform automáticamente hará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completado`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [línea de confianza](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor está esperando que el usuario establezca la línea de confianza. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una línea de confianza de un activo que no fue configurada por el usuario. Hay dos maneras en que la transacción puede moverse al estado `pending_trust`. La primera es el procesamiento de un pago a través de un servicio de custodia en caso de que se detecte que la línea de confianza no está configurada. La segunda es cuando el negocio mismo detecta que falta la línea de confianza y quiere notificar al usuario que debe ser configurada. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si la línea de confianza fue configurada. Si fue así, automáticamente enviará un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Configuración de Confianza - -Este estado debe ser establecido si el negocio ha detectado que la línea de confianza fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la línea de confianza fue o no configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo de la bandera `success`, el estado de la transacción se cambiará a `pending_stellar` si la línea de confianza fue configurada, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, es necesario enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales de vuelta a la `source_account` usando el `refund_memo` y el `refund_memo_type` asociados con la transacción si están presentes. Además, si el usuario envía más dinero del esperado, puedes reembolsar una parte de la suma de vuelta al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `reembolsado`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se esté esperando a que Bitcoin o alguna otra red criptográfica externa complete una transacción, o cuando se esté esperando una transferencia bancaria. - -### Error de Transacción - -Si te encuentras con un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de la transacción, y entonces puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Expirada - -Tu negocio puede querer expirar transacciones que han sido abandonadas por el usuario después de algún tiempo. Es una buena práctica limpiar transacciones inactivas en estado `incomplete`. Para hacerlo, realiza la siguiente solicitud JSON-RPC para expirar una transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede ser usado después de que el usuario ha realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiarse de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizar la transacción de retirada (exchange) a través de JSON-RPC - -El diagrama de flujo de retirada SEP-6 define la secuencia/reglas de la transición del estado de la transacción. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene un atributo requerido, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de exchange de retirada es el mismo que el flujo de retirada, excepto que las cantidades no necesitarán ser recalculadas al solicitar fondos on-chain, si el usuario ha proporcionado una cotización firme del anchor. - -[![diagrama de flujo de retirada sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o que ha caducado. - -::: - -Una vez que el flujo de retirada ha terminado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden ser reutilizadas. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -De manera similar al depósito, el paso después de haber recogido KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, dado que tu servicio estará recibiendo transacciones a través de la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar las cantidades finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `amount_fee` es la cantidad total de tarifas recaudadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `memo` es el memo que el usuario debe utilizar al enviar sus fondos on-chain al anchor. -- `memo_type` es el tipo de memo que el usuario debe utilizar al enviar sus fondos on-chain al anchor. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiros de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar cantidades. - -::: - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones de Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece el `memo` y `memo_type` automáticamente (solo si no se incluye en la solicitud). - -::: - -:::note - -La cuenta Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Fondos recibidos - -Si se recibieron fondos on-chain, necesitas proporcionar cantidades y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Cantidad actualizada - -Si se recibieron fondos on-chain, pero por alguna razón `amount_in` difiere de lo especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `amount_fee` para que correspondan a `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "amount_fee": { - "amount": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `amount_fee` pueden actualizarse utilizando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. - -::: - -### Fondos offchain disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain, y si está listo para que el usuario/recipiente lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas realizar la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviar reembolso a través del servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea menor que `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/README.mdx deleted file mode 100644 index b8868bcf2a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Referencia de API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Ver toda la información de la API de Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/README.mdx deleted file mode 100644 index b4474f6961..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Servidor de Callbacks -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de callbacks para tu servidor de negocios. - - - -| | | -| ---------- | ---------------------------------------- | -| OBTENER | [/customer](./get-customer.api.mdx) | -| PONER | [/customer](./put-customer.api.mdx) | -| ELIMINAR | [/customer/:id](./del-customer.api.mdx) | -| PUBLICAR | [/event](./post-event.api.mdx) | -| OBTENER | [/fee](./get-fee.api.mdx) | -| OBTENER | [/rate](./get-rates.api.mdx) | -| OBTENER | [/unique_address](./gen-address.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 07d817a0eb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request for this endpoint is identical to the [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
-
- -
Customer not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/gen-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/gen-address.api.mdx deleted file mode 100644 index d294ffb4ab..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/gen-address.api.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -id: gen-address -title: "Generate Unique Address" -description: "If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to" -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to the Anchor backend every time a transaction is initiated by a client application. - -The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - -Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs outside the platform, using Circle: - -[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - - - -
- -

- Query Parameters -

-
-
-
    - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - unique_address - - - object - - - -
    -
    - An object containing the unique - `stellar_address:memo` pair used to identify a - destination. -
    - - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 04c64fc68e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,560 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The request and response for this endpoint is identical to the [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) request and response defined in SEP-12. - -This endpoint allows clients to: - -1. Fetch the fields the server requires in order to register a new customer via a SEP-12 [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the fields required in the response. The same response should be returned when no parameters are sent. - -2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. If the server still needs more info, or the server needs updated information, it should return the fields required. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
- Valid request. Customer either already exists or the customer - identified by the parameters is new and must provide the field values - described in the response body. Response bodies are identical to the - schema defined in - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). -
-
- - - - -
- - Schema - -
-
    - - - -
    - - - - fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    - - - - provided_fields - - - object - - - -
    - -
    - - - - property name* - - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - -
-
-
-
-
- -
Error.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-fee.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-fee.api.mdx deleted file mode 100644 index aa52875ec0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-fee.api.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: get-fee -title: "Retrieve Fees" -description: "The Platform will make this request to the anchor every time a transaction is initiated by a client application" -sidebar_label: "Retrieve Fees" -hide_title: true -hide_table_of_contents: true -api: eJztWFuP27YS/isD9qEt4JXdTQsUfvNJN4XRog2yKQ4O1ouYpkYWuxKpkKN1DMP/vRhSsmRbyZ6k26KXfTJMkXP55j47kaJXTlekrRFT8TpHeFlIyqwrYaOLAkp5h0C59uDwbY2egCxQjiCNyq0DvEe3BdIlggRy0nipmBhoD9po0pIwhdUWJKhCoyGQVVVoJfnSwmw05bYmkLB8W1vCNzpdJguzMCzJLLIoa0+AxteOJZEU2Hs0qTZrkCYFhwr1Pf9TtSdbovPgK1Q605iCNuFBK36JGCn88L/n4VA7LNGQXxiDCr2XrI+FSjpi3ZvnfdUiZqsz2gfBZU9wh1S7eC1DBE0RV5VLt0bIrDslH6jMmxc11Q5H0QBo0spqQ1DKLawQao9pkNTZe50ioCddBrgzRM9fzhH3UDnNPG1rHYatx90nC/PfHE1kqXJp1si2LGUa5OiA9CrHUkZtVggylRVFgXxdVdZFlGuPoKTHZGHESJBcezG9ES8QvbgdiXcXHqtwcn318uLZV3xmK3RB1nkqpmKN9AJRjEQlnSyR0PH1ndDsrm9rdFsxEkaWKKaCfeKN9B5JjAYcO3wJQp3jEtVgAif+rQ3guwYGNtYyOhtGPkvQZmFuZoHyPEVDOmspvrCulHT7RU5U+el4vNaU16tE2XLsCYtCuvb3onKWrLLFeFXY1biUntCNUVm/9YTl2GN1MZk8+zYp088C2wt9xOoiC6y+jBhHu4jpTtC2CrCQ02Yt9iPRuHsqpuRq3I+GYTzS8AEkD/HYwNXBeAZcZ51/JGpRvdLW5j2YhU9gs2MkHnTHBxwwgZ8N9qgGLsuFOboZDyNRWWzk1nPEaqOKOj3PYjDP3idWl1X7CTuYU5M/SpLKYXzTkB3BylLewDCYnzN0aBSmEAgfEkvFiqYPWOlBX/6/DHMS2x/t18PGAOsW5s80BmiuZn89Y0Qd3uj0zA4zA21wojsUxQGdS3kXClYfoddcqebfgZKmXxZtlqGDVGdBFToUxe4k0ueKN2t5zb/jCs3kr2OWAalU6x+y13WwV0xhbiAWrlgalwcNl+BzWxcplJJUHj2pT+jO2E379oRq74k1nTqyppwRUpIQ7rUMj7+aPGL2QjdkGg6RwOry0F0xSjY7asNqj+5xy88nCNP1gZ8izi2f+Moaj57vX04m/HMswHWtuEdMxEgoawgN8Z2eh45/9Xxxd87Yrn5FxSmoctzikI5sMsShS51wN+KQvGJFvj0l0Xwf0jG+GApRQZoKPprF1/2jF4ivGijEfs9fvr68PAfjF1M5G1rmVYFwZUjTtglHT5Jq3wbBCps2GFPYxObykFlrdjxP1qZH3eWqJg5oY2lhmhZago/oQ2unBGacjWVZFTEZbw6da3sFlE0RNq0YsmLoHE8lYULpvBjdwkiTjq2D1gP5hrEEFbpSU9PctkPNybjDg0yk1WXlmF0TiM180wj70cLQ2ZgVxT00n+eZ7/NuAAusJCy/nkzgPzKFV/F8GWahpo4wlYVB5zifsIXW2M4JYRo77nAj8A1gK5tuY+w8kocHKQa9U6fDrtl3/vj6tnPOq3AQ3fKboRgNF9gPPxrknhVliSc+xOgGbP4GyOxHAt8RGs8TXZiX7nArpu28NRL3sqixP3dx+iuRctsMXWHiolxMxTgL85dHd98OX7UrxFS0LbqSRbGS6i5Z1V4b9P4i3k2ayIx+xi28YC7aZJaVY2rRYM+SSTIZzvVbo3Jnja09PG/YeJi9nLdh1tit7Rjaot1sDg7mr5xlAxwG9PfTTTFjHdpgi4NvGzGdO+W6CLO85oE65MBQwA8xmjlbDq48gl9ypmEBP+/ylG+80mPHWmYZKjrmfHp/iEUctRun6NS7DlYRI1FohZzap7u25s4qqXKEy2CGzrrT8Xiz2SQyfE2sW4+bp3784/z51U/XVxeXySTJqSyCd1bWUylNj/ArJKfxHiFM/Ccm3nVx9LR5eto8/bGbp5hKCd/RuCqkNpxlg6fvmkR3E1qx25HIrSf+u9utpMdfXLHf83FsUzn9pTp0PKmYZrLw+AGv/uJVk6+/hH/RBmoQ61iAjlZ0TRESgkeBRwD1H7OM+gCAp8u5T8TwaSP1SEuQB329nd0ex1BPG6pHMs7ZYvD3J6OnJdbvW2J9wFr9zeHjVI2PWWk9EOPtquqPFmxovfWwh58Jd8t/nGbpxPTmdj8SOcoUXW9MnCmFVT8ozobco3Hx+6vXYr//DYJ81Kk= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -The Platform will make this request to the anchor every time a transaction is initiated by a client application without a `quote_id`. - -The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements necessary to partake in the transaction described in the request. - -The anchor must return the fee it will charge for the transaction. - -In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. When this change is made, the request schema will be adapted to support the use case. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. An - example for when this response code would be appropriate is if the - sender and/or receiver is not permitted to initiate a transaction with - the specified amounts. In these cases, the Platform will respond to - the client application's request with a `400 Bad Request` and include - the error message provided by the anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 9ad8d94bb4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,593 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must use exchange rates that are communicated to the client application requesting the transaction. When clients make requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either `sell_asset` or `buy_asset` is a Stellar asset. - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. The rounding error is defined as `10^(-significant_decimals)` - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - - - - - -
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
    - - - - rate - - - object - - - -
    - - - - - - -
    - - - - fee - - - object - - - -
    -
    - An object describing the fees added on top - of the rate provided via the `price` - attribute. -
    - - - -
    - - - - details - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
- Unprocessable Entity. This status should be returned when the anchor - understood the request but cannot return a success response. In these - cases, the Platform will respond to the client application's request - with a `400 Bad Request` and include the error message provided by the - anchor in the response body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
- Error. The Platform will respond to the client application with the - same response code and body. -
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0bb1897fd2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2354 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Receive a JSON object representing an event. - - - - - -
- -

- Body -

-
-
-
    - - - - -
    - - - payload - object - - required - - -
    - -
    - - transaction - object - -
    -
    - oneOf - - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer - `id`. Otherwise, the `account` address of the - customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer - in the business' Backend. For a SEP-31 - Sending Anchor, the `account` and `memo` - fields should be used. For a SEP-6 Anchor, - the `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users - and SEP-31 Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 customer, the - `id` field should be sufficient to fully - identify the customer in the business' Backend. - For a SEP-31 Sending Anchor, the `account` and - `memo` fields should be used. For a SEP-6 - Anchor, the `account` and `memo` fields should - be used. -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - quote - - object - - -
    - - - - - - - - - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify end-users and - SEP-31 Sending Anchors, but not SEP-31 Receiving - Anchors. For a SEP-12 customer, the `id` field - should be sufficient to fully identify the customer - in the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields should be - used. For a SEP-6 Anchor, the `account` and `memo` - fields should be used. -
    - - - -
    -
    -
    - - -
    -
    -
    - -
    - - - - customer - - object - - -
    - -
    -
    -
    -
    -
    -
    -
-
-
-
-
-
- - -
- The event is successfully processed and ready to receive next event. - The response body is empty. -
-
-
- -
- The event is invalid or rejected. The response body contains the error - message. -
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 7143f1fb83..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1119 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will be forwarded to the anchor as with the `application/json` content type. Requests containing binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- -

- Body -

-
-
-
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid data.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Not Found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/versions.json deleted file mode 100644 index 66775e886a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/README.mdx deleted file mode 100644 index 84b47467f3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de endpoints para interactuar con los servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 9b03be5755..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server creates custody transaction record in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - - - - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    -
    - object -
    -
-
-
- - - -
-
-
-
-
- -
Internal Server Error
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 1119bd8a6e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - - - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 35c005a45e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,369 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls the configured custody service to send payment. - - - - - -
- -

- Body -

-
-
-
    -
    object
    -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 8e8e80f876..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,411 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - -
- -

- Body -

-
-
-
    - - - - -
-
-
-
-
-
- - -
Success.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Invalid Request.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Transaction is not found.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service rate limit is exceeded.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Internal Server Error.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
- -
Custody Service is unavailable.
-
- - - - -
- - Schema - -
-
    - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/versions.json deleted file mode 100644 index 9ebd617878..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/README.mdx deleted file mode 100644 index ebda808b42..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 31a0d02f31..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactuar con tu Anchor Platform instancia mediante el uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index f7ac3463a6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.9.0" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "amount_fee"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and amount_fee values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1 - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `amount_fee`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": ["amount", "amount_fee", "id"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": ["amount", "asset"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_fee", - "description": "DEPRECATED in favor of fee_details. Amount of fee charged by anchor", - "required": false, - "deprecated": true, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": ["amount"], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_fee", - "value": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [6, 24, 31] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "title": "amount_fee", - "description": "DEPRECATED in favour of fee_details. The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "deprecated": true, - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": ["total", "asset"], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash of the transaction that included the refund payment.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index 08aa9f27f7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección enumera los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| - | -------------------------------------------------------------------------- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [request_trust](request_trust.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 42f491e60f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 901173359a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_reembolso_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_reembolso_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 7296db50c6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_cambios_en_los_montos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_cambios_en_los_montos")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index fdf4222ab1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_informacion_cliente_actualizada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_informacion_cliente_actualizada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 7b88a00366..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_flujo_interactivo_completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_flujo_interactivo_completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 35ed445bc2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_disponibles", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index 07e0511109..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 291add5e3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 39ca9284f4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 923ef756dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recepción_fondos_onchain -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recepción_fondos_onchain", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a6c400158..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_chain_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_chain_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 78e56bd450..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_enviado")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index d7bc13aaf4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index d2ab644503..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificación_de_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 48ea37c1db..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_retención -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_retención", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 000198f5dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 1b419abc9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_confiar_normalización -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_confiar_normalización")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 2550832461..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_fuera_de_la_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index ec9dd3ef90..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_en_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index fce561c8a2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_confianza")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa5b0e60a3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único endpoint HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es agnóstico al transporte en el sentido de que los conceptos se pueden utilizar dentro del mismo proceso, a través de sockets, sobre http, o en muchos diversos entornos de paso de mensajes. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de miembros intercambiados entre el Cliente y el Servidor que se consideran para coincidencias de cualquier tipo deben considerarse sensibles a mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 42d1b3cd0b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando y toda la información necesaria proporcionada por una parte externa (como billetera o un anchor). - -No debe confundirse con las [transacciones](/docs/learn/glossary#transaction) stellar. - - - -| | | -| ------- | -------------------------------------------- | -| OBTENER | [/transactions/:id](get-transaction.api.mdx) | -| OBTENER | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 0ec826764d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,3642 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - -
- -

- Path Parameters -

-
-
-
    - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    -
    - - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
    - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending and - receiving customers. If they were created - through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the `account` - address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, but - not SEP-31 Receiving Anchors. For a SEP-12 - customer, the `id` field should be - sufficient to fully identify the customer in - the business' Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` fields - should be used. For a SEP-6 Anchor, the - `account` and `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 3bf2323413..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4275 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: eJztWN9P20gQ/ldG+3IgGUMpuoe8cSd6QuJ6qGmfKAobexxvWe+6O+MAjfK/n2btJA4JAVrpKp36ZGc9u/PtN78zU6wnpAZX6mPQjnTGxjtS14m6PyCs45fh2eXB7yqJz+OT7uXtGxHyNQYtW85zNVAT5LVTEpUjZcHU8lMN1Km1/o6APXxtMDyANcTgC+DeJih8gBzJBMxheHaZwsfSEOjaADV17QMT1HpiXFSbgHY5GP6NoPZEZmwR9mQpYOarCl2O+b4orPQtQtVYNrVFCPi1QeIelD4EUYlgNbFoQjAEAXVWYg53JTrgEsE11RiDgEeLFToWGW6CwxzGD1EEXV5741j2U6WtxQBcagd18FOTYw43cvyIzDe8SVWiah10hYxBWJ8pI5RFdCpRTleoBoqwVokS+MKPGnBoMFGUlVhpNZgpfqijGAfjJipR6JpKTCjmi6YTs80f2+XC+9umXjfDGK13E+MmwhGLCcQYap5sB+ZDjmE0lpXn0WQBNWM+0qwSFbUWGEYBMzTTdvlaIBa6sawGffEN6MMaM1MYJCgM2lwI5vWL3BlrYYwQEUbrpPDeMyatLGHmXa7DA5AP0Va93WByMA40Zehy4WKqbYPpZ3eeYto5g6mQWFd167nH4ANUPuA6CENgcnRsMm1FMT4scYna1mlM/gy/LyJXU9YF3jqLsr6DvqhgjZmlr7fMGgLXWJuAtvYxw1zGby09y5tJBCUQcKJDbpFIooW8wG21wd77TxcXQ7g4HX7cTz+7dz4A3uuqtgKhc4tIMFT6AZznyFcHOY98k6/WqRaFJHHuJmAce7jZ5mA3MEaRENQpnAuuZNulvDtYXYwe26xNNF3UFybIdQsvSa416A6mVm7ztM2JNTeEtM3sOgQtooaxom3usG7ny0VybM9c3EcYfAyy50rGZV6swagStXjNYwIqGkmtIntfx1SUKAzBi4vWbayMiNFa3V/Be8bgtO0tNYRhtLQQsQ785NcemIWAdlm5ppRDQ49PEEb9qNLhFmPC8X4U83H3bnWY9M8kqRr9Mzu/WVezJGxkXOFHTZ3rNWRZQ+wrDGufrxPFhq0YahgNMTy7PLVWzTcC852xUgg2S+PK/aMLxJjq/CQ6skTJosAkUMRjYiwQ5Ib02GIOe11WgDGWemp82H/SB5cVapsTGsc4ibws08zx0WaOMd9QYGog4ybig6hDVsbamsLfDcWwrj0ZNlN8OhwilLbuvhDMJpZLqedd7WYPDWEkNfOOjWt8Qx24FKJk5hvHbaog0AxHqZpfi/tT7Z1E5mCmjo+O5LGup9cGQeEbl6cxghyjY5HWdW1NFluYwy8kW2a9G3mH/xSxB+ju5sdfMIu+23lP7/wLQzw8u/w98vZy+eOTV254+0bNr+dzcdWTbVf+Q+fwoe2rXnPXxwDqID0lm5bcNqdspLd5oky+ZXne742uut29oDuLC4tLnOy2m0TS6233k+4zl0zM6CimcHGdW3xQg0UXn6iY8Xd28+LZFXLpu1Y+dqRcqoE6fFQfCMN00aU2waqBKplrGhwe1lZz4UN10IqkXTlv03Sa+SrGj6REua0c0vL+Nj1Kj3rud9mdA8N4zkY9kwZ9oQtaXZLhtJOaH2sMSLXwDh2ncM5ApW9sLomm9CS1W9o6qIOZakZwyHc+3MaC3kl23YbOMuxKZxF8Ffuh86gCuRtNOvXoJLlSlBg3ZJx0POyhQM7KeHJbBKKApGzcGH1k1wQME5xenqefnUqUNRk6QmGrS4OntYwicBz5WrE/ODy8u7tLdfya+jA57LbS4cX5n2fvh2cHx+lRWnLVlpvaE1fa9Q7+gBwMThE0XHSD2a5pbraKiV+D3e7BrotqxnuWCDFOAj6abtaF2JXiR+O3uKmsz2ZjTfgp2PlcltuaKIG3qOZqUGhLuMM6ex+6HLIPr5j0noDdppV2Du1yioqV5OV4/m8z206meoPxD9P1a0b7aTPa8zb+fgP/173+7sheDZ3f66+v7Pd3wunPH9+J58d7/ucRLseSFcZr+RGMgFSDK/nTrUQtfrJqzk6zDGvu7dpoLdd6sr/OPqr5/F+ZpqBM -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - -
- -

- Query Parameters -

-
-
-
    - - - - - - -
-
-
-
-
- - -
Transaction found.
-
- - - - -
- - Schema - -
-
    -
    - oneOf - - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - - required - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - - -
    - - - - records - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount_expected - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_in - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_out - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - - - - - - - -
    - - - - refunds - - - object - - - -
    - -
    - - - - amount_refunded - - - object - - - -
    - - -
    -
    -
    - -
    - - - - amount_fee - - - object - - - -
    - - -
    -
    -
    - -
    - - - - payments - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - -
    - - - - amount - - - object - - - -
    - - -
    -
    -
    - -
    - - - - fee - - - object - - - -
    - - -
    -
    -
    - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - -
    - - - - stellar_transactions - - - object[] - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - -
    - - - - payments - - - object[] - - - - required - - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
    - - - - amount - - - object - - - - required - - - -
    - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - -
    - - - - customers - - - object - - - -
    -
    - The Identification info of the sending - and receiving customers. If they were - created through - [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 - customer `id`. Otherwise, the - `account` address of the customer. -
    - -
    - - - - sender - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    - -
    - - - - receiver - - - object - - - -
    -
    - StellarId's are objects that - identify end-users and SEP-31 - Sending Anchors, but not SEP-31 - Receiving Anchors. For a SEP-12 - customer, the `id` field should - be sufficient to fully identify - the customer in the business' - Backend. For a SEP-31 Sending - Anchor, the `account` and `memo` - fields should be used. For a - SEP-6 Anchor, the `account` and - `memo` fields should be used. -
    - - - -
    -
    -
    -
    -
    -
    - -
    - - - - creator - - - object - - - -
    -
    - StellarId's are objects that identify - end-users and SEP-31 Sending Anchors, - but not SEP-31 Receiving Anchors. For - a SEP-12 customer, the `id` field - should be sufficient to fully identify - the customer in the business' Backend. - For a SEP-31 Sending Anchor, the - `account` and `memo` fields should be - used. For a SEP-6 Anchor, the - `account` and `memo` fields should be - used. -
    - - - -
    -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - -
-
-
-
-
- -
Bad Request
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
- -
Transaction not found.
-
- - - - -
- - Schema - -
-
    - - -
-
-
- - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/versions.json deleted file mode 100644 index 92fc50bfcd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.9.0", - "label": "v2.9.0", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep31-transition-diagram.png deleted file mode 100644 index 8dae3cd7b0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.9/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0.json deleted file mode 100644 index c88603e540..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "3,0", - "description": "The label for version 3.0" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "JSON-RPC API", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callbacks", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/README.mdx deleted file mode 100644 index 3db1273a99..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/README.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Introducción a Anchor Platform -sidebar_position: 10 ---- - -# Anchor Platform - -Anchor Platform es un conjunto de herramientas y API que permite a los desarrolladores y empresas crear sus propios servicios de acceso y salida para la red Stellar. Proporciona una interfaz estandarizada, incluida la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar la integración de empresas con billeteras y exchanges basados en Stellar. - -La plataforma también incluye funciones para gestionar activos, transacciones y cuentas de usuario, y admite una variedad de opciones de implementación, incluyendo el uso de Docker o Kubernetes. En general, Anchor Platform tiene como objetivo simplificar el proceso de crear y gestionar un servicio financiero basado en Stellar, permitiendo a las empresas centrarse en ofrecer valor a sus clientes. - -Aprende sobre la integración con Anchor Platform en la [Guía del Administrador](./admin-guide/README.mdx) o obtén información de la API en la [Referencia de la API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/README.mdx deleted file mode 100644 index f5585941a5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía del Administrador -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre cómo configurar, ejecutar y usar la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/architecture.mdx deleted file mode 100644 index ae140bde1f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiarízate con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son requeridos para todas las implementaciones de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes hacen solicitudes al servidor SEP de la Anchor Platform utilizando conjuntos de estándares llamados [SEPs][seps] (Propuestas del Ecosistema Stellar). - -#### Servidor SEP - -El servidor SEP es un servidor que enfrenta al cliente y, por lo tanto, necesita ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio de un par de activos o el estado KYC de un cliente, realiza solicitudes síncronas de [callback][callback-api] al servidor de negocio y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocio - -El servidor de negocio es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocio responde a las solicitudes de callback enviadas por el servidor SEP, como solicitudes de una cotización, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido en tu cuenta Stellar, y proporciona actualizaciones al servidor de la plataforma cuando ocurren eventos fuera de la cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de la plataforma es un componente interno. Debería estar alojado en una red privada y no debería ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones utilizando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades de Stellar. Se utiliza principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales utilizar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a los clientes registrados y a tu servidor de negocio cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocio consulten las API de la Anchor Platform. Funciona leyendo eventos publicados en un tema Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta a proveedores de billeteras empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para negocios que utilizan uno de los proveedores admitidos. Además de la funcionalidad ofrecida por el Stellar Observer, el Servidor de Custodia también puede facilitar pagos salientes a las cuentas Stellar de los clientes. Si también utilizas el servicio de [events], los pagos a tus cuentas activarán un callback HTTP hecho a tu servidor de negocio. - -Si ya tienes una integración con tu proveedor de billetera, entonces este componente no es necesario, aunque tu servidor de negocio necesitará notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform se envió a o desde tus cuentas Stellar a través de la [Platform API][platform-api]. - -Actualmente, el único proveedor admitido es Fireblocks. - -#### Observador Stellar - -El Stellar Observer, una alternativa al servidor de custodia mencionado arriba, monitorea la blockchain de Stellar usando Horizon, detecta automáticamente los pagos de los usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [events], los pagos a tus cuentas activarán un callback HTTP hecho a tu servidor de negocio. - -Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon, o RPC, entonces este componente no es necesario, aunque tu servidor de negocio necesitará notificar a la Anchor Platform cuando un pago asociado con una transacción de la Anchor Platform se hizo a una de tus cuentas Stellar a través de la [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[eventos]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 999913ac4e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Usar el Observador de Pagos te permite delegar este paso a la Anchor Platform. Para habilitar el Observador de Pagos, usa la `--stellar-observer` flag en la sección de comandos del [archivo de composición](../../getting-started.mdx#configuration). - -El Observador de Pagos hará un seguimiento de todas las transacciones enviadas a la cuenta de distribución. Cuando la transacción con el memo esperado sea detectada en la red, el estado cambiará automáticamente a `pending_anchor` y el evento será emitido (si se utiliza Kafka). - -Para actualizar los estados de las transacciones, el observador realiza las solicitudes JSON-RPC correspondientes a la plataforma. Debería usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Observador de Pagos no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea los pagos, asegúrate de que la lógica del sistema iguale la descripción a continuación: - -Primero, espera a que la transacción sea incluida en el ledger (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción haya sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks hará un seguimiento automáticamente de las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 1fcdb9e7d9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :--------------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto Request válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Parámetro(s) del método inválido(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se devuelve desde la Anchor Platform en una solicitud de inicio de retirada de fondos o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 953975f2ff..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. DEBE ser exactamente "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. Lista de métodos disponibles que puedes ver en [Métodos JSON-RPC][json-rpc-methods] -- params - - objeto - - Un valor estructurado que contiene los valores de los parámetros, correspondientes a la llamada del método, que se utilizarán durante la invocación del método -- id - - cadena - - Un identificador establecido por el cliente. El servidor responderá con el mismo valor en el objeto de respuesta - - - -:::tip - -Es posible proporcionar varias actualizaciones en una única solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se hace una actualización de esta manera, todas las actualizaciones se realizarán secuencialmente. - -Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE aplicarán y todas las actualizaciones subsiguientes SE procesarán y aplicarán también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 396cc441e3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un único objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. Está fijado en "2,0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles de la transacción actualizada -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Identificación única de la transacción para la que ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Consulta la lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index 60983fa6ca..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform alojada en el puerto predeterminado (8085). Los datos de la transacción JSON almacenados en el archivo proporcionado se utilizarán como cuerpo (las solicitudes deben ser un array). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/api_key.mdx deleted file mode 100644 index 0974b828c4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación por clave API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitado, todas las solicitudes deben incluir un encabezado válido `X-Api-Key`, configurado con la clave API establecida. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 234f4bdeab..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres para mayor seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/security.mdx deleted file mode 100644 index 8b6212de2e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -Por defecto, los endpoint de la API de la Plataforma, como `GET /transactions` y `GET /transactions/:id`, no están protegidos y son accesibles para cualquiera que tenga acceso al servidor, incluidas las aplicaciones de billeteras. - -::: - -:::info - -Se recomienda mantener el servidor de la Plataforma accesible solo desde la red privada. Sin embargo, es posible que desees agregar una capa adicional de protección asegurando la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/README.mdx deleted file mode 100644 index a937188bcd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de Custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Utilizar un servicio de custodia te permitirá usar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 348829e477..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si deseas usar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas implementar un servicio más: el Servidor de Custodia. - -Este servicio también necesita el `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. Por defecto, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas implementar el Stellar Observer, ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si configuras el tipo de autenticación `api_key` o `jwt`, entonces necesitas agregar una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia usando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:3.0.4 --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósito para SEP-24 y SEP-31. Además, necesitas configurar una verificación de línea de confianza, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo y tipo de memo se generan en el código local, y la cuenta de distribución se usa para la dirección de depósito. -- `custody` - memo y tipo de memo se generan a través de la API de Custodia, por ejemplo Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, memo y tipo de memo deben ser proporcionados por el negocio en una solicitud PATCH/JSON-RPC. -- `api` - memo y tipo de memo se generan a través de la llamada al endpoint GET /unique_address del anchor. - -::: - -## Configuración del Servidor de Referencia de Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia de Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index e179fc9611..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configurar [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index e0d6f714b0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar Usuario de API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL de Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de Dirección de Una Sola Vez](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del Servidor de Custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index a97d7fb7c0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones del diagrama de secuencia se encuentran en la carpeta /static/definitions" -[comentario]: # "Para actualizarlos, utiliza https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- solicitar_fondos_fuera_de_la_cadena -- notificar_fondos_fuera_de_la_cadena_recibidos -- realizar_pago_stellar -- notify_onchain_funds_sent [![diagrama_de_secuencia_sep24_deposito_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de reconciliación: - -- solicitar_fondos_fuera_de_la_cadena -- notificar_fondos_fuera_de_la_cadena_recibidos -- realizar_pago_stellar -- notify_onchain_funds_sent [![diagrama_de_secuencia_sep24_reconciliacion_webhook](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retirada SEP-24 con webhook: - -- realizar_pago_stellar -- notificar_fondos_en_la_cadena_recibidos -- notify_offchain_funds_sent [![diagrama_de_secuencia_sep24_retiro_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retirada SEP-24 con trabajo de reconciliación: - -- solicitar_fondos_en_la_cadena -- notificar_fondos_en_la_cadena_recibidos -- notify_offchain_funds_sent [![diagrama_de_secuencia_sep24_retiro_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notificar_fondos_en_la_cadena_recibidos -- notify_offchain_funds_sent [![diagrama_de_secuencia_sep31_recibir_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de reconciliación: - -- notificar_fondos_en_la_cadena_recibidos -- notify_offchain_funds_sent [![diagrama_de_secuencia_sep31_recibir_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/README.mdx deleted file mode 100644 index a54a6a4c12..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos HTTP webhook. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/delivery.mdx deleted file mode 100644 index 2cfcabeb3e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de Entrega -sidebar_position: 30 ---- - -## Garantías de Entrega - -Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como el sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del broker que uses. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden ser entregados fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debe usar los campos `status` y `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor empresarial. - -### Garantías de Entrega del Cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento a ese cliente. - -### Garantías de Entrega del Servidor Empresarial - -El servicio de eventos intentará entregar cada evento al servidor empresarial hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor empresarial no es accesible después de tres intentos, el servicio de eventos ya no intentará entregar ningún evento al servidor empresarial. - -:::note - -Las garantías de entrega del servidor empresarial son las mismas que las garantías de entrega del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a los clientes que no sean accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/getting-started.mdx deleted file mode 100644 index 8531b3a9ae..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones HTTP webhook a: - -**Servidores de Negocios** - -- Transiciones del estado de la transacción -- Actualizaciones de cotización -- Transiciones del estado de KYC del cliente - -Los esquemas de eventos para los servidores de negocios están definidos en la [referencia de la API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones de Cliente** - -- Transiciones del estado de la transacción que afectan a sus usuarios -- Transiciones del estado de KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para las aplicaciones de clientes están definidos en sus respectivos SEP:_ - -- [Eventos de Transacción SEP-6](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [Eventos de Cliente SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [Eventos de Transacción SEP-24](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [Eventos de Transacción SEP-31](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores de negocios y las aplicaciones de clientes consulten continuamente las API para obtener actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/integration.mdx deleted file mode 100644 index 49502ad04a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/events/integration.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te acompañará a integrar con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como intermediario de mensajes de backend. - -Se asume familiaridad con Kafka y no se cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema Kafka `TRANSACTION`. El servicio de eventos consumirá eventos de este tema y los enviará a los puntos finales apropiados. - -## Configuración - -Primero, el productor de Kafka del servicio de eventos necesita ser configurado utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. El siguiente es el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite configurar un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para más información sobre lo que está disponible. Para más información sobre la configuración del cliente del productor de Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, el procesador de eventos necesita ser configurado en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto habilitará al procesador de eventos a comenzar a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. - -## Recibiendo Eventos - -El servicio de eventos puede ser utilizado para enviar eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. El servicio de eventos enviará eventos a estos puntos finales como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como Aplicación del Cliente - -Las aplicaciones del cliente pueden recibir actualizaciones sobre las transacciones y la información del cliente de sus usuarios. El esquema de los datos del evento dependerá del tipo de evento que se envíe. - -Para recibir eventos como una aplicación del cliente, necesitarás exponer URLs de devolución de llamada a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite configurar puntos finales únicos según el tipo de evento. - -Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para más información. - -#### Firma de Devolución de Llamada - -Anchor Platform firma las solicitudes de devolución de llamada que envía a las aplicaciones del cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de la firma de la URL de devolución de llamada se puede encontrar en las especificaciones correspondientes del protocolo SEP. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como Servidor de Negocios - -Además de las actualizaciones del estado de las transacciones SEP, los servidores de negocios pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la [documentación de la API de eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. - -Para recibir eventos como un servidor de negocios, necesitarás exponer una URL de devolución de llamada a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de devolución de llamada del servicio de eventos puede ser configurada utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -El siguiente es un ejemplo de cómo configurar la API de devolución de llamada del servicio de eventos con autenticación de clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de devolución de llamada del servicio de eventos que se utilizará para enviar eventos a los puntos finales de devolución de llamada del cliente y del servidor de negocios. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del punto final de devolución de llamada del servidor de negocios. -- `secret`: El secreto que se utilizará al enviar eventos al punto final de devolución de llamada del servidor de negocios. Esto se utiliza para firmar el cuerpo de la solicitud cuando la autenticación JWT está habilitada y es la clave API cuando la autenticación de clave API está habilitada. -- `auth`: El método de autenticación que se utilizará al enviar eventos al punto final de devolución de llamada del servidor de negocios. Las siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un JSON Web Token (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de caducidad del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/getting-started.mdx deleted file mode 100644 index 560dadc267..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/getting-started.mdx +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es tirar de la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:3.0.4 -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía utilizaremos [docker compose][docker-compose] por simplicidad, pero puedes ejecutar la Anchor Platform utilizando otras herramientas que también admiten docker, como [minikube] o un clúster [kubernetes] completamente desplegado. - -Vamos a crear un archivo de compose mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` le indica a la Anchor Platform que haga disponibles los endpoints de API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -La opción `--platform-sever` hace que la API de la plataforma esté disponible, que es la API de backend que tu(s) servicio(s) usarán para comunicarse con la Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- usando variables de entorno -- usando un archivo de configuración YAML - -Se puede usar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan usando guiones bajos o puntos (`_`, `.`) al usar variables de entorno. Demostraremos ambos enfoques aquí, pero usaremos variables de entorno exclusivamente en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el archivo de [valores predeterminados][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En cambio, los secretos de aplicación, que todos tienen el prefijo `SECRET_`, deben especificarse en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de docker compose. - - - -```bash -touch dev.env -``` - - - -Y si estás utilizando un archivo de configuración YAML, vamos a crear eso también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informarle a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a agregar una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambiar Puerto del Servidor de la Plataforma - -Por ejemplo, vamos a cambiar el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especifica los Activos de Tu Servicio - -Vamos a agregar los activos que tu despliegue de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás usando la Anchor Platform para alojar un archivo stellar.toml SEP-1 o para ejecutar la Autenticación Stellar SEP-10, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía vamos a desarrollar servicios de anchor para el USDC de Circle en la red de pruebas de Stellar. Actualiza los valores anteriores basados en los activos que estarás emitiendo. Asegúrate de especificar el `emisor` de testnet en tu archivo de desarrollo, y crea tu propia `cuenta_de_distribución` usando una herramienta como [Stellar Lab][stellar-lab]. La `cuenta_de_distribución` será utilizada por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo necesita ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La última versión de PostgreSQL que es admitida por Flyway es PostgreSQL 14. - -Antes de continuar, vamos a agregar una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Se necesita una base de datos solo si usas la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás utilizando configuración YAML en lugar, las variables de entorno `POSTGRES_` deben estar siempre en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Tenemos que crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que hagamos un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los logs reportando una conexión exitosa a la base de datos postgres. - -### Configurar la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada de fondos, tu negocio necesitará recuperar y actualizar registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace que las APIs SEP públicas estén disponibles, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciado por la opción `--platform-server`. Los negocios deben hacer que el servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible agregar autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al hacer solicitudes a la API de la Plataforma, agrega un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` utiliza `platform` en lugar de `localhost` como el host porque estarás haciendo solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de staging o producción, asegúrate de actualizar las URLs de tu servicio. - -### Pasando flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` en el valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar una variable de entorno desde tu máquina al contenedor, debes usar la opción de compose `environment` para establecer las variables en su lugar. Aquí hay un ejemplo de usar un keystore desde tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación del keystore local y `KEYSTORE_PASSWORD` es la contraseña del keystore local. - -::: - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/overview.mdx deleted file mode 100644 index 51835a33b9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Descripción general -sidebar_position: 10 ---- - -La Anchor Platform es la forma más fácil y rápida de implementar [servicios de anchor](/docs/learn/fundamentals/anchors) compatibles con [Propuestas del Ecosistema Stellar (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad específica de Stellar y los requisitos para operar un anchor, permitiendo que las empresas se centren en la lógica comercial básica necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto implementando las APIs estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones que las consumen, mientras ofrece un conjunto de APIs de backend para que las empresas proporcionen información específica para ellas, como tarifas de transacción, tipos de cambio y estados de transacciones fuera de la cadena. - -A continuación, se presenta una lista de SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Archivo de Información Stellar][sep1-ap] -- [SEP-6][sep-6]: [Depósito y Retirada Programática][sep6-ap] -- [SEP-10][sep-10]: [Autenticación Stellar][sep10-ap] -- [SEP-12][sep-12]: API de KYC -- [SEP-24][sep-24]: [Depósito y Retirada Alojados][sep24-ap] -- [SEP-31][sep-31]: [API de Pagos Transnacionales][sep31-ap] -- [SEP-38][sep-38]: API de RFQ de anchor - -La documentación de la Anchor Platform está en progreso. Los desarrolladores son bienvenidos a sumergirse en el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si buscas crear un servicio de entrada y salida compatible con SEP-24, consulta nuestra [guía para comenzar][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep1/README.mdx deleted file mode 100644 index 3418ac3dfd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de Información de Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos aplicaciones para aprender más sobre tu servicio al alojar un archivo `stellar.toml` en una ruta de URL estandarizada. Este archivo permite a las aplicaciones encontrar información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas de URL raíz para estos servicios. Podemos alojar este archivo utilizando la Anchor Platform. - -Creamos un archivo llamado `dev.stellar.toml` utilizando el contenido a continuación como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que utilice la frase de paso de la red pública, las URLs de tus servicios de producción, tus cuentas de distribución de Mainnet y clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto le dirá a la Anchor Platform que debe alojar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser alojado utilizando un servidor de archivos estático adecuado como [nginx]. Siempre que tu archivo de información incluya las URLs apropiadas que apunten a la Anchor Platform, esto funcionará muy bien. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep10/README.mdx deleted file mode 100644 index 20e6be45e8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar Autenticación Stellar - -Las aplicaciones de billeteras basadas en Stellar crean sesiones autenticadas con anclajes Stellar al demostrar que ellos, o sus usuarios, tienen suficiente control sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el anclaje en solicitudes posteriores a los servicios estandarizados del anclaje. - -La Anchor Platform admite esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás hospedando el archivo toml a través de la Plataforma, (`SEP1_ENABLED` está configurado como `true`), el archivo toml será hospedado en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre que estés en posesión de la `SIGNING_KEY`. Las billeteras comprobarán esta firma antes de firmar y devolver el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de encriptación que se utilizará para firmar y verificar los tokens de autenticación que emites a las aplicaciones de billetera después de que ellos o sus usuarios hayan demostrado control sobre su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique con tus servicios. Si deseas permitir únicamente a los usuarios de una aplicación de billetera particular que se autentiquen, o quieres deshabilitar a usuarios específicos de autenticarse, utiliza las siguientes variables de entorno. Esta es una función opcional y solo debe añadirse si es un requisito del negocio. - -::: - -## Configurar con Atribución del Cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores o clientes de billeteras externas con los que el servidor Anchor puede comunicarse de forma segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_urls: - sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_urls: - sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debe permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores o clientes de billeteras externas con los que el servidor Anchor puede comunicarse de forma segura. - -## Modificar un Archivo de Información Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 es admitida por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/README.mdx deleted file mode 100644 index b72e9347d8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y Retiros Alojados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio mediante el cual las billeteras y/o exchanges permiten al usuario interactuar directamente con una rampa de entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/configuration.mdx deleted file mode 100644 index f1d42445ac..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 está admitida por tu negocio, y también necesitan saber todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que utilice la frase de paso de la red pública, las URL de servicio de producción, tus cuentas de distribución de Mainnet y la clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -## Habilitar depósitos y retiradas alojados - -Ahora estás listo para habilitar depósitos y retiradas alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml`, y cambia los valores dependiendo de tus preferencias. Este archivo de activos de ejemplo habilitará el soporte para el USDC de Circle y un fiat USD. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash - - id: iso4217:USD - significant_decimals: 2 - # Optional support for XLM - - id: stellar:native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash -``` - - - -La información proporcionada para el valor `assets` se corresponde estrechamente con la información que se expondrá a la aplicación billetera utilizando el endpoint [`GET /info`][sep24-get-info] SEP-24. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. - -Añade las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -// Required -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -// Optional -SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, entregando el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Ahondaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando quieran mostrar información sobre una transacción iniciada anteriormente. Esta URL se utiliza con más frecuencia por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de cifrado que la Anchor Platform utilizará para generar tokens de corta duración que añadirá a las URLs proporcionadas a la billetera. Tu servidor de negocio también debe tener estas claves en su entorno para que pueda verificar la firma del token. - -`SEP24_INITIAL_USER_DEADLINE_SECONDS` es un parámetro opcional que define el tiempo en segundos que un usuario tiene para actuar antes de que la transacción pase al siguiente estado. Determina el campo `user_action_required_by`, que indica la fecha límite. Consulta [Métodos JSON-RPC][json-rpc-methods] para ejemplos de uso. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían verse ahora algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno debería verse ahora como el siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, dirígete a la [Billetera de Demostración Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la Anchor Platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Inicia una transacción haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Añadir Activo" e introduce - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el dropdown y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el keypair Stellar que acabas de crear, e iniciar una transacción. Sin embargo, cuando la billetera de demostración intente abrir la URL proporcionada por la Anchor Platform, recibirás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/example.mdx deleted file mode 100644 index cee0631661..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrar con la Anchor Platform implica tres áreas clave: - -- Crear una experiencia de usuario basada en la web que se pueda abrir en una vista web móvil -- Proporcionar actualizaciones del estado de las transacciones a la Anchor Platform -- Recuperar actualizaciones del estado de las transacciones desde la Anchor Platform - -## Crear una Experiencia de Usuario Basada en la Web - -La Anchor Platform no ofrece una interfaz de usuario de marca blanca que tu negocio pueda utilizar, y en su lugar espera que el negocio cree su propia interfaz de usuario y sistema backend. No vamos a crear toda una experiencia de usuario para el on & off-ramp en esta guía, pero cubriremos las formas en que tu producto existente debe actualizarse para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto existente de on & off-ramp, es probable que ya tengas un sistema existente para la autenticación de usuarios. Sin embargo, dado que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es en realidad innecesario. De esta manera, la Anchor Platform se puede considerar como una forma alternativa de autenticación. - -El negocio es libre de continuar exigiendo a los usuarios que se autentiquen usando su sistema existente, pero la experiencia de usuario ideal omitiría este paso y crearía una sesión autenticada para el usuario si ya se han autenticado usando su cuenta de Stellar. - -La Anchor Platform agrega un parámetro de consulta `token` a la URL del negocio proporcionada a la aplicación de billetera. Este token está firmado por el valor previamente configurado `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET`, e incluye la información que necesitas para identificar al usuario. El proceso debería verse algo así: - -1. Pasa el `token` agregado a la URL de tu sistema backend -2. Verifica la firma en el `token` y verifica su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -El contenido decodificado del `token` se verá algo así: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Ten en cuenta que el valor `sub` identifica al usuario usando una cuenta de Stellar y un número entero. Este es el valor que tendrá cuando aplicaciones custodiales que utilizan una cuenta omnibus se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentican, el token puede verse ligeramente diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticar. - -En ambos casos, toda la información en el objeto `data` es opcional y solo estará presente si la billetera proporciona esa información. - -Agreguemos un servidor backend a nuestro archivo compose que se utilizará para verificar el token y crear sesiones web autenticadas para usuarios que inicien transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Creamos un contenedor Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora, creemos una aplicación NodeJS mínima. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend autenticando a un usuario usando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de la plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviamos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionar Actualizaciones a la Plataforma - -Creemos un endpoint para nuestro servidor de negocio que acepte la información recopilada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": req.body.fee_details.total, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá a las aplicaciones de billetera recuperar esta información actualizada para que puedan relatarla al usuario. Ya deberías haber informado al usuario de los montos de las transacciones y que tu negocio está esperando que el pago on-chain llegue, pero proporcionar estas actualizaciones permite a los usuarios ver los estados de sus transacciones a través de su aplicación móvil sin necesidad de abrir de nuevo la interfaz de usuario del negocio. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando los estados de las transacciones cambian, sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "solicitudes de retorno" para que las aplicaciones de billetera no tengan que sondear la Anchor Platform para actualizaciones. - -::: - -## Recuperando Actualizaciones de la Plataforma - -Si solo usas la Anchor Platform para exponer las SEP APIs a las aplicaciones de billetera, entonces no tendrás una razón fuerte para recuperar actualizaciones del estado de las transacciones desde la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que hagas solicitudes a la `JSON-RPC API`. - -Sin embargo, si usas la Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados con transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando se reciban los pagos. - -Hay dos maneras de recuperar actualizaciones desde la Anchor Platform, - -- Sondear el endpoint `GET /transactions/:id` de la API de la Plataforma para las transacciones que esperas recibir un pago -- Transmitir eventos de cambio de estado de transacción desde un clúster de Kafka - -Mientras que transmitir cambios de estado de transacciones desde un clúster de Kafka puede ser un enfoque más robusto y escalable, vamos a usar el método de sondeo en esta guía. Configurar y usar un clúster de Kafka será el tema de una sección diferente de la documentación. - -Primero, configuremos la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:3.0.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` para pagos de retirada de fondos. - -Si un pago se envía a una de estas cuentas y el memo adjunto a la transacción coincide con un valor de `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará la transacción asociada a ese memo como recibida y actualizará el estado de la transacción a `pending_anchor`. Esto lo hace realizando una solicitud a la `JSON-RPC API`, así que necesitamos configurar la URL que debe usar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Hagamos algunas adiciones al archivo `server.js` para que podamos sondear la Anchor Platform por nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación de Ejemplo Completo - -Stellar proporciona una implementación de ejemplo de servidor de negocio para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación backend, utilizada para obtener y enviar actualizaciones a/desde la Anchor Platform. - -El código para la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código para el backend es parte de la Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/faq.mdx deleted file mode 100644 index c6b241f2a7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas Frecuentes -sidebar_position: 50 ---- - -### ¿Cómo Usar JWTs? - -Como parte del flujo, una vez que un usuario hace una solicitud, es decir, una solicitud interactiva de retirada de fondos/deposito, será procesada por la Anchor Platform y reenviada a tu servicio. La Anchor Platform hará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. `exp` es el tiempo de caducidad del token. Debes verificar que el token proporcionado no haya caducado. -2. `sub` es la cuenta asociada con esta transacción. Puede utilizarse para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. -3. `jti` es el hash de la transacción. -4. `data` es la carga adicional que ha sido establecida por el usuario. Siempre contendrá el `asset` de Stellar que se desea depositar o retirar. Si es proporcionada por el cliente, también contendrá el `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificada durante la autenticación SEP-10, y el `client_name` (definido como 'name' en la configuración de [clients] si es proporcionado), y la preferencia de `lang` (idioma) del usuario. - -### ¿Cómo Proporcionar Tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de cambio en la vista iFrame/web de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` para permitir a las empresas establecer tarifas estáticas para sus transacciones. Sin embargo, actualmente no es admitido por la Anchor Platform. - -:::note - -El endpoint /fee será desaprobado en el futuro. - -::: - -### ¿Cómo identificar la cuenta del usuario? - -Debes usar el campo `sub` del token JWT. Para billeteras de custodia, este valor estará en el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente utiliza el valor `sub` en sí, que será igual a la cuenta del usuario. - -### ¿Cómo identificar la billetera? - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración de [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, permitiendo la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index db56e89a5a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de rampa de entrada y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el apoyo de la Anchor Platform para SEP-24, las empresas hacen que su servicio de rampa de entrada y salida esté disponible como una experiencia dentro de la aplicación, a través de aplicaciones basadas en Stellar como billeteras y exchanges, extendiendo su alcance y conectándose con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya hayas [instalado][installation-ap] la Anchor Platform y configurado las características necesarias, requeridas por SEP-24: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap] - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente en un depósito y una retirada es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información de KYC y transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor u otro caso de uso no listado aquí. En alguna fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, la billetera abre la URL interactiva dada y permite al cliente ingresar su información de transacción (ya se ha recopilado KYC) -4. Después de pedir la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/integration.mdx deleted file mode 100644 index 5ce1e0b5b4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. - -En general, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se hace realizando solicitudes JSON-RPC al endpoint de la API de la plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario realizar una solicitud JSON-RPC correspondiente y pasar los datos que requiere este método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API será llamada cada vez que un usuario o el anchor realice alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una característica opcional que necesita configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes encontrar más información sobre el flujo y los estados de las transacciones en el [documento del protocolo SEP-24][sep-24] - -## Callbacks - -La Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre cotizaciones. - -### Cotizaciones y Tarifas - -Para admitir el exchange de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el exchange. La API de cotizaciones se utiliza para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Usando la clave de API - - - -### Usando JWT - - - -## Realizando solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando transacciones de depósito a través de JSON-RPC - -El diagrama de flujo de depósito SEP-24 define la secuencia / reglas de la transición de estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![Flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen la forma más corta. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en estado de error o ha caducado. - -::: - -### Listo para Recibir Fondos - -El primer paso del flujo de depósito después de iniciar el depósito en sí es recopilar KYC. Normalmente se hace en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación de billetera, utilizando [SEP-9]. Una vez que se haya recopilado la KYC necesaria, se debe realizar una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario tiene que enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `fee_details` es la cantidad total de tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado como USD, asumiendo que el usuario hizo una transferencia bancaria al sistema utilizando USD. - -La información sobre las cantidades (entrada/salida/tarifa) es requerida si quieres mover la transacción del estado `incomplete` al estado `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir definir las cantidades. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso KYC es largo (por ejemplo, verificación de ID), se aconseja primero establecer el estado de la transacción en `pending_anchor` utilizando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que KYC está siendo procesado. - -::: - -### Procesando la Información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo e ir al [siguiente paso](#funds-received). - -Usar este estado es recomendable cuando la verificación KYC puede necesitar ser realizada de forma asíncrona. - -::: - -Debes especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos Recibidos - -Si se recibieron fondos offchain, querrás proporcionar información actualizada sobre la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recepción de fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de cantidad son opcionales. Si se omiten, se tomarán los valores de las solicitudes JSON-RPC anteriores. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En un mundo real, el proceso de confirmación de la transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero que los fondos no se han recibido aún. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción a la red Stellar para cumplir con la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos han sido enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el ID de transacción en la red Stellar de la transferencia - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. - -### Enviando el Pago a Través del Servicio de Custodia - -La Anchor Platform proporciona la posibilidad de enviar un pago a través de servicios de custodia, como Fireblocks. Para realizar un pago a través del servicio de custodia, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform automáticamente realizará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [línea de confianza](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pending_trust` para indicar que el anchor está esperando que el usuario establezca la línea de confianza. - -Si la integración de custodia está habilitada, la Anchor Platform realizará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una línea de confianza de activo que no fue configurada por el usuario. Hay dos formas en las que la transacción puede moverse al estado `pending_trust`. La primera es el procesamiento de un pago a través de un servicio de custodia en caso de que se detecte que la línea de confianza no está configurada. La segunda es cuando el negocio mismo detecta que falta la línea de confianza y quiere notificar al usuario que debe ser configurada. Para mover la transacción al estado `pending_trust`, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si se configuró la línea de confianza. Si se configuró, automáticamente enviará un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Configuración de Confianza - -Este estado debe establecerse si el negocio ha detectado que la línea de confianza fue o no fue configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la línea de confianza fue o no fue configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si se configuró la línea de confianza, o a `pending_anchor` si no se configuró. - -::: - -### Enviando Reembolso a Través del Servicio de Custodia - -Hay una posibilidad de enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Es similar a [Reembolso enviado](#refund-sent), pero maneja un caso cuando un reembolso ha sido enviado a la red externa pero no está aún confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá cuando se esté esperando a que Bitcoin u otra red de criptomonedas externa complete una transacción, o cuando se esté esperando una transferencia bancaria. - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de la transacción, y luego puedes intentar nuevamente procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer manejar transacciones abandonadas caducando aquellas que han permanecido inactivas durante un período determinado. Para lograr esto, verifica el estado de la transacción utilizando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo de `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como caducar la transacción o iniciar un reembolso automático, según el estado actual de la transacción. Por ejemplo, para caducar transacciones, el negocio debería cambiar el estado de la transacción a `expired`: - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede ser usado después de que el usuario haya realizado una transferencia. - -::: - -### Transacción en Espera - -En raras ocasiones, puedes querer pausar la transacción actual y solicitar más información al usuario (después de que se haya recibido la transferencia). Esto podría usarse para casos de cumplimiento. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, es necesario hacer la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando transacciones de retirada de fondos a través de JSON-RPC - -Este diagrama define una secuencia/reglas de transición del estado de las transacciones para el flujo de retirada de fondos SEP-24. - -[![flujo de retirada de fondos sep24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que el flujo de depósito ha finalizado, implementar la retirada de fondos es sencillo. Algunas partes del flujo son similares y se pueden reutilizar. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio estará recibiendo transacciones a través de la red Stellar, la actualización se verá diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Valor del memo para adjuntar a la transacción -- `memo_type` Tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account` Cuenta de destino - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Configurar `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un correspondiente `deposit_info_generator_type`. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente `memo` y `memo_type` (solo si no se incluye en la solicitud). - -::: - -:::note - -La cuenta Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Procesando la Información KYC - -Este paso es opcional, y es similar a [Procesando la Información KYC](#processing-kyc-information) del flujo de depósitos. - -### Fondos Recibidos - -Si se recibieron fondos en cadena, necesitas proporcionar los montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Monto Actualizado - -Si se recibieron fondos en cadena, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `fee_details` pueden ser actualizados usando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos Enviados Fuera de la Cadena - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Fuera de la Cadena Disponibles - -Puedes cambiar el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos fuera de la cadena, y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos Fuera de la Cadena Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso Enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Reembolso Enviado](#refund-sent) del flujo de depósito. - -### Envío de Reembolso a Través del Servicio de Custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Al igual que con el flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Error de Transacción](#transaction-error) del flujo de depósito. - -### Transacción Caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Transacción Caducada](#expired-transaction) del flujo de depósito. - -### Transacción En Espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Transacción En Espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, ver [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de Transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 71d27f5ae7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un servidor de producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté En vivo y hayas probado tanto los flujos de depósito como de retirada, es hora de comenzar con el despliegue real conectado a un KYC real y a los banking rails providers reales. Antes de utilizar cualquier API bancaria, es fundamental que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Desplegar un entorno seguro - -Asegúrate de mantener el servidor de prueba en funcionamiento y desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas características en el testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en este código y/o habrá muchas implementaciones que se probarán internamente antes de compartirlas con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, solo tienes que modificar la [frase de contraseña](/docs/networks#network-passphrases) de la red (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia tu configuración de Anchor Platform en el archivo `production.env`: - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectando a KYC reales - -La mayoría de los anchors necesitan recopilar información de [Conoce a tu Cliente](https://es.wikipedia.org/wiki/Conoce_a_tu_cliente) para cumplir con las regulaciones locales antes de honrar depósitos y retiradas. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejes el KYC depende de ti: hay muchos servicios que proporcionan soluciones de KYC a través de APIs e iFrames, y validan los datos ingresados y sincronizan con bases de datos gubernamentales para verificar los requisitos. Cada jurisdicción tiene requisitos KYC específicos, y difieren de jurisdicción a jurisdicción, por lo que es mejor encontrar un proveedor KYC específico para tu país que satisfaga tus necesidades. - -Algunos países requieren diferentes campos de KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios KYC según la cantidad de depósito o retirada, simplemente agrega un campo de cantidad antes del formulario KYC y asegúrate de que los campos KYC se actualicen según ese valor. - -La información KYC debe estar vinculada a la sesión creada a través de [Stellar Web Authentication](../sep10/README.mdx) y, por lo tanto, al usuario, por lo que solo necesitas solicitarle al usuario esta información una vez. Después de que se complete el primer flujo de KYC, un usuario no debería tener que ingresar la información nuevamente. - -Asegúrate de que los errores y mensajes de validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia del usuario y aumentar la tasa de conversión de KYC. También deberías localizar mensajes según el idioma y la ubicación del usuario. - -## Rellenando previamente el formulario KYC - -Rellenar previamente el formulario KYC es una excelente manera de reducir la fricción al comenzar a usar un anchor, y las billeteras suelen proporcionar un conjunto de campos que se utilizan comúnmente en todo el ecosistema. En resumen, el anchor puede renderizar el formulario KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, deberías seguir habilitando los campos pre-rellenados para que sean editables, ya que el usuario podría haber ingresado un nombre diferente durante el proceso de registro de la billetera y podría querer editarlo antes de finalizar el proceso de KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [JWT interactivo](./faq.mdx#how-to-use-jwts), enviados por Anchor Platform - -## Conectando a los banking rails reales - -Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado por un activo real en el mundo real, los emisores de tokens respaldados por fiat necesitan conectarse a los banking rails reales para validar los depósitos de los usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y completar las retiradas de los usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiradas de un token que emite otra organización, seguirás un proceso similar. - -Para obtener (e identificar) una transferencia de usuario, los emisores generalmente toman uno de los dos enfoques: - -- Polling de API: esta opción consiste en obtener la API del banco, a través de un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirme una nueva transacción e identifique que está relacionada con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todos los banking rails admiten esta opción, pero es la más eficiente en términos de lógica de back-end. En este enfoque, el banco contacta proactivamente el endpoint de un emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede entonces igualar esa transacción a un depósito en proceso existente, y validar que el usuario puede recibir sus fondos digitales - -Hay muchas formas de identificar que una transferencia bancaria específica se relaciona con un depósito específico (y, como consecuencia, a un usuario). Al algunos bancos (y países) les permite crear una única cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualarlo con la información proporcionada en el formulario KYC. - -Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando las conexiones de banking rails estén en su lugar. Algunos bancos proporcionan una API de prueba que se puede utilizar para desarrollo y despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para una mejor seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar las transferencias de retirada. En términos de UX, esta aprobación manual es aceptable siempre que los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no son más largos que un par de horas. - -## Pruebas de casos extremos - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se esté comportando como se espera. Aquí hay una lista de sugerencias de pruebas que deberían cubrir una gran cantidad de casos extremos de la aplicación: - -### Pruebas generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz utilizando diferentes información regional, y verifica el contenido traducido, incluidos los mensajes de error, respuestas, formateo de fechas y formateo de números - -### Pruebas de KYC - -- Verifica que KYC aparezca con una nueva billetera SK -- Verifica que KYC no acepte entradas en formato incorrecto, y que los mensajes de error sean comprensibles -- Verifica que puedas utilizar la misma información KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) múltiples veces -- Verifica que puedas pasar por KYC múltiples veces con la misma SK de Stellar. - -### Prueba interactivas - -- Verifica que el flujo de depósito funcione y que los banking rails estén funcionando -- Verifica que no puedas hacer una retirada con un valor superior al saldo actual -- Verifica que el flujo de retirada funcione y que los banking rails estén funcionando - -### Pruebas de seguridad - -- Asegúrate de que los endpoints de la plataforma estén asegurados - -## Pulido e internacionalización - -Admitir dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan a través de las pantallas, y admite instituciones internacionales (como billeteras) que necesitan probar el producto antes de iniciar nuevas integraciones. - -Puedes admitir múltiples idiomas en tu aplicación web utilizando el parámetro `Accept-Language` de los encabezados de solicitud http para localizar el contenido y permitir que los usuarios cambien eso de manera sencilla (por ejemplo, un icono de bandera en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al comienzo de los procesos de depósito y retirada. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de verificar el formateo de números, fechas, etc. - -Tener un grupo de testers beta es una excelente manera de verificar si hay casos extremos que necesitan ser pulidos, y para confirmar que el sistema está funcionando bien con una variedad de entradas de usuarios. Puedes realizar pruebas beta utilizando una etapa de lanzamiento suave antes de comenzar a hacer esfuerzos en marketing y distribución. Documentar el proceso de prueba con capturas de pantalla y videos es muy útil para auditorías de seguridad futuras, y brinda a nuevos socios y usuarios potenciales claridad y confianza en el producto. - -## Conectando a billeteras - -Todas las interacciones del usuario de Anchor se realizan a través de una billetera, por lo que es vital que los anchors estén conectados a billeteras que tengan una buena penetración de mercado en la región donde el negocio está más enfocado. Conectar a billeteras es un proceso simple, ya que ambos extremos de esa integración ya son compatibles con los SEPs. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente admiten SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta emisora es una excelente manera de comenzar a obtener algunos usuarios reales para el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/README.mdx deleted file mode 100644 index 8e0b7e84db..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos Transnacionales -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual las billeteras y/o exchanges interactúan con el conjunto existente de servicios de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/configuration.mdx deleted file mode 100644 index 0dd916285b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación de producción que use la frase de acceso de la red pública, las URL de servicio de producción, tus cuentas de distribución de mainnet y la clave de firma, así como las cuentas de emisión de mainnet de los activos que tu servicio utiliza. - -## Habilitar pagos transnacionales - -Ahora estás listo para habilitar pagos transnacionales a través de la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH -``` - - - -La información proporcionada en los objetos `sep31` y `send` se relaciona estrechamente con la información que se expondrá a la aplicación de billetera usando el endpoint SEP-31 [`GET /info`][sep31-get-info]. La Anchor Platform también usa esta información para validar las solicitudes realizadas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y se eliminará en una futura versión, pero puedes ajustar los valores de `send.min_amount` y `send.max_amount` de acuerdo con los límites de tu servicio. - -Los valores `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y deben solicitar una tasa de cambio usando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de proceder. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los remitentes ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté en vivo. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API de KYC del cliente - -Los negocios necesitan recopilar y validar la información KYC de los clientes para quienes están facilitando transacciones. Los clientes determinan qué información KYC necesita ser recopilada y envían esa información a través de una API KYC SEP-12 hospedad por la Anchor Platform, pero la Anchor Platform nunca almacena información de identificación personal (PII). En su lugar, reenvía solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio de nuevo al cliente, actuando como un servidor proxy. - -Consulta la [especificación de la API KYC de la Anchor Platform][platform-api-kyc] para obtener detalles sobre los endpoints que deben implementarse en el servidor de tu negocio. - -Para hacer que esta API esté disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Habilitemos también en nuestro entorno. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, tenemos que definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transnacionales en dos jurisdicciones regulatorias distintas, por lo que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y serían representados usando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente exclusivos, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación existe porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo específico de transacción, como una envía de una gran cantidad. Solo puede validar que un cliente está aprobado para uno de los tipos de clientes definidos. Esta limitación se eliminará en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente que envía y un tipo de cliente que recibe. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Pingueemos nuevamente el endpoint de información para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Los negocios necesitan proporcionar a sus contrapartes del lado de envío una API [Rate][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo on-chain utilizado para la liquidación y el activo fiat utilizado para pagar al destinatario. Si la tasa es competitiva, los remitentes también necesitan poder solicitar un compromiso a la tasa actualmente ofrecida por el negocio por un breve período de tiempo. - -La Anchor Platform proporciona la API [SEP-38 RFQ][sep38] a los remitentes para este propósito. - -Para hacer que esta API esté disponible para los clientes, agreguemos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Habilitemos también en nuestro entorno. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar que USDC se use en esta API, así como agregar un activo off-chain que se pueda intercambiar. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:BRL - country_codes: - - BR - - schema: iso4217:BRL - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BR - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté en vivo! Después de `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BR"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar la autenticación de la API Callback - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Agreguemos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como el host porque la Anchor Platform estará haciendo solicitudes al servidor de tu negocio desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de preproducción o producción, asegúrate de actualizar las URL de tu servicio. - -Definiremos el servidor que implementa los endpoints definidos en la API Callback en la siguiente sección. - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 0b9d59892e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te llevará a través de la configuración e integración con Anchor Platform con el propósito de desarrollar un servicio receptor de pagos transnacionales compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transnacionales. - -Al aprovechar la admisión del Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios emisores de Stellar. - -:::info - -A medida que mejoramos la documentación, partes de esta guía relevantes para otros casos de uso podrían trasladarse a sus propias secciones. - -::: - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] Anchor Platform y configurado las características necesarias requeridas por SEP-31: [SEP-1 (Archivo de Información Stellar)][sep1-ap] y [SEP-10 (Autenticación Stellar)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/integration.mdx deleted file mode 100644 index 617a16b562..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,669 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrarse con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] y [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recolectar los datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de FX entre los activos on-chain y off-chain admitidos -- `GET /transactions` solicitudes para obtener actualizaciones sobre el estado de las transacciones de la Anchor Platform (documentación próximamente) -- [`JSON-RPC`][json-rpc-methods] solicitudes para actualizar los estados de las transacciones de la Anchor Platform - -Lo siguiente también puede ser requerido dependiendo de tu caso de uso: - -- [`DELETE /customer`][delete-customer] si tu negocio quiere o está obligado a permitir que los emisores soliciten la eliminación de datos de clientes - -## Crear un Servidor Empresarial - -Primero, vamos a crear un servidor empresarial y añadirlo a nuestro archivo de docker compose. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:3.0.4 - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:3.0.4 - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web simple utilizando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar exitosamente los tres servicios. - -Esta guía no proporciona un ejemplo de implementación de los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia de la API de Anchor Platform][ap-api], y las secciones a continuación ampliarán los conceptos importantes para entender al implementar los puntos finales. - -## Puntos finales de devolución de llamada del cliente - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [Especificación de la API KYC SEP-12][sep12]. - -### Identificando Clientes - -Los clientes pueden ser identificados utilizando dos enfoques. - -El primer enfoque utiliza una cuenta Stellar y un memo. Al usar la Anchor Platform para facilitar pagos transnacionales, la organización emisora utiliza su propia cuenta Stellar, la que se usa para autenticar a través de [SEP-10 Autenticación Stellar][ap-sep10], al registrar clientes en tu negocio. Los memos se utilizan para distinguir clientes únicos que provienen de la misma organización emisora. - -El segundo enfoque utiliza identificadores de cliente generados por tu servicio. Por ejemplo, si una organización emisora está registrando un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica a la organización emisora, y el memo `780284017` identifica al cliente. Los memos suelen ser enteros de 64 bits, pero también pueden ser otros tipos de datos, por lo que deben ser guardados como cadenas. En respuesta, tu negocio debería devolver un ID de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor empresarial puede usar cualquier identificador para los clientes mientras sea una cadena. - -Después del registro de un cliente, la organización emisora puede usar cualquiera de los enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir una solicitud `GET /customer` como la siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización emisora podría usar el identificador que devolviste cuando originalmente registraron al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio necesitará mantener un mapeo entre la cuenta y el memo que se usó para registrar originalmente al cliente y el ID que devuelves en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podríamos mantener este mapeo para tu negocio para que solo tengas que trabajar con los IDs que generas. - -### Tipos de Clientes - -Tu negocio probablemente requiere diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones emisoras necesitarán entender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, deberías usar el tipo pasado para evaluar si el emisor ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, deberías usar el tipo para determinar el estado del cliente. - -### Prueba con la Billetera Demo - -Puedes probar tu implementación con la [Billetera Demo Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar Activo" e introduce el código del activo y el dominio de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar line de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver que la billetera demo encuentre las URLs de tu servicio, se autentique y verifique qué campos KYC necesita recolectar. Luego debería presentar un formulario para que ingreses los detalles KYC del emisor y el receptor. - -[![billetera demo después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, se enviará esa información a la Anchor Platform, que la enviará a tu servidor empresarial. Una vez que la billetera demo tenga los IDs de los clientes que generaste, iniciará una transacción que debería fallar. - -## Punto final de devolución de llamada de tasas - -Una vez que la organización emisora haya registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa de FX, de tu negocio. La Anchor Platform solicita esta información a tu servidor empresarial utilizando el [`GET /rate` endpoint][get-rate]. - -### Cotizaciones Firmes vs. Indicativas - -Las solicitudes de cotizaciones tendrán un parámetro `type` que es [`indicative`][indicative] o [`firm`][firm]. Si `type=firm`, tu respuesta debe incluir el campo `id` y `expires_at` y reservar la liquidez necesaria para cumplir con esta cotización hasta que expire. Si `type=indicative`, no devuelvas los campos `id` o `expires_at` porque la tasa proporcionada no se utilizará en una transacción. - -Ten en cuenta que el cliente puede solicitar que la cotización expire después de una fecha y hora específicas utilizando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor `expires_at` que esté en o después de la fecha y hora solicitadas o rechazar la solicitud con una respuesta de 400 Bad Request, que se reenviará al cliente. - -### Usando el ID del Cliente - -Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización emisora que solicita la tasa. Puedes usar este parámetro para adherirte a los términos comerciales acordados con esa organización emisora, como ofrecer tasas con descuento. `client_id` puede no estar presente en solicitudes indicativas, en cuyo caso debería devolverse tu precio de mercado. Actualmente, `client_id` siempre será la clave pública Stellar que la organización emisora utilizó para autenticarse con la Anchor Platform. - -### Métodos de Entrega - -Es común que las tasas y tarifas de las empresas difieran dependiendo de las vías de pago utilizadas para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán la vía de pago que desean que use tu negocio para solicitudes de cotización firmes. - -Debido a que este endpoint actualmente solo se utiliza para pagar remesas en activos off-chain, se utilizará `buy_delivery_method`. Si este endpoint se utiliza en otros flujos de transacción como depósitos SEP-24, entonces `sell_delivery_method` también puede ser pasado para negocios que apoyen estos tipos de transacciones. - -## Obteniendo Actualizaciones sobre el Estado de la Transacción - -Para facilitar pagos transnacionales, necesitarás poder detectar cuándo una organización emisora ha enviado un pago on-chain a tu negocio y determinar qué transacción ese pago estaba destinado a cumplir. - -La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacción correspondiente con información sobre el pago. Tu negocio puede detectar estas actualizaciones consultando el endpoint de la API de la Plataforma `GET /transactions`. - -### Ejecutando el Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. Para ejecutar el observador, añade lo siguiente a tu archivo de docker compose. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:3.0.4 - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Consultando por Pagos Recibidos - -El Stellar Observer realiza solicitudes JSON-RPC a la API de la Plataforma siempre que detecta pagos recibidos para transacciones iniciadas por organizaciones emisoras, actualizando así la fecha y hora de `transfer_received_at` de la transacción. - -Tu negocio debe consultar periódicamente el endpoint de la API de la Plataforma `GET /transactions` para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pago transnacional iniciadas por las organizaciones emisoras. Esta lista estará ordenada de acuerdo con el momento en que se recibió un pago para esa transacción. Para cada transacción devuelta, tu negocio debería verificar si ya ha detectado el pago para esa transacción. If it has, you have detected all payments made to your account(s). - -## Actualizando la Transacción a Través de JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de la transición de estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas configurar para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![diagrama de flujo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para Recibir Fondos - -Las transacciones SEP-31 deberían estar inicialmente en el estado `pending_receiver`. Para solicitar fondos de la Anchor Enviadora, la Anchor Receptora debería cambiar el estado de la transacción a `pending_sender` haciendo la siguiente solicitud RPC: - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -El estado de la transacción se cambiará a `pending_sender`. - -### Fondos Recibidos - -Si la Anchor Enviadora ha enviado los fondos, la Anchor Receptora debería cambiar el estado de la transacción a `pending_receiver` haciendo la siguiente solicitud JSON-RPC: - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción se cambiará a `pending_receiver`. - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verificando Información del Cliente - -En algunos casos, la Anchor Receptora podría necesitar solicitar información actualizada de la Anchor Emisora. Por ejemplo, el banco le dice a la Anchor Receptora que el nombre del Cliente Receptor proporcionado es incorrecto o carece de un segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debería pasar al estado `pending_customer_info_update` hasta que la Anchor Emisora realice otra solicitud `PUT /customer` de SEP-12 para actualizar. La Anchor Emisora puede verificar qué campos necesitan ser actualizados haciendo una solicitud `GET /customer` de SEP-12 que incluya los parámetros id o cuenta y memo. La Anchor Receptora debería responder con un estado `NEEDS_INFO` y con `last_name` incluido en los campos descritos. - -Después de que la Anchor Emisora haga una solicitud `PUT /customer` de SEP-12, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Además, llama a este método cada vez que cambia el estado SEP-12 para un cliente, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de devolución de llamada sea notificado del último estado del cliente, permitiendo que el cliente le pida al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Hacer un Reembolso Stellar - -Integrarse con el servicio de custodia te permite hacer un reembolso a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el total del monto del reembolso más la tarifa debe ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Reembolso Enviado - -Es posible enviar todos los fondos de vuelta a la `Anchor Enviadora` (reembolso). Necesitas reembolsar toda la suma (reembolso total). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la tarifa debe ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de la transacción, y luego puedes intentar procesar la transacción nuevamente o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar aquellas transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar transacciones inactivas en estado `incomplete`. Para hacerlo, simplemente cambia el estado de la transacción a `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede usar después de que el usuario ha realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiarse de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -items: - - ... - sep31: - quotes_required: false -``` - - - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicativo]: https://www.investopedia.com/terms/i/indicativequote.asp -[firme]: https://www.investopedia.com/terms/f/firmquote.asp -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/README.mdx deleted file mode 100644 index e154157919..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas programáticas -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio por el cual las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, nunca requiriendo que el usuario interactúe directamente con la entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 53f3fbc280..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar depósitos y retiradas SEP-6, la Anchor Platform debe configurarse para hacer lo siguiente: - -- Proporciona las URLs de servicio necesarias para los endpoints SEP-6, 12 y 38 en el archivo `stellar.toml` -- Proporciona información sobre los activos en cadena y fuera de cadena, así como los medios de pago admitidos por tu negocio a través de los endpoints `/info` de SEP-6 y SEP-38 -- Admite los endpoints y callbacks necesarios para solicitar información KYC y proporcionar tasas de cambio - -## Habilitar Depósitos y Retiradas Programáticas - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un Archivo de Información Stellar - -Vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 es admitida por tu negocio, y también necesitan conocer todos los activos Stellar que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue de producción que use la frase de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución de Mainnet y clave de firma, así como las cuentas emisoras de Mainnet de los activos que tu servicio utiliza. - -### Modificar el Archivo de Configuración de Activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores dependiendo de tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para el USDC de Circle y un fiat USD para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que serán expuestos por el endpoint SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que serán expuestos por el endpoint SEP-6 [`GET /info`][sep-6]. Los métodos listados deben igualar los métodos definidos en la sección SEP-38 del archivo. - -También ten en cuenta que los activos fiat, aquellos con `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit` o `withdraw` especificados. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods` especificados. - - - -```yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:USD - - id: iso4217:USD - significant_decimals: 2 - sep38_enabled: true - sep38: - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Gestionar Cuentas de Distribución - -Ten en cuenta que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta se proporcionará junto con un memo generado aleatoriamente y único por transacción a los clientes como la dirección a la que enviar fondos para transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar utilizas un tercero que te proporciona una cuenta Stellar y memo para que puedan recibir fondos en tu nombre, como un exchange o custodio, deberías omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, necesitarás proporcionar la cuenta Stellar y el memo que deseas usar para recibir fondos a través de una solicitud a la Anchor Platform [`request_onchain_funds`][request-onchain-funds] en una base por transacción. - -Para configurar la Anchor Platform para esperar que la cuenta Stellar y el memo sean proporcionados a través de API en lugar de configurados a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si usas un proveedor de billetera admitido por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billetera para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también utilizará el proveedor de billetera para enviar fondos a los clientes. Consulta la sección [servicios de custodia] para obtener más información sobre cómo configurar esta función, pero primero necesitarás especificar un valor diferente para la variable de entorno mencionada anteriormente. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar Callbacks al Servidor Business - -Los negocios necesitan recolectar y validar información KYC sobre los clientes para los que están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC necesita ser recolectada y envían esa información a través de la API KYC SEP-12 hospedada por la Anchor Platform, pero la Anchor Platform nunca almacena información de identificación personal (PII). En su lugar, reenvía las solicitudes de los clientes al servidor business y devuelve las respuestas del negocio a los clientes, actuando como un servidor proxy. - -Adicionalmente, los negocios necesitan proporcionar a los clientes una API [Tasas][get-rates-api] para comprobar las tasas de cambio que están ofreciendo entre los activos en cadena y fuera de cadena admitidos por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso a la tasa actualmente ofrecida por el negocio durante un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor business para obtener tasas de cambio y cotizaciones y se las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor business, primero necesitas agregar tu servidor business al archivo docker compose. Luego, para admitir solicitudes a tu servidor business desde la Anchor Platform, necesitas habilitar callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior le dice a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes realizadas a `/callbacks/` para que tu servidor pueda autenticar la Anchor Platform antes de procesar solicitudes. - -Consulta la API [KYC][platform-api-kyc] y la API [Tasas][get-rates-api] para obtener detalles sobre los endpoints que deben implementarse en tu servidor business. - -### Configuración Adicional Opcional - -`more_info_url` es una URL opcional proporcionada por tu servidor business para que las aplicaciones de billetera muestren información sobre transacciones iniciadas previamente. Esta URL se utiliza normalmente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se mostrará sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Los negocios pueden establecer un plazo para las acciones del usuario en las transacciones utilizando el campo `user_action_required_by`. Para ejemplos, consulta [Métodos JSON-RPC][json-rpc-methods]. Además, el parámetro `initial_user_deadline_seconds` establece un tiempo predeterminado (en segundos) que un usuario tiene para actuar antes de que la transacción pase al estado `EXPIRED`. - - - -```bash -# dev.env -SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -## Probar con la Billetera Demostrativa - -¡Las billeteras ahora deberían ser capaces de descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente deberían verse ahora algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno debería verse ahora algo como lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [Billetera Demostrativa Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crear un nuevo keypair -- Haz clic en el botón "Agregar Activo" e ingresa - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el desplegable y haz clic en "Depósito SEP-6", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar utilizando el keypair Stellar que acabas de crear, e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index dade54a4ff..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos programáticos. - -Al aprovechar el apoyo de la Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como billeteras y exchanges, ampliando su alcance y conectando con los usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias, requeridas por SEP-6: [SEP-1 (Archivo de Información de Stellar)][sep1-ap] y [SEP-10 (Autenticación de Stellar)][sep10-ap]. - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información KYC y de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiat real con el anchor (como transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor, o cualquier otro caso de uso que no se mencione aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, el cliente puede ingresar su información de transacción y cualquier información KYC adicional que no se haya recopilado ya -4. Tras solicitar la aprobación del cliente, la billetera envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de cualquier método admitido por el anchor (como transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/integration.mdx deleted file mode 100644 index 7d75df1199..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la plataforma sobre eventos relacionados con las transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó los montos de entrada/salida/tarifa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se realiza haciendo solicitudes JSON-RPC al endpoint de la API de la plataforma. Las solicitudes JSON-RPC permiten que actualices el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos que requiere el método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API se llamará cada vez que un usuario o el ancla realice alguna acción que haga avanzar el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejando Eventos][event-handling]. - -Puedes encontrar más información sobre el flujo y los estados de las transacciones en el [documento del protocolo SEP-6][sep-6]. - -## Devoluciones de llamada - -La Anchor Platform depende del servidor de negocios para proporcionar y almacenar información sobre los clientes y las cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información del cliente. En cambio, reenvía todas las solicitudes SEP-12 de clientes al servidor de negocios. El servidor de negocios es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor de negocios debe implementar las [API de clientes][customer-callback] para manejar actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para admitir el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotizaciones se utiliza para proporcionar al usuario el monto esperado del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocios debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de Plataforma - - - -### Usando la Clave de API - - - -### Usando JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando la Transacción de Depósito (Intercambio) a través de JSON-RPC - -El diagrama de flujo del depósito SEP-6 define secuencias/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deberían ser llamados para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de intercambio de depósitos es el mismo que el flujo de depósitos, excepto que los montos no necesitarán ser recalculados al solicitar fondos fuera de la cadena, si el usuario ha proporcionado una cotización firme del ancla. - -[![diagrama de flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Verificando la Información KYC - -Aunque la Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice una transferencia. Escuchando eventos de creación de transacciones, o consultando el [`GET /transactions`][get-transactions] endpoint, puedes determinar si una transacción requiere que el cliente actualice su información. Los campos requeridos de SEP-9 pueden comunicarse al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - -Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Además, llama a este método siempre que el estado SEP-12 de un cliente cambie, como cuando la información del cliente se está validando y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente solicite al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el ancla puede notificar a la plataforma que está listo para recibir fondos. El ancla debe usar el RPC `request_offchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es el monto que el usuario tiene que enviar al negocio. -- `amount_out` es el monto que el usuario recibirá. -- `fee_details` es el monto total de tarifas recaudadas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y el número de cuenta `123456789`. - -La información sobre los montos (entrada/salida/tarifa) es requerida si deseas mover la transacción al estado `pending_user_transfer_start`. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de intercambio con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -### Fondos Recibidos - -Si se recibieron fondos fuera de la cadena, querrás proporcionar información actualizada sobre la transacción. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de recibir los fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de monto son opcionales. Si se omiten, se utilizarán los valores anteriores a esta solicitud. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de la transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero los fondos aún no se han recibido. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que se haya enviado la transacción Stellar, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos se enviaron con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el id de la transacción en la red Stellar de la transferencia. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción se transferirá al estado `completed`. - -### Enviando Pago a través del Servicio de Custodia - -La Anchor Platform proporciona la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para hacer un pago a través de un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform realizará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción se cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [línea de confianza](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pending_trust` para indicar que el ancla está esperando que el usuario establezca la línea de confianza. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una línea de confianza de activo que no fue configurada por el usuario. Hay dos formas en que la transacción puede moverse al estado `pending_trust`. La primera es procesar un pago a través de un servicio de custodia en caso de que detecte que la línea de confianza no está configurada. La segunda es cuando el negocio mismo detecta que falta la línea de confianza y quiere notificar al usuario que debe configurarse. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia comprueba periódicamente si la línea de confianza fue configurada. Si lo fue, enviará automáticamente un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Línea de Confianza - -Este estado debe establecerse si el negocio ha detectado que la línea de confianza fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag que define si la línea de confianza fue o no configurada por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo de la bandera `success`, el estado de la transacción se cambiará a `pending_stellar` si la línea de confianza fue establecida, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, es necesario enviar fondos de vuelta al usuario (reembolso). Puedes reembolsar toda la suma (reembolso completo) o realizar un conjunto de reembolsos parciales de vuelta a la `source_account` usando el `refund_memo` y `refund_memo_type` asociados con la transacción si están presentes. Además, si el usuario envió más dinero del que se esperaba, puedes reembolsar una parte de la suma de vuelta al usuario y enviar el resto como fondos on-chain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `refunded`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a una red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establecerá al esperar que Bitcoin u otra red cripto externa complete una transacción, o al esperar una transferencia bancaria. - -### Error de Transacción - -Si te encuentras con un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción como `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de la transacción, y luego puedes volver a intentar procesar la transacción o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer manejar transacciones abandonadas caducando aquellas que han permanecido inactivas durante un cierto período. Para lograr esto, verifica el estado de la transacción usando el endpoint `GET /transactions` y ordena los resultados por la marca temporal `user_action_required_by`. Si la marca temporal ha pasado, ejecuta manualmente la lógica apropiada, como caducar la transacción o iniciar un reembolso automático, según el estado actual de la transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede usarse después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, haz la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualización de la transacción de Retirada (Exchange) a través de JSON-RPC - -El diagrama de flujo de retirada SEP-6 define la secuencia/reglas de la transición de estado de la transacción. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene un atributo requerido, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de retirada de exchange es el mismo que el flujo de retirada, excepto que los montos no necesitarán ser recalculados al solicitar fondos onchain, si el usuario ha proporcionado una cotización firme del ancla. - -[![Diagrama de flujo de retirada sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen la forma más corta. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo indican que la transacción está en un estado de error o ha caducado. - -::: - -Una vez que el flujo de retirada esté terminado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden ser reutilizadas. - -El punto de partida tanto para retirada como para depósito es el mismo. - -### Listo para recibir fondos - -De manera similar al depósito, el paso después de haber colectado KYC es notificar al usuario que el ancla está lista para recibir fondos. Sin embargo, dado que tu servicio estará recibiendo transacciones a través de la red Stellar, la solicitud RPC será diferente. El ancla debe usar el RPC `request_onchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `fee_details` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, está configurado a USD, asumiendo que el usuario realizó una transferencia bancaria al sistema utilizando USD. -- `memo` es el memo que el usuario debe usar al enviar sus fondos onchain al ancla. -- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos onchain al ancla. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiradas de exchange con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -:::tip - -Configurar `memo`, `memo_type` y `destination_account` es opcional. - -Si se habilita la integración con un custodio de terceros, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece `memo` y `memo_type` automáticamente (solo si no están incluidos en la solicitud). - -::: - -:::note - -La cuenta Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Fondos recibidos - -Si se recibieron fondos onchain, debes proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si se habilita la integración de custodia. - -::: - -### Monto actualizado - -Si se recibieron fondos onchain, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` actual. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo se pueden actualizar `amount_out` y `fee_details` utilizando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos offchain disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain, y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos offchain pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago se ha enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos offchain enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas realizar la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso enviado - -La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviar reembolso a través del servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea inferior a `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error en la transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error en la transacción](#transaction-error) del flujo de depósito. - -### Transacción caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción caducada](#expired-transaction) del flujo de depósito. - -### Recuperación de transacciones - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacciones](#transaction-recovery) del flujo de depósito. - -## Seguimiento de transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[manejando-eventos]: ../events/README.mdx -[callback-del-cliente]: ../../api-reference/callbacks/README.mdx -[callback-de-tasa]: ../../api-reference/callbacks/README.mdx -[obtener-transacciones]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/README.mdx deleted file mode 100644 index b8868bcf2a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Referencia de API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Ver toda la información de la API de Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/README.mdx deleted file mode 100644 index 1d5898596e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Servidor de Retornos -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de retorno para el servidor de tu negocio. - - - -| | | -| ---------- | ----------------------------------------- | -| OBTENER | [/cliente](./get-customer.api.mdx) | -| PONER | [/cliente](./put-customer.api.mdx) | -| ELIMINAR | [/cliente/:id](./del-customer.api.mdx) | -| PUBLICAR | [/evento](./post-event.api.mdx) | -| OBTENER | [/tarifa](./get-rates.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index c9007b0b66..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,192 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -The request for this endpoint is identical to the -[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) -request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - - - -
- -

- Path Parameters -

-
-
    - - - -
-
-
-
- - -
- - - Success. - - -
- -
-
-
- - - Customer not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 19356cdde9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,617 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -The request and response for this endpoint is identical to the -[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) -request and response defined in SEP-12. - -This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the -fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. -If the server still needs more info, or the server needs updated information, it should return the fields required. - - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - - - -
-
-
-
- - -
- - - Valid request. Customer either already exists or the customer identified by the parameters is new and must - provide the field values described in the response body. Response bodies are identical to the schema defined - in [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). - - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
    - - - - fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - provided_fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - - -
-
-
- - - - - The case when a customer has been successfully KYC'd and approved - - - - -
-
-
-
-
-
- - - Error. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Not Found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 14ad374a80..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,601 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must -use exchange rates that are communicated to the client application requesting the transaction. When clients make -requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or -[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the -client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter -for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, -either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either -`sell_asset` or `buy_asset` is a Stellar asset. - - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status -code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - -
    - - - - rate - - object - - -
    - - - - - - - - - - - -
    - - - - fee - - object - - -
    -
    - - - An object describing the fees added on top of the rate provided via the `price` attribute. - - -
    - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Unprocessable Entity. This status should be returned when the anchor understood the request but cannot - return a success response. - In these cases, the Platform will respond to the client application's request with a `400 Bad Request` - and include the error message provided by the anchor in the response body. - - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Error. The Platform will respond to the client application with the same response code and body. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 522b6602b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,2943 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Receive a JSON object representing an event. - - - - - - - -
- -

- Body -

-
- -
    - - - - - - - -
    - - - - payload - - object - - - - required - - -
    - -
    - - - transaction - - object - -
    - -
    - - oneOf - - - - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - quote - - object - - -
    - - - - - - - - - - - - - - - - - -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    - - - - -
    -
    -
    -
    - - - - customer - - object - - -
    - - - -
    -
    -
    -
    -
    -
    -
-
-
-
-
- - -
- - - The event is successfully processed and ready to receive next event. The response body is empty. - - -
- -
-
-
- - - The event is invalid or rejected. The response body contains the error message. - - -
- -
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index b6c0708d15..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,1515 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) -request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors -must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will -be forwarded to the anchor as with the `application/json` content type. Requests containing -binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
    - - - - fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - provided_fields - - object - - -
    - -
    - - - - property name* - - - - -
    - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid data. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Not Found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/versions.json deleted file mode 100644 index 23f5ac539d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/README.mdx deleted file mode 100644 index 84b47467f3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de endpoints para interactuar con los servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index 0df32a8abe..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,336 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server creates custody transaction record in DB. - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    -
    - - - object - - -
    -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 50bdc3fa52..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,276 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - - - -
- -

- Body -

-
- -
    -
    - - - object - - -
    -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 2e762a40d5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,547 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls the configured custody service to send payment. - - - - - - -
- -

- Body -

-
- -
    -
    - - - object - - -
    -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid Request. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Transaction is not found. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service rate limit is exceeded. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service is unavailable. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 0ca31da907..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,575 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - - -
- -

- Body -

-
- -
    - - - - - - - - - -
-
-
-
-
- - -
- - - Success. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Invalid Request. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Transaction is not found. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service rate limit is exceeded. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Internal Server Error. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
- - - Custody Service is unavailable. - - -
- - - - -
- - - Schema - -
- -
    - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/versions.json deleted file mode 100644 index 26d39ec7ce..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/README.mdx deleted file mode 100644 index 2630ce6b7f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de la Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/README.mdx deleted file mode 100644 index e6a393322a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactuar con tu instancia de Anchor Platform a través del uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index 02b6b0a621..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,10163 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.8.4" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "get_transaction", - "summary": "Retrieve a transaction.", - "description": "Retrieve a transaction by its ID.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionExample", - "description": "Example request to the `get_transaction` method.", - "params": [ - { - "name": "id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - } - ], - "result": { - "name": "platformTransactionResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - } - } - ] - }, - { - "name": "get_transactions", - "summary": "Retrieve a list of transactions.", - "description": "Query a list of transactions by SEP, transaction status or other criteria.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "sep", - "summary": "Sep of the transaction.", - "description": "Sep of the transaction belongs to", - "required": true, - "schema": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - } - }, - { - "name": "order_by", - "summary": "The field that transactions will be ordered by .", - "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", - "required": false, - "schema": { - "title": "order_by", - "description": "The order by string used to sort the results.", - "type": "string", - "enum": [ - "created_at", - "transfer_received_at", - "user_action_required_by" - ], - "default": "created_at" - } - }, - { - "name": "statuses", - "summary": "The statuses of transactions.", - "description": "The statuses of the transaction to filter by.", - "required": false, - "schema": { - "title": "status", - "description": "The statuses of the transaction to filter by.", - "type": "array", - "enum": [ - "incomplete", - "completed", - "refunded", - "expired", - "error", - "pending_stellar", - "pending_external", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "pending_anchor", - "pending_trust", - "pending_user", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update" - ] - } - }, - { - "name": "page_size", - "summary": "The number of transactions to return.", - "description": "The number of records to return in each page.", - "required": false, - "schema": { - "title": "page_size", - "description": "The number of records to return in each page.", - "type": "integer", - "default": 20 - } - }, - { - "name": "page_number", - "summary": "The page number of transactions to return.", - "description": "Page number to use for continuous search. Page count beings at 0.", - "required": false, - "schema": { - "title": "page_number", - "description": "Page number to use for continuous search. Page count beings at 0.", - "type": "integer", - "default": 0 - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionsExample", - "description": "Example request to the `get_transactions` method.", - "params": [ - { - "name": "sep", - "value": "31" - }, - { - "name": "order_by", - "value": "created_at" - }, - { - "name": "statuses", - "value": [ - "completed" - ] - } - ], - "result": { - "name": "platformTransactionResponses", - "value": { - "records": [ - { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - ] - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and fee_details values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": "false", - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": "false", - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index 04a6edc7d7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección enumera los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La Especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - -| | | -| --- | --- | -| | [do_stellar_payment](do_stellar_payment.mdx) | -| | [do_stellar_refund](do_stellar_refund.mdx) | -| | [get_transaction](get_transaction.mdx) | -| | [get_transactions](get_transactions.mdx) | -| | [notify_amounts_updated](notify_amounts_updated.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated.mdx) | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent.mdx) | -| | [notify_refund_pending](notify_refund_pending.mdx) | -| | [notify_refund_sent](notify_refund_sent.mdx) | -| | [notify_transaction_error](notify_transaction_error.mdx) | -| | [notify_transaction_expired](notify_transaction_expired.mdx) | -| | [notify_transaction_on_hold](notify_transaction_on_hold.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery.mdx) | -| | [notify_trust_set](notify_trust_set.mdx) | -| | [request_offchain_funds](request_offchain_funds.mdx) | -| | [request_onchain_funds](request_onchain_funds.mdx) | -| | [request_trust](request_trust.mdx) | - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 11ce2f79c9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stelar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stelar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 901173359a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_reembolso_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_reembolso_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transaction.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transaction.mdx deleted file mode 100644 index 4782eee5c6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transaction.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: obtén_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "obtén_transacción")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transactions.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transactions.mdx deleted file mode 100644 index 26dab85735..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/get_transactions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: obtener_transacciones -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "obtener_transacciones")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 97610929be..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_actualizaciones_de_montos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_actualizaciones_de_montos")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index 60abacf5de..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_información_cliente_actualizada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_información_cliente_actualizada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 817a113664..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar flujo interactivo completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar flujo interactivo completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 35ed445bc2..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_disponibles", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index b4c7d587bc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 291add5e3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index d4ddf3f49a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_envíos_de_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_envíos_de_fondos_fuera_de_la_cadena", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 4c33818141..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_recibidos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_recibidos_en_cadena", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 9465a15b06..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_envíos_de_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_envíos_de_fondos_en_cadena", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 5ef18fd2e8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar reembolso enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index ab9c959050..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_de_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_de_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 119e4aece7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_expirada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 430ed01d9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_espera -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_espera", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 000198f5dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 591d8e72d0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_fijar_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fijar_confianza")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 2550832461..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_fuera_de_la_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 71bf2a00f0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: requestar_fondos_en_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "requestar_fondos_en_cadena")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 062418aedf..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index 5717596dcb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Introducción -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único endpoint HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es independiente del transporte, en el sentido de que los conceptos pueden ser utilizados dentro del mismo proceso, a través de sockets, a través de http, o en muchos y diversos entornos de paso de mensajes. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de miembro intercambiados entre el Cliente y el Servidor que se consideran para la coincidencia de cualquier tipo deben considerarse sensibles a mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/README.mdx deleted file mode 100644 index ff9b3b526f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando y toda la información necesaria proporcionada por una parte externa (como una billetera o un anchor). - -No debe confundirse con las [transacciones](/docs/learn/glossary#transaction) stellar. - - - -| | | -| ------- | --------------------------------------------- | -| OBTENER | [/transacciones/:id](get-transaction.api.mdx) | -| OBTENER | [/transacciones/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 66953fcfde..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,4054 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJzdlU1v4zYQhv/KYE4toMheJ9iDbmlhFAaK1kjSUxpkaXJscSORDDlyYhj678XQMizvpsF2eyjQkz5mOF9659EeWW0SVvd4F5VLSrP1LuFDga8XiUK23M6XFx+xyNfZ1XBz+UGcfKCo5MjCYIUb4lEULNBQ0tGG/FThMvqtNZSAawLr1j62+Sw40pSSijtY+5itqy5ZRykBezDEFFvrKFsSKybw6/zAp2xgDTm2a0sGVjv4ZM2nAgxpawjsGpTbweDYdolhRcDqiZwk0N6xdR1BiF4KsW7zZfQClDMSALzLNomcrHclFhhUVK0UKdPao5Veg+IaC3SqJazQGiww0nNnIxmsOHZUYNI1tQqrPfIuiFfiaN0G+/5BnFPwLlES+2w6lcv5NEeThrXvnJFSpBVyLN4qhMbqPODJ5yRH9qOU3tHv61zukNyvPpPmszLvD3UnCljgk3X5gRV36XATmcyjYtEBW27ovKjb+fIj9sV3J1Ct7xw/0msgzWQOamLrckePSmsxf2Mhs6t/U8m3ZLj8gP1D3/d9gVdvfa2flIEbeu4o8T/5TF9WHKJsHNuDLihGH98QUCHdvKGr844Pp0cdzfOLYxNX70vOef4O2f1H/fQF0iuTSxluovon2mF1ZFyBW9V09C7rZClb4toPoMt7zzVWOBlxIk321vRZSXF7BEIXG6ywZg6pmkxCo1jQd3FwKelVtaEh5XTtY6l9i5JK8CgtS5DD8C/LaTnFU3fLIQ7c5jhf0fauJjjmgkMusAmUA+uYolMNaN8G78hxCQuGVPuuMULG2icmA9aBghDtVojriF98fMocHDxFAisCpTM0Vw3BOvo243GRUxCXcFfbdExPTq2agf9jwq+JdZ0jd8FIsnPQj8YLXaaz5QTXy0X5p/xkGqvJJZJpDbi9DkrXBLM8r9P0q8nk5eWlVNla+riZDEfT5NfFz/PfbucXs3Ja1tw2WVzBJ26VGwW+IY6WtgQK3vnR7U/78L/95w2ryPTKomjrZEvzqPfDXtzj+MNhgZU1sp0iLrHu9yuV6I/Y9L28fu4o7rC6f5BljFaEkpfH2CT3Bqu1ahK9M+ofbgYY/Ah/V+DwUrndaedRiJ9pYI0wvMCalKE4wsS11hR4dOQryJ3R4Zf5Hfb9X9LROYE= -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - - -
- -

- Path Parameters -

-
-
    - - - -
-
-
-
- - -
- - - Transaction found. - - -
- - - - -
- - - Schema - -
- -
    -
    - - oneOf - - - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Bad Request - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Transaction not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index 69389c61b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,4205 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import ApiTabs from "@theme/ApiTabs"; -import DiscriminatorTabs from "@theme/DiscriminatorTabs"; -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; -import MimeTabs from "@theme/MimeTabs"; -import ParamsItem from "@theme/ParamsItem"; -import ResponseSamples from "@theme/ResponseSamples"; -import SchemaItem from "@theme/SchemaItem"; -import SchemaTabs from "@theme/SchemaTabs"; -import Markdown from "@theme/Markdown"; -import Heading from "@theme/Heading"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; - - - - - - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - - -
- -

- Query Parameters -

-
-
    - - - - - - - - - - - - - -
-
-
-
- - -
- - - Transaction found. - - -
- - - - -
- - - Schema - -
- -
    -
    - - oneOf - - - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - - - required - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The user that initiated the transaction is both the sender and receiver. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    - -
    - - - - records - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - amount_expected - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_in - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_out - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee_details - - object - - -
    - - - - - -
    - - - - details - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
    - - - - refunds - - object - - -
    - -
    - - - - amount_refunded - - object - - -
    - - - - - -
    -
    -
    -
    - - - - amount_fee - - object - - -
    - - - - - -
    -
    -
    -
    - - - - payments - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - -
    - - - - amount - - object - - -
    - - - - - -
    -
    -
    -
    - - - - fee - - object - - -
    - - - - - -
    -
    -
    - - - -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
    - - - - stellar_transactions - - object[] - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - - - -
    - - - - payments - - object[] - - - - required - - -
    -
  • -
    - Array [ -
    -
  • - - - - - - - - -
    - - - - amount - - object - - - - required - - -
    - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - customers - - object - - -
    -
    - - - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - - - -
    -
    - - - - sender - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    - - - - receiver - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
    -
    -
    -
    -
    - - - - creator - - object - - -
    -
    - - - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - - - -
    - - - - - - -
    -
    -
  • -
    - ] -
    -
  • -
    -
    -
    -
    -
    -
    -
-
-
- - - - -
-
-
-
-
-
- - - Bad Request - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
- - - Transaction not found. - - -
- - - - -
- - - Schema - -
- -
    - - - - - -
-
-
- - - - -
-
-
-
-
-
-
-
diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/versions.json deleted file mode 100644 index 15ec16df99..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep31-transition-diagram.png deleted file mode 100644 index a04c0a28ea..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.0/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1.json deleted file mode 100644 index f96a300a0d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version.label": { - "message": "3,1", - "description": "The label for version 3.1" - }, - "sidebar.anchor_platform.category.Anchor Platform": { - "message": "Anchor Platform", - "description": "The label for category Anchor Platform in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Admin Guide": { - "message": "Guía Administrativa", - "description": "The label for category Admin Guide in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals": { - "message": "Depósitos y Retiros Alojados", - "description": "The label for category Hosted Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals": { - "message": "Depósitos y Retiros Programáticos", - "description": "The label for category Programmatic Deposits and Withdrawals in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Cross-Border Payments": { - "message": "Pagos Transnacionales", - "description": "The label for category Cross-Border Payments in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Services": { - "message": "Servicios de Custodia", - "description": "The label for category Custody Services in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Fireblocks": { - "message": "Fireblocks", - "description": "The label for category Fireblocks in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Event Handling": { - "message": "Manejo de Eventos", - "description": "The label for category Event Handling in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Platform Server": { - "message": "Servidor de Plataforma", - "description": "The label for category Platform Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.JSON-RPC API": { - "message": "API JSON-RPC", - "description": "The label for category JSON-RPC API in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Methods": { - "message": "Métodos", - "description": "The label for category Methods in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Callbacks Server": { - "message": "Servidor de Callbacks", - "description": "The label for category Callbacks Server in sidebar anchor_platform" - }, - "sidebar.anchor_platform.category.Custody Server": { - "message": "Servidor de Custodia", - "description": "The label for category Custody Server in sidebar anchor_platform" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/CONTRIBUTING.md b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/CONTRIBUTING.md deleted file mode 100644 index 411526e659..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/CONTRIBUTING.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -draft: true ---- - -# Bienvenido a Anchor Platform Madness - -¡Hola y bienvenido al nuevo hogar versionado de la documentación de Anchor Platform! - -Estamos muy contentos de tenerte aquí, y esperamos que este documento te ayude a entender cómo (y, lo más importante, _dónde_) hacer los cambios necesarios en nuestra documentación. Empecemos con un poco de vocabulario de Docusaurus, ¿te parece? - -## Resumen - -- Para las versiones _no publicadas_ de Anchor Platform: - - Agrega y edite documentos en `/platforms/anchor-platform` - - Actualiza y regenera la documentación de la API en `/openapi/anchor-platform/main-*.yaml` -- Para las versiones _publicadas_ de Anchor Platform: - - Actualiza y cambia los documentos en `/ap_versioned_docs` - - Actualiza y regenera la documentación de la API en `/openapi/anchor-platform/versions/*.yaml` - -Lanza una **nueva versión** usando el siguiente script de yarn: - -```bash -# replace `3.0.0` with the needed version -VERSION=3.0.0 yarn ap:versions:new -``` - -> _Nota:_ Creo que el comando de yarn anterior es actualmente incompatible con Windows, aunque podría estar equivocado. - -Regenera la documentación de la API para las versiones **ya publicadas** usando el siguiente script de yarn. Esto regenera la documentación de la API para **todas** las versiones publicadas, así que puede que quieras ser prudente sobre qué archivos agregas a tu commit. - -```bash -yarn ap:versions:regen -``` - -## Tabla de Contenidos - -- [Resumen](#tldr) -- [Más sobre Docusaurus de lo que nunca quisiste saber](#more-about-docusaurus-than-you-ever-wanted-to-know) - - [Nomenclatura de Versiones](#versions-nomenclature) - - [Plugins](#plugins) - - [Instancias](#instances) - - [Enlaces](#links) - - [Ejemplos](#examples) -- [Directorios que Conocer](#directories-to-know) - - [Directorios que ya Conoces](#directories-you-already-know-about) - - [Nuevos y Brillantes Directorios](#new-shiny-directories) -- [Hacer Nuevas Versiones](#making-new-versions) - - [Usar Docusaurus para "Etiquetar" una Nueva Versión](#use-docusaurus-to-tag-a-new-release) - - [Configurar el plugin de OpenAPI](#configure-the-openapi-plugin) - - [ copiar los archivos de especificación de OpenAPI (agrupados) en el Directorio Versionado](#copy-the-bundled-openapi-specfiles-to-the-versioned-directory) - - [Agregar Configuración a la Instancia del Plugin de OpenAPI](#add-configuration-to-the-openapi-plugin-instance) -- [Actualizar Versiones Antiguas](#updating-old-versions) - - [Actualizar Páginas de Documentación](#update-documentation-pages) - - [Actualizar Especificación de API](#update-api-specification) - -## Más sobre Docusaurus de lo que nunca quisiste saber - -Sé que puede parecer un poco misterioso, pero aquí hay un poco de conocimiento y contexto para ayudar a tu comprensión de lo que viene. - -### Nomenclatura de Versiones - -Así es como Docusaurus define estos términos, así que eso es lo que usaré en este documento. - -- La **versión actual** se refiere a la versión de la documentación de la API contenida en el directorio `/platforms/anchor-platform`. Este conjunto de documentos está disponible en la URL `/platforms/anchor-platform/next`. Este es el conjunto de documentos "en construcción". - -- La **última versión** se refiere al conjunto de documentación de API más recientemente "publicada". Estas se encuentran en `/ap_versioned_docs` (más sobre eso más tarde), y están disponibles en la URL `/platforms/anchor-platform`. Este es el conjunto de documentos "estables". - -### Plugins - -Hay dos plugins de Docusaurus en juego aquí: - -1. `@docusaurus/plugin-content-docs` es el caballo de batalla de Docusaurus. Maneja el renderizado de markdown, enrutamiento, etc. Cuando pienses en actualizar `some-file.mdx`, este es el plugin que estás usando. -2. `docusaurus-plugin-openapi-docs` es el plugin que se usa para generar páginas MDX a partir de los archivos de especificación de OpenAPI. Este plugin es capaz de versionar por sí mismo, aunque se deben tomar algunos cuidados y consideraciones respecto a su configuración. - -Ambas configuraciones de plugins se han desglosado en un archivo `/config/anchorPlatform.config.ts`, para facilitar su gestión y despejar un poco el archivo principal `docusaurus.config.ts`. - -### Instancias - -Aquí es donde se pone un poco más "en detalle", pero prometo que esta parte es útil para saber. Ambos [plugins](#plugins) que mencioné anteriormente son realmente _instancias_ de esos dos plugins. De hecho, cada uno de esos plugins se usa en nuestro sitio de documentación para Horizon, SDP, y simplemente para la documentación "regular". No es _generalmente_ importante considerar diferentes instancias de plugins, pero es _muy relevante_ cuando hablamos de enlaces. Entonces... - -### Enlaces - -La mayoría de las veces, **especialmente en documentos versionados**, es importante [enlazar a otros documentos mediante _rutas de archivos relativas_](https://docusaurus.io/docs/versioning#link-docs-by-file-paths). -Esto permite a Docusaurus reescribir URLs cuando sea necesario en el tiempo de construcción. - -Sin embargo, ¡hay una **GRAN EXCEPCIÓN**! Docusaurus solo puede manejar estos enlaces cuando los archivos de origen y destino son procesados por la misma _instancia de plugin_. -Así que, en términos prácticos: - -- Si estás enlazando de **y** a documentos MDX _dentro_ de la misma instancia de plugin de documentación, usa _rutas de archivos relativas_. -- Si estás enlazando _entre_ instancias de plugins, **debes** usar _rutas URL_. Por convención, también usamos _rutas absolutas_ para esto, para hacerlo un poco más obvio cuando este comportamiento está ocurriendo. - -#### Ejemplos - -Esto debería ayudar a aclarar un poco las cosas. - -- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/sep6/configuration.mdx` _hacia_ el documento MDX `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: - - Estamos en la misma instancia del plugin `/platforms/anchor-platform` - - Usa una **ruta de archivo relativa** - - Enlaza con esto `[algo como esto](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` -- Quiero enlazar _desde_ el documento MDX `/docs/learn/fundamentals/anchors.mdx` _hacia_ el documento MDX `/platforms/anchor-platform/admin-guide/getting-started.mdx` - - Estamos "cruzando" entre las instancias de plugin `/docs` y `/platforms/anchor-platform` - - Usa una **ruta URL absoluta** - - Enlaza con esto `[algo como esto](/platforms/anchor-platform/admin-guide/getting-started)` (ten en cuenta que no hay extensión `.mdx`) -- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/custody/README.mdx` _hacia_ el documento MDX `/docs/tools/developer-tools/wallets.mdx` - - Estamos "cruzando" entre las instancias de plugin `/platforms/anchor-platform` y `/docs` - - Usa una **ruta URL absoluta** - - Enlaza con esto `[algo como esto](/docs/tools/developer-tools/wallets)` (ten en cuenta que no hay extensión `.mdx`) -- ¡Wildcard! Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx` _hacia_ el documento MDX `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` - - Estamos "cruzando" entre las instancias de plugin `/platforms/anchor-platform` y `/platforms/stellar-disbursement-platform` - - Usa una **ruta URL absoluta** - - Enlaza con esto `[algo como esto](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` (ten en cuenta que no hay extensión `.mdx`) - -> _Nota:_ Reemplaza la instancia del plugin `/platforms/anchor-platform` con la instancia del plugin `/platforms/stellar-disbursement-platform` en los ejemplos anteriores, y todo funcionará de manera bastante similar. - -Lee más sobre los enlaces [aquí](https://docusaurus.io/docs/markdown-features/links) (especialmente hacia el final de la página). - -## Directorios que Conocer - -Hay varias directorios que _todos_ contribuyen al producto final que es nuestra documentación de AP versionada. - -### Directorios que ya Conoces - -- `/platforms/anchor-platform` Este es el lugar donde estás ahora, y tradicionalmente ha sido el lugar para modificar cualquier contenido markdown que se convierte en nuestras páginas de documentación de AP. No ha cambiado mucho aquí, excepto que requiere un cambio de mentalidad. - **Toda la documentación y contenido ubicados aquí ahora deben ser considerados la versión `actual` (en construcción) de la documentación de AP.** Así que, mientras estamos construyendo para `v3.x` (y más allá, finalmente), querrás estar actualizando _el contenido aquí_. - Los lectores todavía podrán _ver_ este contenido antes de que se 'publique', pero se les dirá que es la versión no publicada. - - También hay un nuevo directorio aquí que deberías conocer: - - - `/platforms/anchor-platform/assets` Dado que es probable que las diversas imágenes, diagramas, etc. necesiten actualizarse/cambiarse de una versión a otra, estamos co-localizando los activos relevantes en este directorio. Esto permite que también sean versionados. Si quieres actualizar un diagrama o imagen para una próxima versión, deberías hacerlo aquí. - -- `/openapi/anchor-platform` Este es el mismo lugar con el que probablemente ya estás familiarizado. Los archivos han sido renombrados recientemente, pero en su mayoría quieres modificar `main-{platform,callbacks,custody}.yaml`, que luego será "agrupado" más tarde en el archivo agrupado que contiene todo en un solo archivo. - **Los archivos en este directorio también deben ser considerados la versión `actual` (en construcción) de los documentos de especificación de AP.** Entonces, mientras estamos construyendo para `v3.x` (y más allá, finalmente), deberás estar actualizando _los archivos de especificación aquí_. - - También hay un nuevo directorio aquí que deberías conocer: - - - `/openapi/anchor-platform/versions` Este directorio almacena una copia de los archivos de especificación _agrupados_ para cada versión que ha sido publicada. El plugin que usamos para generar la documentación de la API para estos archivos de especificación está configurado para usar _estas_ especificaciones versionadas para toda la documentación que no es `actual`. - -- `/openrpc/src/anchor-platform` Recientemente, movimos la especificación RPC a este directorio para que pueda beneficiarse de los mismos procesos de construcción y cheques de validación que la especificación `stellar-rpc`. Similar a los otros directorios cubiertos hasta ahora, cualquier cambio en estos archivos debe considerarse en la versión `actual` (en construcción) de la documentación. No hay - (¿todavía?) una gran cantidad de herramientas o ergonomía en torno a la actualización de las "viejas" - versiones de estas especificaciones. La versión `actual` de la especificación se genera en `/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json`. - Esto significa que _se_ incluye en el proceso de versionado, así que cualquier cambio en las versiones "antiguas" probablemente solo necesite hacerse en esos archivos de especificación versionados por ahora (más sobre eso en la siguiente sección). - -### Nuevos y Brillantes Directorios - -- `/ap_versioned_sidebars` Podemos pasar bastante rápido por este. Cuando haces una nueva versión de la documentación, Docusaurus almacena una copia de la barra lateral en ese punto en el tiempo. Realmente no deberías molestarte con nada aquí. - -- `/ap_versioned_docs` Aquí es donde viven los conjuntos "publicados" de la documentación de AP. - Cada vez que una versión es lanzada, _todo_ dentro del directorio `/platforms/anchor-platform` se copia en un subdirectorio aquí. - Notarás que ya tenemos una versión `v2.8.4` aquí. A medida que lanzamos la versión `v3.x`, una _nueva_ copia de los archivos se colocará aquí. La copia `más reciente` (estándar) de la documentación de AP se extrae de este directorio. Si te encuentras con algo que corregir o actualizar en una versión lanzada de la documentación, deberás actualizar aquí en consecuencia. - -## Hacer Nuevas Versiones - -Como se indicó en el [Resumen](#tldr), este proceso está automatizado con el script `VERSION=3.0.0 yarn ap:versions:new`. Sin embargo, esto es lo que sucede tras bambalinas de ese script. - -### Usar Docusaurus para "Etiquetar" una Nueva Versión - -¡Es en realidad bastante simple! Usa la CLI de Docusaurus para hacer un nuevo lanzamiento: - -```bash -# `ap` is the ID of the AP `@docusaurus/plugin-content-docs` plugin instance -yarn docusaurus docs:version:ap 3.0.0 -``` - -Esto hace una nueva copia de la documentación en `/ap_versioned_docs`, y funcionará bastante bien para mostrar la nueva versión en el sitio. Cualquier cambio futuro en la versión 3.0.0 de la documentación debe hacerse dentro del directorio `/ap_versioned_docs`. - -### Configurar el plugin de OpenAPI - -También querrás poder modificar/actualizar/regenerar la documentación de la API si surge la necesidad. Así que, necesitaremos configurar esa instancia de plugin `docusaurus-plugin-openapi-docs` en consecuencia. - -#### Copia los Archivos de Especificación de OpenAPI (Agrupados) al Directorio Versionado - -En este momento, es tan simple como copiar los archivos: - -```bash -cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-3.0.0.yaml -cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-3.0.0.yaml -cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-3.0.0.yaml -``` - -> Observa cómo estamos copiando el archivo _agrupado_, no el archivo _principal_. Esto asegura que el archivo versionado contenga todo lo que necesita. - -#### Agregar Configuración a la Instancia del Plugin de OpenAPI - -> _Nota_: Estas partes de `versiones` de la configuración ahora se generan dinámicamente, utilizando una función `makeVersions()`, por lo que estos pasos de configuración manual no deberían necesitar hacerse. Tal vez quieras avanzar/ajustar la cadena `anchorPlatformNextVersion` en el archivo de configuración, cuando lances una nueva versión de documentos, sin embargo. - -Para poder utilizar el CLI del plugin para actualizar las versiones ya publicadas, -tenemos que actualizar la configuración en `/config/anchorPlatform.config.ts`. Crea -a una nueva entrada en cada uno de los objetos `versions` de los archivos de especificación y copia el formato -de las entradas que ya están allí. Para referencia, así es como se ve actualmente -para el "servidor de plataforma" en `v2.8.4`: - -```typescript -ap_platform: { - specPath: "openapi/anchor-platform/bundled-platform.yaml", - outputDir: "platforms/anchor-platform/api-reference/platform/transactions", - hideSendButton: true, - template: "src/template.mustache", - version: "3.0.0", - label: "v3.0.0", - baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', - versions: { - "2.8.4": { - specPath: "openapi/anchor-platform/versions/platform-2.8.4.yaml", - outputDir: "ap_versioned_docs/version-2.8.4/api-reference/platform/transactions", - label: "v2.8.4", - baseUrl: "/platforms/anchor-platform/api-reference/platform/transactions" - } - } -} -``` - -## Actualizar versiones antiguas - -### Actualizar páginas de documentación - -Vamos a suponer que encuentro un error tipográfico en la documentación de la Guía del Administrador `v2.8.4`. Encuentra -el archivo relevante en el directorio `/ap_versioned_docs/version-2.8.4`, corrige y -haz commit. Las actualizaciones de contenido son bastante fáciles aquí. - -> _Nota:_ Dado que la especificación de RPC se trata de manera similar a los documentos MDX, utiliza el -> mismo proceso para hacer actualizaciones al archivo de especificación RPC. Para `v2.8.4`, se encuentra -> aquí: -> `/ap_versioned_docs/version-2.8.4/api-reference/platform/rpc/anchor-platform.openrpc.json` - -### Actualizar especificación API - -Esto es un poco más complicado, pero no mucho. Encuentra y cambia la(s) -parte(s) relevante(s) del -`/openapi/anchor-platform/versions/{platform, callbacks,custody}-2.8.4.yaml` -del archivo de especificación. - -Luego, regenera las páginas MDX: - -```bash -# `ap-apis` is the ID of the AP `docusaurus-plugin-openapi-docs` plugin instance -yarn docusaurus gen-api-docs:version -p ap-apis:2.8.4 -``` - -> _Nota:_ Puedes usar un script de yarn para regenerar automáticamente la documentación de API para -> **todas** las versiones publicadas: `yarn ap:versions:regen`. Esto realmente -> regenera todas las versiones, así que es posible que quieras ser selectivo sobre qué archivos -> agregar al commit. - -Haz commit de los cambios, y ya estás listo para comenzar. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/README.mdx deleted file mode 100644 index 19dbb35ce5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/README.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "La Anchor Platform: Crear y Administrar Rampas de Entrada/Salida en la Red Stellar" -sidebar_position: 10 -sidebar_label: Introducción a la Anchor Platform -description: Aprende cómo la Anchor Platform (AP) simplifica el proceso de crear y administrar una rampa de entrada y salida en Stellar. Aprende sobre la integración con la AP o consigue información de la API. ---- - -# Anchor Platform - -La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y negocios crear sus propios servicios de rampa de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, que incluye la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar a las empresas la integración con billeteras y plataformas de intercambio basadas en Stellar. - -La plataforma también incluye características para administrar activos, transacciones y cuentas de usuario, y soporta una variedad de opciones de implementación, incluyendo usar Docker o Kubernetes. En general, la Anchor Platform tiene como objetivo simplificar el proceso de crear y administrar un servicio financiero basado en Stellar, permitiendo a las empresas enfocarse en proporcionar valor a sus clientes. - -Aprende sobre la integración con la Anchor Platform en la [Guía de Administración](./admin-guide/README.mdx) o consigue información de la API en la [Referencia de API](./api-reference/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/README.mdx deleted file mode 100644 index bd3a6256db..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Guía del Administrador -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -Todo lo que necesitas saber sobre cómo configurar, ejecutar y utilizar la Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/architecture.mdx deleted file mode 100644 index f2c1fd747d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Arquitectura -sidebar_position: 20 ---- - -## Arquitectura - -Antes de comenzar con la Anchor Platform, familiarizémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. - -### Arquitectura Fundamental - -Los siguientes componentes arquitectónicos son necesarios para todos los despliegues de la Anchor Platform. - -[![arquitectura fundamental de la anchor platform](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Cliente - -El cliente es una aplicación, como una billetera o un remitente de remesas, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes realizan solicitudes al servidor SEP del Anchor Platform utilizando conjuntos de estándares llamados [SEPs][seps] (Propuestas del Ecosistema Stellar). - -#### Servidor SEP - -El servidor SEP es un servidor orientado al cliente y, por lo tanto, debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y administra el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio para un par de activos o el estado KYC de un cliente, realiza solicitudes sincrónicas de [callback][callback-api] al servidor de negocio y devuelve la información en un formato compatible con SEP. - -:::note - -El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. - -::: - -#### Servidor de Negocio - -El servidor de negocio es un servicio que debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocio responde a las solicitudes de callback enviadas por el servidor SEP, como solicitudes de cotización, recibe eventos enviados por el servicio de eventos, como la notificación de un pago recibido en tu cuenta Stellar, y proporciona actualizaciones al servidor de plataforma cuando ocurren eventos fuera de la cadena, como la iniciación de una transferencia bancaria a un cliente. - -#### Servidor de Plataforma - -El servidor de plataforma es un componente interno. Debería estar alojado en una red privada y no debería ser accesible desde Internet. Este servidor permite a la empresa obtener y actualizar el estado de las transacciones utilizando su [API][platform-api]. - -#### Base de Datos - -La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se utiliza principalmente para almacenar transacciones. - -### Arquitectura Completa - -Además de los componentes descritos anteriormente, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu empresa puede elegir cuáles de los componentes adicionales utilizar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. - -[![arquitectura completa de la anchor platform](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Servicio de Eventos - -El servicio de eventos permite a la Anchor Platform enviar webhooks HTTP a los clientes registrados y a tu servidor de negocio cuando el estado de las transacciones cambie, eliminando la necesidad de que los clientes y/o tu servidor de negocio consulten las APIs de la Anchor Platform. Funciona leyendo eventos publicados en un tema Kafka por los otros componentes de la Anchor Platform. [Lee más][events] sobre cómo utilizar el servicio de eventos. - -#### Servidor de Custodia - -El servidor de custodia se conecta con proveedores de billetera empresariales, como Fireblocks, para enviar y recibir pagos por transacciones iniciadas a través de la Anchor Platform. Este servicio es una alternativa al Stellar Observer para las empresas que utilizan uno de los proveedores soportados. Además de la funcionalidad ofrecida por el Stellar Observer, el Servidor de Custodia también puede facilitar pagos salientes a las cuentas Stellar de los clientes. Si también utilizas el servicio de [events], los pagos a tus cuentas activarán un callback HTTP enviado a tu servidor de negocio. - -Si ya tienes una integración con tu proveedor de billetera, entonces este componente no es necesario, aunque tu servidor de negocio deberá notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform haya sido enviado a o desde tus cuentas Stellar a través de la [Platform API][platform-api]. - -Actualmente, el único proveedor soportado es Fireblocks. - -#### Stellar Observer - -El Stellar Observer, una alternativa al servidor de custodia mencionado anteriormente, monitorea la blockchain Stellar usando Horizon, detecta automáticamente los pagos de usuarios enviados al negocio y actualiza las transacciones correspondientes en la base de datos de la Anchor Platform. Si también utilizas el servicio de [events], los pagos a tus cuentas activarán un callback HTTP enviado a tu servidor de negocio. - -Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon o RPC, entonces este componente no es necesario, aunque tu servidor de negocio deberá notificar a la Anchor Platform cuando un pago asociado a una transacción de la Anchor Platform haya sido realizado a una de tus cuentas Stellar a través de la [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 4ce1c19271..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Usar el Observador de Pagos te permite delegar este paso a la Anchor Platform. Para habilitar el Observador de Pagos, usa el `--stellar-observer` flag en la sección de comandos del [archivo de composición](../../getting-started.mdx#configuration). - -El Observador de Pagos rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando la transacción con el memo esperado sea detectada en la red, el estado cambiará automáticamente a `pending_anchor` y se emitirá el evento (si se utiliza Kafka). - -Para actualizar los estados de las transacciones, el observador realiza las solicitudes JSON-RPC correspondientes a la plataforma. Debe usar la siguiente URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -El Observador de Pagos no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. - -::: - -:::info - -Si ya tienes un sistema que monitorea los pagos, asegúrate de que la lógica del sistema coincida con la descripción a continuación: - -Primero, espera a que la transacción sea incluida en el libro mayor (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción haya sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). - -::: - -:::tip - -El servicio de custodia de Fireblocks rastreará automáticamente las transacciones y notificará al usuario que los fondos han sido recibidos. Consulta la [documentación del servicio de custodia de Fireblocks][fireblocks] para más detalles. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 4ef6c9b8df..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Código de error | Significado | -| :-------------- | :---------------------------------------------------- | -| \-32600 | El JSON enviado no es un objeto Request válido | -| \-32601 | El método no existe / no está disponible | -| \-32602 | Parámetro(s) del método no válido(s) | -| \-32603 | Error interno de JSON-RPC | - -
- -:::tip - -También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se está devolviendo desde la Anchor Platform en una solicitud de inicio de retiro o depósito. Puedes obtener el ID de la transacción conectando la billetera de prueba a tu instancia local de la Anchor Platform. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 973a521516..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -El objeto Request debe contener los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATO - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. DEBE ser exactamente "2.0" -- método - - cadena - - Una cadena que contiene el nombre del método a invocar. Lista de métodos disponibles que puedes ver en [JSON-RPC Methods][json-rpc-methods] -- params - - objeto - - Un valor estructurado que contiene los valores de los parámetros, correspondientes a la llamada del método, que se utilizará durante la invocación del método -- id - - cadena - - Un identificador establecido por el cliente. El servidor responderá con el mismo valor en el objeto Response - - - -:::tip - -Es posible proporcionar múltiples actualizaciones en una sola solicitud JSON-RPC (colocando múltiples objetos de solicitud JSON-RPC). Cuando se realiza una actualización de esta manera, todas las actualizaciones se realizarán de forma secuencial. - -Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores SE APLICARÁN y todas las actualizaciones subsiguientes SE PROCESARÁN y APLICARÁN también. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/response.mdx deleted file mode 100644 index a1a03ac41a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -La respuesta se expresa como un único objeto JSON, con los siguientes atributos: - - - -- ATRIBUTO - - TIPO DE DATOS - - DESCRIPCIÓN -- jsonrpc - - cadena - - Una cadena que especifica la versión del protocolo JSON-RPC. Se establece en "2,0" -- resultado - - objeto - - Un valor estructurado que contiene los detalles de la transacción actualizada -- id - - cadena - - Un identificador enviado por el cliente -- error - - objeto - - Un valor estructurado que contiene los detalles del error - - id - - cadena - - Identificador único de la transacción para la cual ocurrió un error - - código - - número - - Un número que indica el tipo de error que ocurrió. Consulta una lista de [códigos de error](#error-codes) a continuación - - mensaje - - cadena - - Una cadena que proporciona una breve descripción del error - - datos - - cadena - - Un valor primitivo o estructurado que contiene información adicional sobre el error - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index 9729aabd24..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -Este pequeño script hará una solicitud JSON-RPC a la Anchor Platform alojada en el puerto predeterminado (8085). Los datos de transacción JSON almacenados en el archivo proporcionado se usarán como cuerpo (las solicitudes deben ser un arreglo). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/api_key.mdx deleted file mode 100644 index be29d883bd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -Para habilitar la autenticación por clave API, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Una vez habilitada, todas las solicitudes deben incluir un encabezado válido `X-Api-Key`, configurado con la clave API. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/jwt.mdx deleted file mode 100644 index 234f4bdeab..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres para mayor seguridad. - -Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/security.mdx deleted file mode 100644 index 64734989aa..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -De manera predeterminada, los puntos finales de la API de la Platform, como `GET /transactions` y `GET /transactions/:id`, no están protegidos y son accesibles por cualquier persona que tenga acceso al servidor, incluidas las aplicaciones de cartera. - -::: - -:::info - -Se recomienda mantener el servidor de la Platform accesible solo desde la red privada. Sin embargo, puede que desees agregar una capa adicional de protección a través de la seguridad de la API. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/README.mdx deleted file mode 100644 index a937188bcd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Servicios de Custodia -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Utilizar un servicio de custodia te permitirá usar un servicio externo para almacenar y gestionar tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index c6f58adaed..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Configuración del Servidor de Custodia - -Si deseas utilizar un servicio de custodia externo para almacenar y gestionar tus billeteras, entonces necesitas desplegar un servicio más: el Servidor de Custodia. - -Este servicio también necesita la configuración `STELLAR_ANCHOR_CONFIG` que se mencionó anteriormente. Por defecto, se utilizará el archivo de configuración `anchor-config-default-values.yaml`. - -Además, ahora no necesitas desplegar el Observer de Stellar, ya que el Servidor de Custodia será responsable de su funcionalidad. - -Actualiza el archivo de configuración de la Anchor Platform con la URL base y el puerto. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configura el tipo de autenticación. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -Si estableces el tipo de autenticación `api_key` o `jwt`, entonces necesitas añadir una variable de entorno. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Inicia el Servidor de Custodia utilizando Gradle o Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:latest --custody-server -``` - - - -## Configuración de la Anchor Platform - -Actualiza el archivo de configuración de la Anchor Platform con el tipo de generador de información de depósitos para SEP-24 y SEP-31. Además, necesitas configurar una verificación de línea de confianza, si usas JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - el memo y el tipo de memo se generan en el código local, y la cuenta de distribución se utiliza para la dirección de depósito. -- `custody` - el memo y el tipo de memo se generan a través de la Custody API, por ejemplo, Fireblocks, así como la dirección de depósito. -- `none` - la dirección de depósito, memo y tipo de memo deben ser proporcionados por el negocio en una solicitud PATCH/JSON-RPC. -- `api` - el memo y el tipo de memo se generan a través de la llamada al endpoint GET /unique_address del ancla. - -::: - -## Configuración del Servidor de Referencia de Kotlin - -Actualiza el archivo de configuración del Servidor de Referencia de Kotlin para habilitar la integración de custodia. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 5545412341..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configura [Fireblocks](https://fireblocks.io) para actuar como un servicio de custodia que almacena y gestiona tus billeteras. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 5ce0d1eaca..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Configuración -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configurar el espacio de trabajo de Fireblocks: - -1. [Configurar API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Agregar usuario API](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configurar URL de Webhook](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Habilitar la función de dirección única](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Actualiza el archivo de configuración del servidor de custodia. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Agrega las variables de entorno. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 6a787555ee..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comentario]: # "Las definiciones de diagrama de secuencia están ubicadas en la carpeta /static/definitions" -[comentario]: # "Para actualizarlos, usa https://sequencediagram.org" - -### Flujo de depósito SEP-24 con webhook: - -- solicitar_fondos_fuera_de_la_cadena -- notificar_fondos_fuera_de_la_cadena_recibidos -- realizar_pago_stellar -- notificar_fondos_en_la_cadena_enviados [![diagrama_de_secuencia_sep24_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### Flujo de depósito SEP-24 con trabajo de conciliación: - -- solicitar_fondos_fuera_de_la_cadena -- notificar_fondos_fuera_de_la_cadena_recibidos -- realizar_pago_stellar -- notificar_fondos_en_la_cadena_enviados [![diagrama_de_secuencia_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### Flujo de retiro SEP-24 con webhook: - -- realizar_pago_stellar -- notificar_fondos_en_la_cadena_recibidos -- notificar_fondos_fuera_de_la_cadena_enviados [![diagrama_de_secuencia_sep24_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### Flujo de retiro SEP-24 con trabajo de conciliación: - -- solicitar_fondos_en_la_cadena -- notificar_fondos_en_la_cadena_recibidos -- notificar_fondos_fuera_de_la_cadena_enviados [![diagrama_de_secuencia_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### Flujo de recepción SEP-31 con webhook: - -- notificar_fondos_en_la_cadena_recibidos -- notificar_fondos_fuera_de_la_cadena_enviados [![diagrama_de_secuencia_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### Flujo de recepción SEP-31 con trabajo de conciliación: - -- notificar_fondos_en_la_cadena_recibidos -- notificar_fondos_fuera_de_la_cadena_enviados [![diagrama_de_secuencia_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/README.mdx deleted file mode 100644 index fea9fb3200..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Manejo de Eventos -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Recibe actualizaciones de transacciones a través de eventos HTTP webhook. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/delivery.mdx deleted file mode 100644 index 8ee837fa45..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Garantías de Entrega -sidebar_position: 30 ---- - -## Garantías de Entrega - -Dependiendo del sistema de mensajería que utilices, habrá diferentes garantías de entrega. el servicio de eventos utiliza Kafka como sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y de la configuración del bróker que utilices. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden ser entregados fuera de orden. - -:::caution - -Cualquier lógica de transacción que dependa del orden debería usar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. - -::: - -Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor comercial. - -### Garantías de Entrega del Cliente - -Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos dejará de intentar entregar cualquier evento a ese cliente. - -### Garantías de Entrega del Servidor Comercial - -El servicio de eventos intentará entregar cada evento al servidor comercial hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor comercial no es accesible después de tres intentos, el servicio de eventos dejará de intentar entregar cualquier evento al servidor comercial. - -:::note - -Las garantías de entrega del servidor comercial son las mismas que las garantías de entrega del cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a clientes que no sean accesibles. - -::: diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/getting-started.mdx deleted file mode 100644 index fc3212c71d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Anchor Platform proporciona un servicio de eventos que envía notificaciones de webhook HTTP a: - -**Servidores Comerciales** - -- Cambios en el estado de la transacción -- Actualizaciones de cotizaciones -- Cambios en el estado KYC del cliente - -Los esquemas de eventos para los servidores comerciales se definen en la [referencia de la API](../../api-reference/callbacks/post-event.api.mdx). - -**Aplicaciones de Clientes** - -- Cambios en el estado de las transacciones que afectan a sus usuarios -- Cambios en el estado KYC del cliente que afectan a sus usuarios - -_Los esquemas de eventos para aplicaciones de clientes se definen en sus respectivos SEP:_ - -- [SEP-6 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Eventos de Clientes](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Eventos de Transacciones](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -Esto elimina la necesidad de que los servidores comerciales y las aplicaciones de clientes consulten continuamente las API en busca de actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/integration.mdx deleted file mode 100644 index 18aad83355..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/events/integration.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Integración -sidebar_position: 20 ---- - -Esta guía te llevará a integrar el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend. - -Se asume familiaridad con Kafka y no se cubrirá cómo configurar un clúster de Kafka. - -## Requisitos - -Anchor Platform enviará eventos al tema `TRANSACTION` en Kafka. El servicio de eventos consumirá eventos de este tema y los enviará a los puntos finales apropiados. - -## Configuración - -Primero, se debe configurar el productor de Kafka del servicio de eventos utilizando la sección `event.queue` del archivo de configuración o configurando las variables de entorno. A continuación se presentan el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform permite que se establezca un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para más información sobre qué está disponible. Para más información sobre la configuración del cliente del productor de Kafka, consulta la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). - -A continuación, se debe configurar el procesador de eventos en la sección `event_processor` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -Esto permitirá que el procesador de eventos comience a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a los puntos finales de callback del servidor cliente y del negocio. - -## Recibiendo Eventos - -El servicio de eventos se puede usar para enviar eventos a los puntos finales de callback del servidor cliente y del negocio. El servicio de eventos enviará eventos a estos puntos finales como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. - -### Como Aplicación Cliente - -Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios e información del cliente. El esquema de los datos del evento dependerá del tipo de evento que se envíe. - -Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de callback a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite que se configuren puntos finales únicos por tipo de evento. - -Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para más información. - -#### Firma de Callback - -Anchor Platform firma las solicitudes de callback que envía a las aplicaciones cliente. La firma se incluye en el encabezado `Signature` de la solicitud. La especificación de la firma de URL de callback se puede encontrar en las especificaciones del protocolo SEP correspondientes. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### Como Servidor de Negocios - -Además de las actualizaciones de estado de transacciones SEP, los servidores de negocios pueden recibir eventos sobre la creación de cuotas SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la [documentación de la API de eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. - -Para recibir eventos como un servidor de negocios, necesitarás exponer una URL de callback que el servicio de eventos pueda enviar eventos a. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. - -#### Configuración - -La API de callback del servicio de eventos se puede configurar utilizando la sección `callback_api` del archivo de configuración de Anchor Platform o configurando las variables de entorno. - -A continuación se presenta un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación JWT: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -A continuación se presenta un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación mediante clave API: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -Esto configura la API de callback del servicio de eventos que se utilizará para enviar eventos a los puntos finales de callback del cliente y del servidor de negocios. Las siguientes son las opciones de configuración admitidas: - -- `base_url`: La URL base del punto final de callback del servidor de negocios. -- `secret`: El secreto que se utilizará al enviar eventos al punto final de callback del servidor de negocios. Esto se utiliza para firmar el cuerpo de la solicitud cuando se habilita la autenticación JWT y es la clave API cuando se habilita la autenticación mediante clave API. -- `auth`: El método de autenticación que se utilizará al enviar eventos al punto final de callback del servidor de negocios. Las siguientes son los métodos de autenticación admitidos: - - `JWT`: El servicio de eventos enviará un JSON Web Token (JWT) en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `expiration_milliseconds`: El tiempo de expiración del JWT en milisegundos. - - `http_header`: El encabezado en el que se enviará el JWT. - - `API_KEY`: El servicio de eventos enviará una clave API en el encabezado `Authorization` de la solicitud. Las siguientes son las opciones de configuración admitidas: - - `http_header`: El encabezado en el que se enviará la clave API. - -[archivo-de-valores-predeterminados]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[configuración-de-clientes]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/getting-started.mdx deleted file mode 100644 index 7596f08646..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/getting-started.mdx +++ /dev/null @@ -1,399 +0,0 @@ ---- -title: Comenzar -sidebar_position: 30 ---- - -## Instalación - -import { CodeExample } from "@site/src/components/CodeExample"; - -La forma más fácil de instalar la Anchor Platform es descargar la [imagen de docker][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:latest -``` - - - -## Configurar el Entorno de Desarrollo - -En esta guía utilizaremos [docker compose][docker-compose] por simplicidad, pero puedes ejecutar la Anchor Platform utilizando otras herramientas que admiten docker, como [minikube] o un clúster completo de [kubernetes]. - -Vamos a crear un archivo de composición mínimo para comenzar. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -La opción `--sep-server` indica a la Anchor Platform que haga disponibles los puntos finales de API definidos por los SEPs que has habilitado a través de la configuración en el puerto 8080. - -La opción `--platform-sever` hace que la API de la Plataforma esté disponible, que es la API de backend que tu(s) servicio(s) usarán para comunicarse con la Anchor Platform. Estará disponible en el puerto 8085 - -## Configuración - -La Anchor Platform admite dos enfoques para la configuración: - -- usar variables de entorno -- usar un archivo de configuración YAML - -Se puede usar uno o una combinación de ambos enfoques. Las variables anidadas en el archivo YAML se expresan utilizando guiones bajos o puntos (`_`, `.`) al usar variables de entorno. Aquí demostraremos ambos enfoques, pero usaremos exclusivamente variables de entorno en las secciones siguientes. Consulta el conjunto completo de opciones de configuración en el [archivo de valores predeterminados][ap-default-values] de la Anchor Platform. - -:::info - -La Anchor Platform no permite secretos de aplicación en el archivo de configuración YAML. En su lugar, los secretos de aplicación, que todos tienen el prefijo `SECRET_`, deben especificarse en el entorno. - -::: - -Vamos a crear el archivo de entorno especificado en nuestro archivo de docker compose. - - - -```bash -touch dev.env -``` - - - -Y si estás usando un archivo de configuración YAML, vamos a crear eso también. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -Necesitarás informar a la Anchor Platform dónde puede encontrar tu archivo de configuración. Así que vamos a agregar una variable de entorno para eso. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Especifica la versión del esquema de configuración en tu archivo YAML. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Cambio del Puerto del Servidor de la Plataforma - -Por ejemplo, cambiemos el puerto del servidor de la plataforma. - -Usando variables de entorno, esto es simplemente: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -O si usas la configuración YAML: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Especifica los Activos de Tu Servicio - -Vamos a agregar los activos que tu implementación de la Anchor Platform utilizará. Esta configuración se especifica en un archivo YAML. Si solo estás utilizando la Anchor Platform para alojar un archivo SEP-1 stellar.toml o para ejecutar la Autenticación SEP-10 Stellar, puedes omitir este paso. - - - -```bash -touch config/dev.assets.yaml -``` - - - -En esta guía construiremos servicios de anclaje para USDC de Circle en la red de prueba de Stellar. Actualiza los valores anteriores según los activos que emitirás. Asegúrate de especificar el `emisor` de testnet en tu archivo de desarrollo, y crea tu propia `cuenta_de_distribución` utilizando una herramienta como [Stellar Lab][stellar-lab]. La `cuenta_de_distribución` será utilizada por tus clientes como la cuenta de destino para los pagos a tu servicio. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -Este archivo necesita ser referenciado en nuestra configuración para que la Anchor Platform pueda encontrarlo. - -Usando variables de entorno: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Usando un archivo YAML: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Agregar Persistencia de Datos - -La Anchor Platform admite [PostgreSQL][postgresql] y [Aurora PostgreSQL][aurora-postgresql] para uso en producción, pero también admite [H2][h2] o [SQLite][sqlite] para uso en desarrollo. Para gestionar migraciones, la Anchor Platform utiliza [Flyway][flyway]. La versión más reciente de PostgreSQL admitida por Flyway es PostgreSQL 14. - -Antes de continuar, vamos a agregar una base de datos a nuestro entorno de desarrollo para que las transacciones que iniciemos persistan después de detener el servicio. - -Una base de datos solo es necesaria si se está utilizando la Anchor Platform para facilitar transacciones. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Ahora vamos a actualizar nuestro entorno para que el servidor de la plataforma pueda conectarse al servidor de la base de datos. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -Si estás utilizando la configuración YAML en su lugar, las variables de entorno `POSTGRES_` siempre deben estar en el entorno, ya que son para tu servidor de base de datos, no para la Anchor Platform. Los secretos también deben especificarse en el entorno. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -Debemos crear la base de datos `platform` antes de que el servidor de la plataforma pueda conectarse a ella, así que hagamos un script para crear nuestra base de datos. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Intenta ejecutar el servidor de la plataforma además de la base de datos. - - - -```bash -docker compose up -``` - - - -Deberías ver los registros reportando una conexión exitosa a la base de datos postgres. - -### Configurar la Autenticación de la API de la Plataforma - -Para facilitar pagos transnacionales o transacciones de depósito y retirada, tu negocio necesitará obtener y actualizar registros de transacciones desde la API interna de la Anchor Platform. Actualmente, la opción `--sep-server` hace disponibles las API SEP públicas, mientras que la API interna de la Plataforma está disponible en el servidor de la Plataforma, iniciado por la opción `--platform-server`. El negocio debe hacer que el Servidor de la Plataforma sea accesible solo en la red interna, sin embargo, es posible agregar autenticación para acceder a la API interna de la Plataforma. - -Agrega las siguientes variables de entorno. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -Al realizar solicitudes a la API de la Plataforma, agrega un JWT firmado por el secreto definido en tu entorno al encabezado `Authorization` como un token portador. - -`PLATFORM_API_BASE_URL` utiliza `platform` en lugar de `localhost` como el host porque estarás realizando solicitudes a la API de la Plataforma dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de pruebas o producción, asegúrate de actualizar las URL de tu servicio. - -### Pasando Flags de JVM - -La Anchor Platform utiliza JVM para ejecutarse. A veces, se desea cambiar los flags de JVM para ejecutar el servicio. Para hacerlo, establece la variable de entorno `JVM_FLAGS` en el valor apropiado - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -Si necesitas pasar una variable de entorno de tu máquina al contenedor, debes usar la opción `environment` de docker compose para establecer las variables en su lugar. Aquí hay un ejemplo de usar el keystore de tu máquina local en el contenedor: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Donde `KEYSTORE_LOCATION` es la ubicación local del keystore y `KEYSTORE_PASSWORD` es la contraseña local del keystore. - -::: - -### Sentry - -La Anchor Platform admite [Sentry](https://sentry.io/) para el seguimiento de errores. Para habilitar Sentry, agrega las siguientes variables de entorno. - - - -```bash -# dev.env -SENTRY_DSN=[your sentry dsn] -SENTRY_RELEASE=[your release version] -SENTRY_ENVIRONMENT=[your environment] -SENTRY_DEBUG=[true|false] -SENTRY_AUTH_TOKEN=[your sentry auth token] -``` - - - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/overview.mdx deleted file mode 100644 index 9fd7a845c0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/overview.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Resumen -sidebar_position: 10 ---- - -La Anchor Platform es la forma más fácil y rápida de desplegar [servicios de anchor](/docs/learn/fundamentals/anchors) compatibles con [Propuestas del Ecosistema Stellar (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -El objetivo de la Anchor Platform es manejar toda la funcionalidad y requisitos específicos de Stellar para operar un anchor, permitiendo que las empresas se concentren en la lógica de negocio central necesaria para proporcionar estos servicios. - -La Anchor Platform logra esto implementando las APIs estandarizadas del ecosistema (SEPs) para billeteras, exchanges y otras aplicaciones para consumir, mientras ofrece un conjunto de APIs de backend para que las empresas proporcionen información específica, como tarifas de transacción, tasas de cambio y estados de transacciones fuera de la cadena. - -A continuación, se presenta una lista de SEPs actualmente admitidos: - -- [SEP-1][sep-1]: [Archivo de Información de Stellar][sep1-ap] -- [SEP-6][sep-6]: [Depósito y Retirada Programática][sep6-ap] -- [SEP-10][sep-10]: [Autenticación de Stellar][sep10-ap] -- [SEP-12][sep-12]: API de KYC -- [SEP-24][sep-24]: [Depósito y Retirada Alojado][sep24-ap] -- [SEP-31][sep-31]: [API de Pagos Transfronterizos][sep31-ap] -- [SEP-38][sep-38]: API de RFQ de Anchor - -La documentación de la Anchor Platform está en progreso. Los desarrolladores son bienvenidos a explorar el código y la documentación existente en el [repositorio de GitHub][anchor-platform-github], o si buscas construir un servicio de acceso y salida compatible con SEP-24, consulta nuestra [guía de inicio][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep1/README.mdx deleted file mode 100644 index b7fbdda2cb..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Archivo de información de Stellar -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Habilitemos que las aplicaciones aprendan más sobre tu servicio al alojar un archivo `stellar.toml` en una ruta URL estandarizada. Este archivo permite que las aplicaciones encuentren información sobre tu negocio, los activos que utilizan tus servicios, así como las rutas URL raíz para estos servicios. Podemos alojar este archivo utilizando la Anchor Platform. - -Creamos un archivo llamado `dev.stellar.toml` utilizando el contenido siguiente como punto de partida. Para el conjunto completo de atributos, consulta la [especificación SEP-1][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de paso de la red pública, las URL de servicio de tu producción, las cuentas de distribución de Mainnet y la clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -En tu archivo `dev.env`, especifica lo siguiente. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -Esto le indicará a la Anchor Platform que debe alojar el archivo especificado por `SEP1_TOML_VALUE` en `./well-known/stellar.toml`. - -Alternativamente, tu archivo `stellar.toml` podría ser alojado usando un servidor de archivos estático adecuado como [nginx]. Siempre que tu archivo de información incluya las URL apropiadas apuntando a la Anchor Platform, funcionará perfectamente. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep10/README.mdx deleted file mode 100644 index 96655aa3a3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Autenticación Stellar -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Habilitar la Autenticación Stellar - -Las aplicaciones de billeteras basadas en Stellar crean sesiones autenticadas con anclajes Stellar demostrando que ellas, o sus usuarios, tienen suficiente control sobre una cuenta Stellar. Una vez autenticada, la aplicación de billetera utiliza un token de sesión proporcionado por el anclaje en solicitudes posteriores a los servicios estandarizados del anclaje. - -La Anchor Platform soporta esta forma de autenticación con una configuración mínima por parte del negocio. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` es la propiedad `home_domain` utilizada por [sep-10]. El valor de configuración debe ser igual al host del archivo toml. Si estás alojando el archivo toml a través de la plataforma, (`SEP1_ENABLED` está configurado en `true`), el archivo toml será alojado en el servidor SEP. - -`SECRET_SEP10_SIGNING_SEED` es la clave privada de la clave pública que has especificado como `SIGNING_KEY` en tu archivo `stellar.toml`. Se utilizará para firmar los desafíos de autenticación presentados a las aplicaciones de billetera, siempre y cuando tengas en tu posesión la `SIGNING_KEY`. Las billeteras verifican esta firma antes de firmar y enviar nuevamente el desafío de autenticación. - -`SECRET_SEP10_JWT_SECRET` es la clave de cifrado que se utilizará para firmar y verificar los tokens de autenticación que emites a las aplicaciones de billetera después de que ellas o sus usuarios han demostrado control de su cuenta Stellar. - -:::info - -Por defecto, la Anchor Platform permite que cualquier persona con una cuenta Stellar se autentique con tus servicios. Si deseas permitir solo a los usuarios de una aplicación de billetera en particular autenticarse, o quieres desautorizar a usuarios específicos de autenticarse, utiliza las siguientes variables de entorno. Esta es una función opcional y solo debe añadirse si es un requisito del negocio. - -::: - -## Configuración con Atribución de Cliente - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billetera externos o clientes con los que el servidor Anchor debe comunicarse de manera segura. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_urls: - sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_urls: - sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informa a la Anchor Platform si debería permitir que los usuarios de billeteras no custodiales se autentiquen sin que la billetera también se identifique. - -`CLIENTS` es la lista de servidores de billetera externos o clientes con los que el servidor Anchor debe comunicarse de manera segura. - -## Modificar un archivo de información Stellar - -A continuación, modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-10 es soportada por tu negocio. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/README.mdx deleted file mode 100644 index 4d0ab0dbef..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiros alojados -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 permite un medio por el cual las billeteras y/o exchanges permiten que el usuario interactúe directamente con una ruta de entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/configuration.mdx deleted file mode 100644 index d107f710d0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -A continuación, vamos a modificar el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-24 es soportada por tu negocio, y también deben conocer todas las divisas que soportas. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu despliegue en producción que use la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución de Mainnet y la clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. - -## Habilitar depósitos y retiros alojados - -Ahora estás listo para habilitar depósitos y retiros alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml` y cambia los valores según tus preferencias. Este archivo de activos de ejemplo habilitará el soporte para USDC de Circle y un USD fiat. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash - - id: iso4217:USD - significant_decimals: 2 - # Optional support for XLM - - id: stellar:native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash -``` - - - -La información proporcionada para el valor `assets` se relaciona estrechamente con la información que se expondrá a la aplicación de billetera utilizando el endpoint [`GET /info`][sep24-get-info] de SEP-24. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio. - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -// Required -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -// Optional -SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores. - -`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL es más utilizada por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de cifrado que la Anchor Platform utilizará para generar tokens de corta duración que añadirá a las URLs proporcionadas a la billetera. El servidor de tu negocio también debe tener estas claves en su entorno para poder verificar la firma del token. - -`SEP24_INITIAL_USER_DEADLINE_SECONDS` es un parámetro opcional que define el tiempo en segundos que tiene un usuario para actuar antes de que la transacción pase al siguiente estado. Determina el campo `user_action_required_by`, que indica la fecha límite. Consulta [JSON-RPC Methods][json-rpc-methods] para ejemplos de uso. - -## Probar con la billetera de demostración - -¡Las billeteras ahora deberían ser capaces de descubrir, autenticarse e iniciar transacciones con tu servicio! Tu proyecto y archivos de origen ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse como el siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Para probar esto, ve a la [Billetera de Demostración de Stellar][stellar-demo-wallet]. - -[![billetera de demostración conectada a la Anchor Platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Iniciar una transacción haciendo lo siguiente: - -- Crear un nuevo par de claves -- Haz clic en el botón "Agregar activo" e ingresa - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el menú desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" - -La billetera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticarse usando el par de claves Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, recibirás una página no encontrada. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/example.mdx deleted file mode 100644 index 4dcb7aa777..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/example.mdx +++ /dev/null @@ -1,438 +0,0 @@ ---- -title: Ejemplo -sidebar_position: 40 ---- - -Integrarse con la Anchor Platform implica tres áreas clave: - -- Crear una experiencia de usuario basada en la web que se pueda abrir en una vista web móvil -- Proporcionar actualizaciones del estado de las transacciones a la Anchor Platform -- Recuperar actualizaciones del estado de las transacciones desde la Anchor Platform - -## Crear una Experiencia de Usuario Basada en la Web - -La Anchor Platform no ofrece una interfaz de usuario de etiqueta blanca que tu negocio pueda usar, y en su lugar espera que el negocio construya su propia interfaz de usuario y sistema backend. No construiremos toda una experiencia de usuario de entrada y salida en esta guía, pero cubriremos las formas en que tu producto existente debería actualizarse para ser compatible con la Anchor Platform. - -### Autenticación - -Si tu negocio tiene un producto de entrada y salida existente, es probable que ya tengas un sistema para la autenticación de usuarios. Sin embargo, dado que la Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir que el usuario pase por otra forma de autenticación es en realidad innecesario. De esta manera, la Anchor Platform puede considerarse como que proporciona una forma alternativa de autenticación. - -El negocio es libre de continuar requiriendo que los usuarios se autentiquen usando su sistema existente, pero la experiencia de usuario ideal omitiría este paso y crearía una sesión autenticada para el usuario si ya se ha autenticado usando su cuenta de Stellar. - -La Anchor Platform agrega un parámetro de consulta `token` a la URL del negocio proporcionada a la aplicación de billetera. Este token está firmado por el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` previamente configurado, e incluye la información que necesitas para identificar al usuario. El proceso debería verse algo así: - -1. Pasa el `token` agregado a la URL de tu sistema backend -2. Verifica la firma en el `token` y comprueba su caducidad -3. Crea una sesión autenticada para el usuario identificado por `token.sub` - -Los contenidos decodificados del `token` se verán algo así: - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", - "exp": 1516239022, - "data": { - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -Nota que el valor de `sub` identifica al usuario usando una cuenta de Stellar y un entero. Este es el valor que tendrá cuando las aplicaciones de custodia que utilizan una cuenta de conjunto se autentiquen con tu servicio. Cuando las billeteras no custodiales se autentican, el token puede verse ligeramente diferente. - - - -```json -{ - "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", - "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", - "exp": 1516239022, - "data": { - "client_domain": "api.vibrantapp.com", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" - } -} -``` - - - -El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación de billetera utilizada para autenticar. - -En ambos casos, toda la información en el objeto `data` es opcional y solo estará presente si la billetera proporciona esa información. - -Vamos a agregar un servidor backend a nuestro archivo de composición que se utilizará para verificar el token y crear sesiones web autenticadas para los usuarios que inicien transacciones. - - - -```yaml -# docker-compose.yaml ---- -business-server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - depends_on: - - platform-server -``` - - - -Vamos a crear un contenedor de Docker simple para nuestra aplicación. - - - -```docker -FROM node:19 - -WORKDIR /home -COPY . . -RUN npm install - -CMD ["node", "server.js"] -``` - - - -Ahora vamos a crear una aplicación mínima de NodeJS. - - - -```bash -yarn init -y -yarn add express jsonwebtoken -touch server.js -``` - - - -A continuación se muestra un ejemplo de un servidor backend que autentica a un usuario usando NodeJS. - - - -```js -# server.js -const express = require("express"); -const jwt = require("jsonwebtoken"); -const app = express(); -const port = process.env.BUSINESS_SERVER_PORT; - -app.use(express.json()); - -/* - * We'll store user session data in memory, but production systems - * should store this data somewhere more persistent. - */ -const sessions = {}; - -/* - * Create an authenticated session for the user. - * - * Return a session token to be used in future requests as well as the - * user data. Note that you may not have a user for the stellar account - * provided, in which case the user should go through your onboarding - * process. - */ -app.post("/session", async (req, res) => { - let decodedPlatformToken; - try { - decodedPlatformToken = validatePlatformToken(req.body.platformToken); - } catch (err) { - res.status = 400; - res.send({ "error": err }); - return; - } - let user = getUser(decodedPlatformToken.sub); - let sessionToken = jwt.sign( - { "jti": decodedPlatformToken.jti }, - process.env.SESSION_JWT_SECRET - ); - sessions[sessionToken] = user; - res.send({ - "token": sessionToken, - "user": user - }); -}); - -/* - * Validate the signature and contents of the platform's token - */ -function validatePlatformToken(token) { - if (!token) { - throw "missing 'platformToken'"; - } - let decodedToken; - try { - decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); - } catch { - throw "invalid 'platformToken'"; - } - if (!decodedToken.jti) { - throw "invalid 'platformToken': missing 'jti'"; - } - return decodedToken; -} - -/* - * Query your own database for the user based on account:memo string parameter - */ -function getUser(sub) { - return null; -} - -app.listen(port, () => { - console.log(`business server listening on port ${port}`); -}); -``` - - - -Ejecuta esto con el servidor de plataforma y la base de datos e inicia una nueva transacción con la [billetera de demostración][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. - - - -```bash -curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{"platformToken": ""}' \ - http://localhost:8081/session | jq -``` - - - -## Proporcionando Actualizaciones a la Plataforma - -Vamos a crear un endpoint para nuestro servidor de negocios que acepte la información recopilada en nuestra interfaz de usuario. - - - -```js -# server.js - -// Production systems should either let the Anchor Platform generate its own memos -// or have your custodial service generate a memo for each transaction. -const transactionMemos = {}; - -app.post("/transaction", async (req, res) => { - let sessionToken; - try { - sessionToken = validateSessionToken(req.headers.get("authorization")); - } catch (err) { - res.status = 400; - res.send({ "error": err }) - return; - } - // assuming this is a withdrawal transaction, we'll provide a memo, which is - // required by our third-party custodian to credit us the payment. When the - // payment is made with this memo, we can match the on-chain payment with the - // transaction in the Anchor Platform's database. - transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); - let rpcRequestBody = [ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": req.body.transaction.id,, - "message": "waiting for the user to provide off-chain funds.", - "amount_in": { - "amount": req.body.amount_in.amount, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": req.body.amount_out.amount, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": req.body.fee_details.total, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "destination_account": "GD...G", - "memo": transactionMemos[req.body.transaction.id], - "memo_type": "id" - } - } - ]; - let platformResponse; - try { - platformResponse = await updatePlatformTransaction(rpcRequestBody); - } catch (err) { - res.status = 500; - res.send({ "error": err }) - return; - } - res.send({ - "transaction": platformResponse.records[0] - }); -}); - -function validateSessionToken(authorizationHeader) { - let parts = authorizationHeader.split(" "); - if (parts.length != 2 || parts[0] != "Bearer") { - throw "invalid authorization header format"; - } - let sessionToken = parts[1]; - try { - jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); - } catch { - throw "invalid session token"; - } - if (!sessions[sessionToken]) { - throw "expired session"; - } - return sessionToken; -} - -async function updatePlatformTransaction(requestBody) { - let response = await fetch( - `${process.env.PLATFORM_SERVER}`, - { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(requestBody) - } - ); - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} -``` - - - -Esto actualizará la base de datos de la Anchor Platform con la información proporcionada y permitirá que las aplicaciones de billetera recuperen esta información actualizada para poder retransmitirla al usuario. Ya deberías haber informado al usuario sobre los montos de la transacción y que tu negocio está esperando que llegue el pago on-chain, pero proporcionar estas actualizaciones permite a los usuarios ver el estado de sus transacciones a través de su aplicación móvil sin tener que abrir la interfaz de usuario del negocio nuevamente. - -:::note - -En este momento, la Anchor Platform no envía notificaciones a la aplicación de billetera cuando cambian los estados de las transacciones, sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "solicitudes de retorno" para que las aplicaciones de billetera no tengan que consultar a la Anchor Platform por actualizaciones. - -::: - -## Recuperando Actualizaciones de la Plataforma - -Si solo utilizas la Anchor Platform para exponer las API SEP a las aplicaciones de billetera, entonces no tendrás una razón sólida para recuperar actualizaciones del estado de las transacciones de la Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que realices solicitudes `JSON-RPC API`. - -Sin embargo, si utilizas la Anchor Platform para monitorizar la red Stellar en busca de pagos entrantes (asociados con transacciones de retirada de fondos), la Anchor Platform actualizará los estados de las transacciones cuando se reciban los pagos. - -Hay dos formas de recuperar actualizaciones de la Anchor Platform, - -- Consultar la API de la plataforma en el endpoint `GET /transactions/:id` para las transacciones que esperas un pago -- Transmitir eventos de cambio de estado de la transacción desde un clúster de Kafka - -Si bien transmitir cambios de estado de la transacción desde un clúster de Kafka puede ser un enfoque más robusto y escalable, vamos a utilizar el método de sondeo en esta guía. Configurar y utilizar un clúster de Kafka será el tema de una sección diferente de la documentación. - -Primero, configuremos la Anchor Platform para observar la red Stellar en busca de pagos entrantes. - - - -```yaml -# docker-compose.yml ---- -stellar-observer: - image: stellar/anchor-platform:latest - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home - depends_on: - - db -``` - - - -El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` para pagos de retirada de fondos. - -Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por la Anchor Platform, la Anchor Platform considerará la transacción asociada con ese memo como recibida y actualizará el estado de la transacción a `pending_anchor`. Esto lo hace mediante una solicitud `JSON-RPC API`, así que necesitamos configurar la URL que debería utilizar. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -Vamos a hacer algunas adiciones al archivo `server.js` para que podamos consultar a la Anchor Platform por nuestros pagos esperados. - - - -```js -// server.js -... -/* - * Fetch the transaction data from the Platform API - * - * Production systems should have proper retry mechanisms. - */ -async function getPlatformTransaction(transactionId) { - let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) - if (response.status != 200) { - throw `unexpected status code: ${response.status}`; - } - return await response.json(); -} - -(async () => { - while (true) { - await new Promise(r => setTimeout(r, 2000)); - let requestPromises; - for (const transactionId in transactionMemos) { - requestPromises.push(getPlatformTransaction(transactionId)) - } - let transactions = await new Promise.all(requestPromises); - for (const transaction in transactions) { - // assuming all requests were successful - if (transaction.status == "pending_anchor") { - // initiate off-chain delivery of funds - console.log(`received payment for transaction ${transaction.id}`); - } - } - } -})() -``` - - - -## Implementación Completa de Ejemplo - -Stellar proporciona una implementación de ejemplo de servidor de negocios para SEP-24. Se divide en dos partes: 1) una interfaz de usuario web, accesible para el usuario final; y 2) una implementación de backend, utilizada para obtener y enviar actualizaciones desde/hacia la Anchor Platform. - -El código para la interfaz de usuario web se puede encontrar [aquí][sep-24-ref-ui] - -El código para el backend es parte de la Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/faq.mdx deleted file mode 100644 index a75d80bef4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Preguntas Frecuentes -sidebar_position: 50 ---- - -### ¿Cómo Usar JWTs? - -Como parte del flujo, una vez que un usuario realiza una solicitud, es decir, una solicitud de retiro/deposito interactivo, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform hará una llamada `GET` a `?token=`. - -Este token JWT contendrá: - -1. `exp` es el tiempo de expiración del token. Deberías verificar que el token proporcionado no haya expirado. -2. `sub` es la cuenta asociada con esta transacción. Puede ser utilizado para identificar la cuenta del usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se utilizará para recibir/enviar fondos. -3. `jti` es el hash de la transacción. -4. `data` es la carga adicional que ha sido establecida por el usuario. Siempre incluirá el `asset` de Stellar que se desea depositar o retirar. Si es proporcionado por el cliente, también contendrá el `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificada durante la autenticación SEP-10, y `client_name` (definido como 'name' en la configuración [clients] si está provisto), y la preferencia de `lang` (idioma) del usuario. - -### ¿Cómo Proporcionar Tarifas? - -Actualmente, se recomienda proporcionar tarifas/tasas de cambio en el iFrame/vista web de tu aplicación. - -El estándar [SEP-24] proporciona un endpoint `/fee` para permitir a las empresas establecer tarifas estáticas para sus transacciones. Sin embargo, actualmente no es soportado por la Anchor Platform. - -:::note - -El endpoint /fee será desaprobado en el futuro. - -::: - -### ¿Cómo identificar la cuenta del usuario? - -Deberías usar el campo `sub` del token JWT. Para billeteras de custodia, este valor estará en el formato `cuenta:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí mismo, que será igual a la cuenta del usuario. - -### ¿Cómo identificar la billetera? - -Utiliza los atributos `data.client_domain` dentro del token JWT. En presencia de la configuración [clients], el token JWT incluirá adicionalmente el campo `data.client_name`, lo que permitirá la identificación de la billetera. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clientes]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/getting-started.mdx deleted file mode 100644 index 5c6a305d2e..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de crear un servicio de acceso y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas de fondos. - -Al aprovechar el soporte de la Anchor Platform para SEP-24, las empresas hacen que su servicio de acceso y salida esté disponible como una experiencia en la aplicación a través de aplicaciones basadas en Stellar como billeteras y exchanges, ampliando su alcance y conectando con usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias, requeridas por SEP-24: [SEP-1 (Archivo de Información de Stellar)][sep1-ap] y [SEP-10 (Autenticación de Stellar)][sep10-ap] - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente en un depósito y una retirada es algo así: - -1. El cliente abre la aplicación de billetera SEP-24 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su KYC e información de transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiat real con el anchor (por ejemplo, realiza una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede utilizar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, la billetera abre la URL interactiva dada y permite al cliente ingresar su información de transacción (el KYC ya ha sido recopilado) -4. Después de solicitar la aprobación del cliente, la billetera envía la cantidad especificada del saldo de activos del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados a través de una transferencia bancaria. - -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/integration.mdx deleted file mode 100644 index 3efe97c36d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. - -En general, querrás proporcionar actualizaciones para los siguientes eventos: - -- Tu negocio está procesando la información KYC proporcionada por el usuario -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se hace haciendo solicitudes JSON-RPC al endpoint de la API de la plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario realizar una solicitud JSON-RPC correspondiente y pasar los datos que requiere este método RPC. - -La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API será llamada cada vez que un usuario o el anchor realice alguna acción que avance el estado de la transacción en el flujo. - -La comunicación de la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de eventos][event-handling]. - -Puedes encontrar más información sobre el flujo de transacciones y estados en el [documento del protocolo SEP-24][sep-24] - -## Callbacks - -La Anchor Platform se basa en el servidor de negocios para proporcionar y almacenar información sobre cotizaciones. - -### Cotizaciones y tarifas - -Para admitir el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotizaciones se utiliza para proporcionar al usuario el monto esperado del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocios debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la plataforma - - - -### Usando la clave API - - - -### Usando JWT - - - -## Haciendo solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de error - - - -## Actualizando transacciones de depósito a través de JSON-RPC - -El diagrama de flujo de depósito SEP-24 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![flujo de depósito sep24](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen la manera más corta. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -### Listo para recibir fondos - -El primer paso del flujo de depósito después de iniciar el propio depósito es recopilar KYC. Generalmente se realiza en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación de billetera, usando [SEP-9]. Una vez que se recopila el KYC necesario, se debe hacer una solicitud JSON-RPC `request_offchain_funds`. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` es la cantidad que el usuario debe enviar al negocio. -- `amount_out` es la cantidad que el usuario recibirá. -- `fee_details` es el monto total de tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, se establece en USD, asumiendo que el usuario hizo una transferencia bancaria al sistema usando USD. - -La información sobre las cantidades (en/salida/tarifa) es requerida si quieres mover la transacción de `incompleta` a `pendiente_transferencia_usuario_inicio`. Si el estado de la transacción se cambia de `pendiente_ancla` a `pendiente_transferencia_usuario_inicio`, puedes omitir la definición de las cantidades. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -Cuando el proceso de KYC es largo (por ejemplo, verificación de ID), se aconseja primero establecer el estado de la transacción en `pendiente_ancla` utilizando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que KYC está siendo procesado. - -::: - -### Procesando información KYC - -:::tip - -Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo e ir al [siguiente paso](#fondos-recibidos). - -Usar este estado se recomienda cuando la verificación KYC pueda necesitar ser realizada de manera asíncrona. - -::: - -Debes especificar los campos `amount_x`. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Fondos Recibidos - -Si se recibieron fondos fuera de la cadena, querrás proporcionar la información de transacción actualizada. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de la recepción de fondos -- `external_transaction_id` es el ID de la transacción en la red externa - -Los campos de monto son opcionales. Si se omiten, se tomarán los valores de solicitudes JSON-RPC anteriores. - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando fondos del usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia pero los fondos en sí aún no se han recibido. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando fondos en la cadena - -A continuación, envía una transacción en la red Stellar para cumplir con la solicitud del usuario. Después de la finalización de la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos han sido enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el id de la transacción en la red Stellar de la transferencia - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción será transferida al estado `completada`. - -### Enviando pago a través del servicio de custodia - -La Anchor Platform proporciona la posibilidad de enviar un pago a través de servicios de custodia, como Fireblocks. Para hacer un pago a través del servicio de custodia, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform realizará automáticamente la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completada`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido un [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción en `pendiente_confianza` para indicar que el anchor está esperando que el usuario establezca el trustline. - -Si la integración de custodia está habilitada, la Anchor Platform realizará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere un trustline de activo que no fue configurado por el usuario. Hay dos formas en las que la transacción puede moverse al estado `pendiente_confianza`. La primera es procesando un pago a través del servicio de custodia en caso de que detecte que el trustline no está configurado. La segunda es cuando el negocio mismo detecta que falta el trustline y quiere notificar al usuario que debe ser configurado. Para mover la transacción al estado `pendiente_confianza`, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si se configuró el trustline. Si se configuró, enviará automáticamente un pago a un servicio de custodia y cambiará el estado de la transacción a `pendiente_stellar`. - -::: - -### Confianza Establecida - -Este estado debe establecerse si el negocio ha detectado que el trustline fue o no configurado por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- El flag `success` que define si el trustline fue o no configurado por el usuario - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del flag `success`, el estado de la transacción cambiará a `pendiente_stellar` si el trustline fue establecido, o a `pendiente_ancla` si no lo fue. - -::: - -### Enviando reembolso a través del servicio de custodia - -Hay una posibilidad de enviar fondos de regreso al usuario (reembolso). Puedes reembolsar la suma completa (reembolso completo) o hacer un conjunto de reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma de regreso al usuario y enviar el resto como fondos en la cadena. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si el total de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pendiente_ancla`. Solo si el total de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá en `reembolsado`. - -::: - -### Reembolso Pendiente - -Es similar a [Reembolso enviado](#reembolso-enviado), pero maneja un caso cuando se ha enviado un reembolso a una red externa pero aún no está confirmado. El estado de la transacción se establece en `pendiente_externo`. Este es el estado que se establecerá al esperar que Bitcoin u otra red de criptomonedas externa complete una transacción, o al esperar una transferencia bancaria. - -### Error de transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción en `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha hecho una transferencia, deberías hacer una recuperación de la transacción, y luego puedes repetir el procesamiento de la transacción o iniciar un reembolso. - -::: - -### Transacción caducada - -Tu negocio puede querer manejar transacciones abandonadas caducando aquellas que han permanecido inactivas durante un cierto período. Para lograr esto, verifica el estado de la transacción utilizando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como caducar la transacción o iniciar un reembolso automático, según el estado actual de la transacción. Por ejemplo, para caducar una transacción, el negocio debería cambiar el estado de la transacción a `caducado`: - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no puede ser utilizado después de que el usuario haya realizado una transferencia. - -::: - -### Transacción en espera - -En raras ocasiones, puedes querer pausar una transacción actual y solicitar más información del usuario (después de que se haya recibido la transferencia). Esto podría usarse para casos de cumplimiento. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Recuperación de transacciones - -El estado de la transacción se puede cambiar de `error/caducado` a `pendiente_ancla`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizando la transacción de retirada de fondos a través de JSON-RPC - -Este diagrama define una secuencia/reglas de transición de estado de la transacción para el flujo de retirada SEP-24. - -[![Flujo de retirada SEP-24](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o que ha caducado. - -::: - -Una vez que se complete el flujo de depósito, implementar la retirada será sencillo. Algunas partes del flujo son similares y pueden ser reutilizadas. - -El punto de partida tanto para la retirada como para el depósito es el mismo. - -### Listo para recibir fondos - -Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, dado que tu servicio recibirá transacciones a través de la red Stellar, la actualización se verá diferente. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Valor del memo para adjuntar a la transacción -- `memo_type` Tipo de memo que el anchor debe adjuntar a la transacción -- `destination_account` Cuenta de destino - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Configurar `memo`, `memo_type` y `destination_account` es opcional. - -Si la integración con un custodio de terceros está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Nota que el memo debe ser único, esto es lo que ayuda a asociar las transacciones de Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente el `memo` y `memo_type` (solo si no se incluyen en la solicitud). - -::: - -:::note - -La cuenta Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Procesando Información KYC - -Este paso es opcional, y es similar a [Procesando Información KYC](#processing-kyc-information) del flujo de depósito. - -### Fondos Recibidos - -Si se recibieron fondos on-chain, debes proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Monto Actualizado - -Si se recibieron fondos on-chain, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `fee_details` pueden ser actualizados usando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos Off-chain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Off-chain Disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos off-chain, y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos Off-chain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago se ha enviado a una red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Reembolso Enviado - -La lógica del reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. - -### Envío de Reembolso a través de Servicio de Custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Al igual que en el flujo de depósito, puedes hacer un reembolso completo o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de reembolsos sea menor que `amount_in`. Si la suma de reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de Transacción](#transaction-error) del flujo de depósito. - -### Transacción Caducada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción Caducada](#expired-transaction) del flujo de depósito. - -### Transacción En Espera - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción En Espera](#on-hold-transaction) del flujo de depósito. - -### Recuperación de Transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de Transacciones Stellar - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[manejo de eventos]: ../events/README.mdx -[callback de tasa]: ../../api-reference/callbacks/README.mdx -[json-rpc-métodos]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 444435e45f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Configurar un servidor de producción -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Una vez que el servidor de prueba esté activo y hayas probado tanto los flujos de depósito como de retiro, es hora de comenzar con el despliegue real conectado a KYC real y proveedores de sistemas bancarios reales. Antes de usar cualquier API bancaria, es crucial que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades. - -## Desplegar un entorno seguro - -Asegúrate de mantener el servidor de prueba activo y despliega el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas funcionalidades en el testnet antes de trasladarlas al despliegue final de producción. También puedes tener un tercer entorno de staging si hay un gran equipo trabajando en este código y/o habrá muchos lanzamientos que probar internamente antes de compartirlo con otras instituciones. - -Para cambiar a la red pública (mainnet) de Stellar, solo tienes que cambiar la [frase de paso](/docs/networks#network-passphrases) de la red (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). - -Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. - -Primero, necesitas cambiar tu archivo de información (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -A continuación, cambia tu configuración de Anchor Platform en el archivo `production.env` : - - - -```bash -# production.env -STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org -``` - - - -## Conectando con KYC real - -La mayoría de los anchors necesitan recoger información de [Conozca a su Cliente](https://en.wikipedia.org/wiki/Know_your_customer) para cumplir con regulaciones locales antes de aceptar depósitos y retiros. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. - -Cómo manejas el KYC depende de ti: hay muchos servicios que ofrecen soluciones de KYC a través de APIs e iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar los requisitos. Cada jurisdicción tiene requisitos específicos de KYC, y difieren de una jurisdicción a otra, por lo que lo mejor es encontrar un proveedor de KYC específico para un país que satisfaga tus necesidades. - -Algunos países requieren diferentes campos de KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios de KYC en función de la cantidad de depósito o retiro, simplemente añade un campo de cantidad antes del formulario de KYC y asegúrate de que los campos de KYC se actualicen según ese valor. - -La información de KYC debería estar vinculada a la sesión creada a través de [Stellar Web Authentication](../sep10/README.mdx) y, en consecuencia, al usuario, así que solo necesitas pedirle esa información una vez. Después de que el primer flujo de KYC esté completo, un usuario no debería tener que volver a ingresar la información. - -Asegúrate de que los errores y los mensajes de validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También debes localizar los mensajes según el idioma y la ubicación del usuario. - -## Pre-rellenar el formulario de KYC - -Pre-rellenar el formulario de KYC es una excelente manera de reducir la fricción para comenzar a usar un anchor, y las billeteras generalmente proporcionan un conjunto de campos que se utilizan comúnmente en todo el ecosistema. En resumen, el anchor puede renderizar el formulario de KYC con los valores del usuario que fueron enviados previamente por la billetera en los puntos finales de `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. - -Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las billeteras en los puntos finales mencionados anteriormente, pero los más comunes son: correo electrónico, primer nombre, apellido y número de teléfono. Además, deberías permitir que los campos pre-rellenados sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera y podría querer editarlo antes de finalizar el proceso de KYC del Anchor. - -Todos los datos de SEP-9 que fueron enviados desde la billetera son parte del [JWT interactivo](./faq.mdx#how-to-use-jwts), enviado por el Anchor Platform - -## Conectando a sistemas bancarios reales - -Se espera que los emisores de tokens respaldados por fiat administren una reserva completa. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado por un activo real en el mundo real y se puede canjear por él, los emisores de tokens respaldados por fiat necesitan conectarse a sistemas bancarios reales para validar los depósitos de los usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y para completar los retiros de los usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que acepta depósitos y retiros de un token emitido por otra organización, seguirás un proceso similar. - -Para obtener (e identificar) una transferencia de usuario, los emisores generalmente toman uno de dos enfoques: - -- Polling API: esta opción consiste en obtener la API del banco, a través de un trabajo cron, para verificar el estado actualizado de la lista de transferencias recibidas (y enviadas) desde la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario -- Webhook: no todos los sistemas bancarios admiten esta opción, pero es la más sencilla en términos de lógica de backend. En este enfoque, el banco contacta proactivamente un endpoint de un emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede entonces emparejar esa transacción con un depósito en proceso existente y validar que el usuario pueda recibir sus fondos digitales - -Hay muchas maneras de identificar que una transferencia bancaria específica está relacionada con un depósito específico (y, en consecuencia, con un usuario). Al algunos bancos (y países) tienen infraestructuras de transferencia que permiten la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios añadan un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan hacer coincidir eso con la información proporcionada en el formulario de KYC. - -Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando haya conexiones con sistemas bancarios. Algunos bancos proporcionan una API de pruebas que se puede usar para desarrollo y despliegue en testnet o entornos de staging, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para una mejor seguridad, algunos anchors también prefieren añadir un paso final manual antes de aprobar las transferencias de retiro. En términos de UX, esta aprobación manual es aceptable siempre que los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no sean más largos que un par de horas. - -## Probando casos extremos - -Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporta como se espera. Aquí hay una lista de sugerencias para pruebas que deberían cubrir una gran cantidad de los casos extremos de la aplicación: - -### Pruebas generales - -- Prueba la usabilidad del flujo interactivo -- Prueba la interfaz usando diferentes información regional, y verifica contenido traducido incluyendo mensajes de error, respuestas, formato de fecha y formato de número - -### Pruebas de KYC - -- Verifica que KYC aparezca con un nuevo SK de billetera -- Verifica que KYC no acepte entradas mal formateadas y que los mensajes de error sean comprensibles -- Verifica que puedes utilizar la misma información de KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) varias veces -- Verifica que puedes pasar por KYC varias veces con el mismo SK de Stellar. - -### Prueba interactiva - -- Verifica que el flujo de depósito funcione y que los sistemas bancarios estén operativos -- Verifica que no puedas hacer un retiro con un valor superior al saldo actual -- Verifica que el flujo de retiro funcione y que los sistemas bancarios estén operativos - -### Pruebas de seguridad - -- Asegúrate de que los endpoints de la plataforma estén asegurados - -## Pulido e internacionalización - -Apoyar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida al navegar por las pantallas y apoya a instituciones internacionales (como billeteras) que necesitan probar el producto antes de comenzar nuevas integraciones. - -Puedes soportar múltiples idiomas en tu aplicación web utilizando el parámetro `Accept-Language` de los encabezados de la solicitud http para localizar el contenido y permitir que los usuarios cambien eso de manera sencilla (por ejemplo, un icono de bandera en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al inicio de los procesos de depósito y retiro. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de verificar el formato de los números, fechas, etc. - -Tener un grupo de beta testers es una excelente manera de verificar si hay casos extremos que necesitan pulirse y de confirmar que el sistema está funcionando bien con una variedad de entradas de usuario. Puedes realizar pruebas beta utilizando una etapa de lanzamiento suave antes de comenzar a poner esfuerzo en el marketing y la distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y brinda a los nuevos socios y usuarios potenciales claridad y confianza en el producto. - -## Conectando con billeteras - -Todas las interacciones de usuario de Anchor se realizan a través de una billetera, por lo que es vital para los anchors estar conectados a billeteras que tengan una buena penetración en el mercado de la región donde el negocio se centra más. Conectar con billeteras es un proceso simple, dado que ambos extremos de esa integración ya son compatibles con las SEPs. - -Stellar.org mantiene una [lista de billeteras](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente soportan SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta de emisor es una excelente manera de comenzar a atraer algunos usuarios reales hacia el Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/README.mdx deleted file mode 100644 index 40f6e66ca9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Pagos transfronterizos -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 permite un medio por el cual las billeteras y/o exchanges interactúan con el conjunto existente de servicios de envío de Stellar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/configuration.mdx deleted file mode 100644 index d3be7b6b0b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modificar un archivo de información de Stellar - -Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-31 es admitida por tu negocio y también necesitan conocer todas las monedas que admites. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de pase de la red pública, las URL de servicio de producción, tus cuentas de distribución de mainnet y la clave de firma, así como las cuentas emisoras de mainnet de los activos que utiliza tu servicio. - -## Habilitar pagos transfronterizos - -Ahora estás listo para habilitar pagos transfronterizos con la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH -``` - - - -La información proporcionada en los objetos `sep31` y `send` se mapea estrechamente con la información que se expondrá a la aplicación de billetera usando el endpoint [`GET /info`][sep31-get-info] de SEP-31. La Anchor Platform también utiliza esta información para validar las solicitudes hechas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y será eliminado en una futura versión, pero puedes ajustar los valores de `send.min_amount` y `send.max_amount` de acuerdo con los límites de tu servicio. - -Los `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones emisoras pueden y están obligadas a solicitar una tasa de cambio utilizando el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los emisores prefieren este enfoque para que puedan comunicar la tasa a sus clientes antes de proceder. - -Agrega la siguiente variable a tu archivo de entorno. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -¡Los emisores ahora deberían poder descubrir, autenticar y comenzar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la Anchor Platform. - - - -```bash -docker compose up -``` - - - -Verifica que tu API esté activa. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API de KYC del cliente - -Las empresas necesitan recopilar y validar la información de KYC de los clientes para quienes están facilitando transacciones. Los clientes determinan qué información de KYC necesita ser recopilada y envían esa información a través de una API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En su lugar, reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Consulta la [especificación de API KYC de Anchor Platform][platform-api-kyc] para detalles sobre los endpoints que deben implementarse en el servidor de tu negocio. - -Para hacer que esta API esté disponible para los clientes, añadamos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Habilitemos esto en nuestro entorno también. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finalmente, tenemos que definir los tipos de cliente de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información de KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transfronterizos en dos jurisdicciones regulatorias distintas, de modo que los clientes en diferentes jurisdicciones tengan diferentes requisitos de KYC y serían representados usando diferentes tipos. - -:::info - -Actualmente, los tipos de clientes deben ser mutuamente excluyentes, lo que significa que un cliente no puede ser más de un tipo. - -Esta limitación está en su lugar porque la Anchor Platform no puede validar si un cliente está aprobado para un tipo de transacción específica, como uno que envía una gran cantidad. Solo puede validar que un cliente está aprobado para uno de los tipos de cliente definidos. Esta limitación será eliminada en una futura versión. - -::: - -En esta guía, solo tendremos dos tipos, un tipo de cliente que envía y un tipo de cliente que recibe. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Vamos a hacer ping al endpoint de información nuevamente para verificar. Después de `docker compose up`, ejecuta el siguiente comando: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Habilitar la API RFQ - -Las empresas necesitan proporcionar a sus contrapartes del lado de envío una API de [Tarifas][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre el activo en cadena que se utiliza para la liquidación y el activo fiduciario que se usa para pagar al destinatario. Si la tasa es competitiva, los emisores también deben poder solicitar un compromiso con la tasa que se está ofreciendo actualmente por el negocio durante un corto periodo de tiempo. - -La Anchor Platform proporciona la [API RFQ SEP-38][sep38] a los emisores para este propósito. - -Para hacer que esta API esté disponible para los clientes, añadamos la URL del servicio a nuestro archivo de información de Stellar. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Habilitemos esto en nuestro entorno también. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -También necesitamos habilitar el uso de USDC en esta API, así como agregar un activo fuera de la cadena con el que se pueda intercambiar. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:BRL - country_codes: - - BR - - id: iso421:BRL - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BR - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -¡Probemos que tu API RFQ esté activa! Después de `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -Deberías obtener lo siguiente: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BR"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configurar la autenticación de la API de Callback - -Así como tu negocio necesitará hacer solicitudes a la Anchor Platform, la Anchor Platform necesitará hacer solicitudes a tu negocio. Añadamos autenticación a estas solicitudes también. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como el host porque la Anchor Platform realizará solicitudes a tu servidor de negocio desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de prueba o producción, asegúrate de actualizar tus URLs de servicio. - -Definiremos el servidor que implementa los endpoints definidos en la API de Callback en la siguiente sección. - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/getting-started.mdx deleted file mode 100644 index 95205419b6..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/getting-started.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te guiará a través de la configuración e integración con la Anchor Platform con el propósito de construir un servicio de recepción de pagos transfronterizos compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transfronterizos. - -Al aprovechar el soporte de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios de envío de Stellar. - -:::info - -A medida que mejoramos la documentación, partes de esta guía que son relevantes para otros casos de uso pueden ser trasladadas a sus propias secciones. - -::: - -Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Anchor Platform y de haber configurado las características necesarias requeridas por SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] y [SEP-10 (Stellar Authentication)][sep10-ap]. - -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/integration.mdx deleted file mode 100644 index ced8da0b3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,669 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -La integración con la Anchor Platform para facilitar pagos transnacionales implica implementar lo siguiente, como mínimo: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] puntos finales de la API KYC para solicitar y recoger los datos KYC de los clientes -- [`GET /rate`][get-rate] punto final de la API RFQ para proporcionar tasas de FX entre los activos on-chain y off-chain admitidos -- Las solicitudes `GET /transactions` para obtener actualizaciones sobre los estados de las transacciones de la Anchor Platform (la documentación llegará pronto) -- Solicitudes [`JSON-RPC`][json-rpc-methods] para actualizar los estados de las transacciones de la Anchor Platform - -Lo siguiente también puede ser necesario dependiendo de tu caso de uso: - -- [`DELETE /customer`][delete-customer] si tu negocio desea o necesita permitir que los remitentes soliciten la eliminación de los datos del cliente - -## Crear un Servidor de Negocios - -Primero, vamos a crear un servidor de negocios y agregarlo a nuestro archivo docker compose. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -A continuación, crea un servidor web simple usando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` deberías iniciar exitosamente los tres servicios. - -Esta guía no proporciona un ejemplo de implementación de los puntos finales, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia de la API de Anchor Platform][ap-api], y las secciones a continuación ampliarán los conceptos importantes que debes entender al implementar los puntos finales. - -## Puntos finales de Callback del Cliente - -La Anchor Platform nunca almacena la PII de tus clientes, y en su lugar actúa como un servidor proxy entre las aplicaciones cliente y tu negocio, reenviando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación de la API KYC SEP-12][sep12]. - -### Identificando Clientes - -Los clientes pueden ser identificados utilizando dos enfoques. - -El primer enfoque utiliza una cuenta Stellar y un memo. Al utilizar la Anchor Platform para facilitar pagos transnacionales, la organización remitente utiliza su propia cuenta Stellar, la que se usa para autenticarse a través de [SEP-10 Stellar Authentication][ap-sep10], al registrar clientes con tu negocio. Los memos se utilizan para distinguir clientes únicos que provienen de la misma organización remitente. - -El segundo enfoque utiliza identificadores de cliente generados por tu servicio. Por ejemplo, si una organización remitente está registrando un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos suelen ser enteros de 64 bits, pero también pueden ser otros tipos de datos, así que deben ser guardados como cadenas. En respuesta, tu negocio debería devolver un identificador de cliente. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Tu servidor de negocios puede usar cualquier identificador para clientes siempre que sea una cadena. - -Tras el registro de un cliente, la organización remitente puede usar cualquiera de los dos enfoques al verificar el estado del cliente. Por ejemplo, puedes recibir una solicitud `GET /customer` como la siguiente: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -O, la organización remitente podría usar el identificador que devolviste cuando registraron originalmente al cliente. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Tu negocio deberá mantener un mapeo entre la cuenta y el memo usados para registrar originalmente al cliente y el ID que devuelves en la respuesta, así como los datos KYC proporcionados. En futuras iteraciones de la Anchor Platform, podríamos mantener este mapeo para tu negocio para que solo tengas que trabajar con los IDs que generes. - -### Tipos de Clientes - -Es probable que tu negocio requiera diferentes conjuntos de información KYC dependiendo del tipo de cliente. Puedes definir las etiquetas para cada uno de estos tipos de clientes en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes necesitarán entender qué etiqueta usar al registrar o consultar el estado de los clientes. - -En las solicitudes `PUT /customer`, deberías usar el tipo que se pasa para evaluar si el remitente ha proporcionado todos los campos requeridos. En las solicitudes `GET /customer`, deberías usar el tipo para determinar el estado del cliente. - -### Prueba con la Billetera de Demostración - -Puedes probar tu implementación con la [Billetera de Demostración Stellar][demo-wallet] siguiendo los pasos a continuación. - -1. Selecciona "Generar keypair para nueva cuenta" -2. Selecciona "Crear cuenta" -3. Selecciona "Agregar Activo" e introduce el código del activo y el dominio de la Anchor Platform, `localhost:8080` -4. Selecciona "Agregar línea de confianza" -5. Financia tu cuenta con un saldo del activo -6. Selecciona "SEP-31 Enviar" en el menú desplegable - -Deberías ver cómo la billetera de demostración encuentra las URL de tu servicio, se autentica y verifica qué campos KYC necesita recoger. Luego debería presentar un formulario para que ingreses los detalles KYC del remitente y el receptor. - -[![billetera de demostración después de iniciar una transacción](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Una vez que hayas ingresado la información solicitada, se enviará esa información a la Anchor Platform, que la enviará a tu servidor de negocios. Una vez que la billetera de demostración tenga los IDs de los clientes que generaste, iniciará una transacción que debería fallar. - -## Punto Final de Callback de Tarifa - -Una vez que la organización remitente ha registrado a los clientes involucrados en la transacción, necesitará solicitar un presupuesto, o tarifa de FX, a tu negocio. La Anchor Platform solicita esta información a tu servidor de negocios usando el [`GET /rate` endpoint][get-rate]. - -### Presupuestos Firmes vs. Indicativos - -Las solicitudes de presupuestos tendrán un parámetro `type` que es [`indicativo`][indicative] o [`firme`][firm]. Si `type=firme`, tu respuesta debe incluir el `id` y el campo de fecha-hora `expires_at` y reservar la liquidez necesaria para cumplir con este presupuesto hasta que expire. Si `type=indicativo`, no devuelvas los campos `id` o `expires_at` porque la tarifa proporcionada no se utilizará en una transacción. - -Ten en cuenta que el cliente puede solicitar que el presupuesto expire después de una fecha-hora específica usando el parámetro `expires_after`. Tu negocio debe honrar esta solicitud devolviendo un valor `expires_at` que esté en o después de la fecha-hora solicitada o rechazar la solicitud con una respuesta 400 Bad Request, que se reenviará al cliente. - -### Usando el ID del Cliente - -Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para cumplir con los términos comerciales acordados con esa organización remitente, como ofrecer tarifas con descuento. `client_id` puede no estar presente para solicitudes indicativas, en cuyo caso debería devolverse tu precio de mercado. Actualmente `client_id` siempre será la clave pública Stellar que la organización remitente utilizó para autenticarse con la Anchor Platform. - -### Métodos de Entrega - -Es común que las tarifas y los cargos de las empresas varíen según los rieles de pago utilizados para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre proporcionarán el riel de pago que deseen que tu negocio use para solicitudes de presupuestos firmes. - -Debido a que este punto final actualmente solo se utiliza para pagar remesas en activos off-chain, se usará el `buy_delivery_method`. Si este punto final se utiliza alguna vez en otros flujos de transacción, como depósitos SEP-24, entonces `sell_delivery_method` también podría ser pasado para negocios que soporten estos tipos de transacciones. - -## Obteniendo Actualizaciones del Estado de la Transacción - -Para facilitar pagos transnacionales, necesitarás ser capaz de detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar qué transacción se pretendía cumplir con ese pago. - -La forma más fácil de hacerlo es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de transacción correspondiente con información sobre el pago. Tu negocio puede entonces detectar estas actualizaciones realizando sondeos al punto final de la API Platform `GET /transactions`. - -### Ejecutando el Stellar Observer - -El Stellar Observer monitorea el ledger de Stellar para los pagos realizados a tu(s) cuenta(s) y actualiza los registros de transacción correspondientes con información de pagos on-chain. Para ejecutar el observador, agrega lo siguiente a tu archivo docker compose. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:latest - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling por Pagos Recibidos - -El Stellar Observer realiza solicitudes JSON-RPC a la API Platform cada vez que detecta pagos recibidos por transacciones iniciadas por organizaciones remitentes, actualizando así la fecha-hora de `transfer_received_at` de la transacción. - -Tu negocio debe hacer polling periódicamente al punto final de la API Platform `GET /transactions` para detectar estas actualizaciones. Puedes referirte al siguiente ejemplo: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -La respuesta incluirá una lista de transacciones de pagos transnacionales iniciadas por organizaciones remitentes. Esta lista estará ordenada según el momento en que se recibió un pago por esa transacción. Para cada transacción devuelta, tu negocio debería verificar si ya ha detectado el pago para esa transacción. Si lo ha hecho, has detectado todos los pagos realizados a tu(s) cuenta(s). - -## Actualizando la Transacción Vía JSON-RPC - -El diagrama de flujo SEP-31 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que se deben llamar para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -[![diagrama de flujo sep31](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el flujo más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha caducado. - -::: - -Puedes crear un [template][sep24-integration-make-json-rpc-request] para hacer solicitudes JSON-RPC a la Anchor Platform. - -Este capítulo también contiene información sobre el formato de [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y [códigos de error][sep24-integration-error-codes] que podrían ser devueltos por la Anchor Platform. - -### Listo para Recibir Fondos - -Las transacciones SEP-31 deben estar inicialmente en el estado `pending_receiver`. Para solicitar fondos del Sending Anchor, el Receiving Anchor debe cambiar el estado de la transacción a `pending_sender` haciendo la siguiente solicitud RPC: - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -El estado de la transacción se cambiará a `pending_sender`. - -### Fondos Recibidos - -Si el Sending Anchor ha enviado los fondos, el Receiving Anchor debe cambiar el estado de la transacción a `pending_receiver` haciendo la siguiente solicitud JSON-RPC: - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -El estado de la transacción se cambiará a `pending_receiver`. - -### Fondos Offchain Enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Fondos Offchain Pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a la red externa, pero aún no está confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verificando la Información del Cliente - -En algunos casos, el Receiving Anchor podría necesitar solicitar información actualizada del Sending Anchor. Por ejemplo, el banco le dice al Receiving Anchor que el nombre del Cliente Receptor proporcionado es incorrecto o le falta un segundo nombre. Dado que esta información fue enviada a través de SEP-12, la transacción debería entrar en el estado `pending_customer_info_update` hasta que el Sending Anchor haga otra solicitud `PUT /customer` de SEP-12 para actualizar. El Sending Anchor puede verificar qué campos necesitan ser actualizados haciendo una solicitud `GET /customer` de SEP-12 incluyendo los parámetros id o account & memo. El Receiving Anchor debe responder con un estado `NEEDS_INFO` y `last_name` incluido en los campos descritos. - -Después de que el Sending Anchor haga una solicitud `PUT /customer` de SEP-12, llama al método JSON-RPC `notify_customer_info_updated` otra vez para actualizar el estado de la transacción. Adicionalmente, llama a este método cada vez que el estado SEP-12 de un cliente cambie, como cuando la información del cliente esté siendo validada y el estado cambie de `NEEDS_INFO` a `PROCESSING`. Esto garantiza que cualquier cliente configurado con una URL de callback sea notificado del estado más reciente del cliente, permitiendo al cliente solicitar al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Realizar un Reembolso Stellar - -La integración con el servicio de custodia te permite realizar reembolsos a través del servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto total del reembolso más la tarifa debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Reembolso Enviado - -Hay una posibilidad de enviar todos los fondos de vuelta al `Sending Anchor` (reembolso). Necesitas reembolsar la suma total (reembolso completo). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -No puedes hacer múltiples reembolsos en el flujo SEP-31. Por esta razón, la cantidad a reembolsar más la tarifa debería ser igual a `amount_in`. De lo contrario, recibirás un error. - -::: - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción y luego puedes intentar procesar la transacción nuevamente o iniciar un reembolso. - -::: - -### Transacción Caducada - -Tu negocio puede querer caducar esas transacciones que han sido abandonadas por el usuario después de un tiempo. Es una buena práctica limpiar las transacciones inactivas en estado `incompleto`. Para hacerlo, simplemente cambia el estado de la transacción a `caducado`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede usar después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiarse de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar la transacción, es necesario realizar la siguiente solicitud JSON-RPC: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para procesar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -### Configuración - -Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: - - - -```yaml -items: - - ... - sep31: - quotes_required: false -``` - - - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/README.mdx deleted file mode 100644 index 2da2ecd7b9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Depósitos y retiradas programáticas -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 permite un medio a través del cual las billeteras y/o intercambios interactúan con un anchor en nombre de los usuarios, sin requerir que el usuario interactúe directamente con la entrada y salida. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/configuration.mdx deleted file mode 100644 index 8b73f10c6b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: Configuración -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuración - -Para habilitar depósitos y retiradas SEP-6, la Anchor Platform debe configurarse para hacer lo siguiente: - -- Proporciona las URL de servicio necesarias para los puntos finales SEP-6, 12 y 38 en el archivo `stellar.toml` -- Proporciona información sobre los activos on-chain y off-chain, así como los métodos de pago, que tu negocio apoya a través de los puntos finales `/info` SEP-6 y SEP-38 -- Soporta los puntos finales y callbacks necesarios para solicitar información KYC y proporcionar tasas de cambio - -## Habilitar Depósitos y Retiradas Programáticas - -Agrega las siguientes variables a tu archivo de entorno. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modificar un Archivo de Información Stellar - -Vamos a modificar el archivo `stellar.toml` que creamos [anteriormente][sep1-ap]. Las billeteras necesitan saber que la funcionalidad SEP-6 es soportada por tu negocio, y también necesitan conocer todos los activos Stellar que apoyas. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Nota que necesitarás crear otro archivo para tu implementación de producción que use la frase de paso de la red pública, las URL de servicio de producción, las cuentas de distribución en Mainnet y la clave de firma, así como las cuentas de emisión de Mainnet de los activos que utiliza tu servicio. - -### Modificar el Archivo de Configuración de Activos - -Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores dependiendo de tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para USDC de Circle y un USD fiat para depositar y retirar. - -Los métodos especificados en las secciones `sep38` son métodos que se expondrán a través del punto final SEP-38 [`GET /info`][sep38]. - -Los métodos especificados en las secciones `deposit` y `withdraw` son los que se expondrán a través del punto final SEP-6 [`GET /info`][sep-6]. Los métodos listados deben igualar los métodos definidos en la sección SEP-38 del archivo. - -También nota que los activos fiat, aquellos con el `schema: iso4217`, no necesitan los objetos de configuración `sep6_enabled`, `deposit` o `withdraw` especificados. De la misma manera, los activos Stellar, aquellos con `schema: stellar`, no necesitan los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods` especificados. - - - -```yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:USD - - id: iso4217:USD - significant_decimals: 2 - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Gestionando las Cuentas de Distribución - -Nota que el ejemplo anterior lista un atributo `distribution_account` para la entrada de USDC. Si se especifica, esta cuenta se proporcionará junto con un memo único y generado aleatoriamente por transacción a los clientes como la dirección a la que se enviarán los fondos para las transacciones de retirada de fondos. El memo de la transacción es cómo tú o la Anchor Platform igualarán los fondos recibidos con un registro de transacción en la base de datos de la Anchor Platform. - -Si no tienes tu propia cuenta Stellar y en su lugar utilizas a un tercero que te proporciona una cuenta Stellar y un memo para recibir fondos en tu nombre, como un intercambio o custodio, deberías omitir el campo `distribution_account` de tu archivo de configuración de activos. En cambio, necesitarás proporcionar la cuenta Stellar y el memo que te gustaría usar para recibir fondos a través de una solicitud al [`request_onchain_funds`][request-onchain-funds] de la Anchor Platform por cada transacción. - -Para configurar la Anchor Platform para esperar que la cuenta Stellar y el memo se proporcionen a través de la API en lugar de configurarse a través del archivo de activos, especifica la siguiente variable de entorno. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -Si utilizas un proveedor de billetera soportado por el servicio de custodia de la Anchor Platform, como Fireblocks, también puedes configurar la Anchor Platform para conectarse directamente a tu proveedor de billetera para obtener tus cuentas de distribución y memos. Si esto está configurado, la Anchor Platform también usará el proveedor de billetera para enviar fondos a los clientes. Consulta la sección de [servicios de custodia] para más información sobre cómo configurar esta función, pero primero deberás especificar un valor diferente para la variable de entorno mencionada anteriormente. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Habilitar Callbacks al Servidor del Negocio - -Los negocios necesitan recopilar y validar la información KYC de los clientes para los que están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC necesita ser recopilada y envían esa información a través de la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información personal identificable (PII). En cambio, reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. - -Además, los negocios deben proporcionar a los clientes una API de [Rates][get-rates-api] para verificar las tasas de cambio que están ofreciendo entre los activos on-chain y off-chain soportados por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso con la tasa que se está ofreciendo actualmente por parte del negocio por un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor de negocio para obtener tasas de cambio y cotizaciones y las devuelve a los clientes. - -Para habilitar estas solicitudes a tu servidor de negocio, primero necesitarás agregar tu servidor de negocio al archivo docker compose. Luego, para soportar solicitudes a tu servidor de negocio desde la Anchor Platform, necesitas habilitar callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes hechas a `/callbacks/` para que tu servidor pueda autenticar a la Anchor Platform antes de procesar las solicitudes. - -Consulta la [API KYC][platform-api-kyc] y la [API Rates][get-rates-api] para obtener detalles sobre los puntos finales que deben implementarse en tu servidor de negocio. - -### Configuración Adicional Opcional - -`more_info_url` es una URL opcional proporcionada por tu servidor de negocio para que las aplicaciones de billetera muestren información sobre transacciones iniciadas previamente. Esta URL se utiliza comúnmente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se mostrará sobre la transacción. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Los negocios pueden establecer un plazo para las acciones de los usuarios en las transacciones utilizando el campo `user_action_required_by`. Para ejemplos, consulta [JSON-RPC Methods][json-rpc-methods]. Además, el parámetro `initial_user_deadline_seconds` establece un tiempo predeterminado (en segundos) que un usuario tiene para actuar antes de que la transacción pase al estado `EXPIRED`. - - - -```bash -# dev.env -SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -## Probar con la Billetera Demo - -¡Las billeteras ahora deberían poder descubrir, autenticar y iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Tu entorno ahora debería verse algo como lo siguiente. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -Para probar esto, ve a la [Billetera Demo Stellar][stellar-demo-wallet]. - -Inicia una transacción de depósito haciendo lo siguiente: - -- Crea un nuevo par de claves -- Haz clic en el botón "Agregar Activo" y entra - - el código del activo Stellar en tu archivo `stellar.toml` - - tu dominio principal, `localhost:8080` -- Selecciona el desplegable y haz clic en "Depósito SEP-6", luego haz clic en "Iniciar" - -La billetera demo debería ser capaz de encontrar tu archivo `stellar.toml`, autenticarse usando el par de claves Stellar que acabas de crear, e iniciar una transacción. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/getting-started.mdx deleted file mode 100644 index ff82dd8ce4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/getting-started.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Comenzar -sidebar_position: 10 ---- - -Esta guía te llevará a través de la configuración e integración con la Anchor Platform con el propósito de crear un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiradas programáticos. - -Al aprovechar el apoyo de la Anchor Platform para SEP-6, las empresas ponen a disposición su propio servicio de entrada y salida como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar como billeteras e intercambios, ampliando su alcance y conectando con usuarios a través de las aplicaciones que ya utilizan. - -Antes de continuar con esta sección, asegúrate de que ya has [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-6: [SEP-1 (Archivo de Información de Stellar)][sep1-ap] y [SEP-10 (Autenticación de Stellar)][sep10-ap]. - -## La Experiencia Básica del Usuario - -La experiencia completa del cliente para un depósito o retirada utilizando SEP-6 es la siguiente: - -1. El cliente abre la aplicación de billetera SEP-6 de su elección -2. El cliente selecciona un activo para depositar y la billetera encuentra un anchor (los clientes también podrían elegir el anchor específico) -3. Una vez que la billetera se autentica con el anchor, el cliente comienza a ingresar su información KYC y la información de la transacción solicitada por el anchor -4. La billetera proporciona instrucciones, y el cliente deposita moneda fiduciaria real con el anchor (como una transferencia bancaria) -5. Una vez que la billetera recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor - -El cliente puede entonces utilizar el activo digital en la red Stellar para remesas, pagos, comercio, almacenamiento de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo que se vería algo así: - -1. El cliente abre su aplicación de billetera -2. El cliente selecciona el activo para la retirada y la billetera encuentra el anchor -3. Después de autenticarse con el anchor, el cliente puede ingresar su información de transacción y cualquier información adicional KYC que no se hubiera recolectado antes -4. Después de solicitar la aprobación del cliente, la billetera envía la cantidad especificada del saldo de activos del cliente a la cuenta de distribución del anchor en Stellar -5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados mediante cualquier método soportado por el anchor (como una transferencia bancaria) - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: ../../admin-guide/getting-started.mdx -[sep1-ap]: ../sep1/README.mdx -[sep10-ap]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/integration.mdx deleted file mode 100644 index 3a2b6907f0..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: Integración -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -Uno de los puntos principales de interacción con la Anchor Platform es notificar a la Plataforma sobre eventos relacionados con las transacciones. - -En general, querrás proporcionar actualizaciones para los siguientes eventos. - -- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción -- Tu negocio actualizó los montos de entrada/salida/tarifa para una transacción -- Tu negocio está listo para recibir fondos del usuario -- Tu negocio ha recibido fondos del usuario -- Tu negocio ha enviado fondos al usuario -- Tu negocio ha procesado un reembolso para la transacción del usuario -- Tu negocio experimentó un error inesperado - -Esto se hace realizando solicitudes JSON-RPC al punto final de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario realizar una solicitud JSON-RPC correspondiente y pasar los datos requeridos por el método RPC. - -La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API será llamada cada vez que un usuario o el anchor tome alguna acción que avance el estado de la transacción en el flujo. - -La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. - -Puedes descubrir más sobre el flujo y los estados de las transacciones en el [documento del protocolo SEP-6][sep-6]. - -## Devoluciones de llamada - -La Anchor Platform se basa en el servidor de negocio para proporcionar y almacenar información sobre clientes y cotizaciones. - -### Información del Cliente - -La Anchor Platform no almacena información de clientes. En su lugar, reenvía todas las solicitudes de clientes SEP-12 al servidor de negocio. El servidor de negocio es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor de negocio debe implementar las [API de clientes][customer-callback] para manejar actualizaciones KYC. - -### Cotizaciones y Tarifas - -Para permitir el intercambio de activos no equivalentes, la Anchor Platform expone una API conforme a SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotización se utiliza para proporcionar al usuario el monto esperado del activo que recibirá a cambio del activo que está enviando. La API de cotización también se utiliza para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. - -## Asegurando la API de la Plataforma - - - -### Usando la Clave de API - - - -### Usando JWT - - - -## Realizando Solicitudes JSON-RPC - - - -### Solicitud JSON-RPC - - - -### Respuesta JSON-RPC - - - -### Códigos de Error - - - -## Actualizando Depósito (Intercambio) Transacción a Través de JSON-RPC - -El diagrama de flujo de depósito SEP-6 define las secuencias/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de intercambio de depósito es el mismo que el flujo de depósito, excepto que los montos no necesitarán ser recalculados al solicitar fondos fuera de la cadena, si el usuario ha proporcionado una cotización firme del anchor. - -[![flujo de depósito sep6](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y pueden ser omitidos. - -Los estados en rojo significan que la transacción está en un estado de error o ha expirado. - -::: - -### Verificando Información KYC - -Aunque la Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recopilar esta información antes de que el cliente realice una transferencia. Al escuchar eventos de transacción creados, o al consultar el punto final [`GET /transactions`][get-transactions], puedes determinar si una transacción requiere que el cliente actualice su información. Los campos requeridos de SEP-9 pueden ser comunicados al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. - -Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` nuevamente para actualizar el estado de la transacción. Adicionalmente, llama a este método cada vez que el estado SEP-12 de un cliente cambie, como cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente solicite al usuario que actualice su información. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Listo para Recibir Fondos - -Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` es el monto que el usuario tiene que enviar al negocio. -- `amount_out` es el monto que el usuario recibirá. -- `fee_details` es el monto total de tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, está configurado a USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. -- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y el número de cuenta `123456789`. - -La información sobre los montos (entrada/salida/tarifa) es requerida si deseas mover la transacción al estado `pending_user_transfer_start`. - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -Para depósitos de intercambio con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -### Fondos Recibidos - -Si se recibieron fondos fuera de la cadena, querrás proporcionar información de transacción actualizada. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` es la fecha y hora de la recepción de los fondos. -- `external_transaction_id` es el ID de la transacción en la red externa. - -Los campos de monto son opcionales. Si se omiten, se usarán los valores previos a esta solicitud. - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Esperando Fondos del Usuario - -En el mundo real, el proceso de confirmación de la transferencia puede tardar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero los fondos en sí no han sido recibidos todavía. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Enviando Fondos Onchain - -A continuación, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar ha sido enviada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar a un usuario que los fondos han sido enviados con éxito. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` es el id de transacción en la red Stellar de la transferencia. - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -Después de esta solicitud JSON-RPC, la transacción será transferida al estado `completed`. - -### Enviando Pago a Través del Servicio de Custodia - -La Anchor Platform proporciona la posibilidad de enviar un pago a través de servicios de custodia, como [Fireblocks](../custody-services/fireblocks/README.mdx). Para hacer un pago a través de un servicio de custodia, realiza la siguiente solicitud JSON-RPC. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -Después del procesamiento exitoso del pago en un servicio de custodia, la Anchor Platform automáticamente realizará la solicitud JSON-RPC `notify_onchain_funds_sent` y el estado de la transacción cambiará a `completed`. - -:::caution - -Una cuenta de usuario puede no estar lista para recibir fondos. Puedes verificar que la cuenta ha establecido una [trustline](/docs/learn/glossary#trustline). De lo contrario, puedes establecer el estado de la transacción a `pending_trust` para indicar que el anchor está esperando que el usuario establezca la trustline. - -Si la integración de custodia está habilitada, la Anchor Platform hará esta validación automáticamente por ti. - -::: - -### Confianza Pendiente - -Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos formas en las que la transacción puede moverse al estado `pending_trust`. La primera es el procesamiento de un pago a través del servicio de custodia en caso de que detecte que la trustline no está configurada. La segunda es cuando el negocio mismo detecta que falta la trustline y quiere notificar al usuario que debe ser configurada. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -El pago a través del servicio de custodia verifica periódicamente si la trustline fue configurada. Si lo fue, automáticamente enviará un pago a un servicio de custodia y cambiará el estado de la transacción a `pending_stellar`. - -::: - -### Establecer Confianza - -Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- El `flag success` que define si la trustline fue o no configurada por el usuario - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Dependiendo del `flag success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue establecida, o a `pending_anchor` si no lo fue. - -::: - -### Reembolso Enviado - -A veces, los fondos necesitan ser devueltos al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer un conjunto de reembolsos parciales de vuelta a la `source_account` utilizando el `refund_memo` y el `refund_memo_type` asociados con la transacción si están presentes. También, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma de vuelta al usuario y enviar el resto como fondos onchain. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -Si la suma de reembolsos es menor que `amount_in`, el estado de la transacción se establecerá a `pending_anchor`. Solo si la suma de reembolsos es igual a `amount_in`, el estado de la transacción se establecerá a `refunded`. - -::: - -### Reembolso Pendiente - -Esto es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso en que un reembolso se ha enviado a la red externa pero no está confirmado todavía. El estado de la transacción se establece a `pending_external`. Este es el estado que se establecerá cuando se espera a que Bitcoin u otra red de criptomonedas externas complete una transacción, o cuando se está esperando una transferencia bancaria. - -### Error de Transacción - -Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo de mensaje para describir los detalles del error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -Si un usuario ha realizado una transferencia, debes hacer una recuperación de transacción, y luego puedes intentar procesar la transacción nuevamente o iniciar un reembolso. - -::: - -### Transacción Expirada - -Tu negocio puede querer manejar transacciones abandonadas expirando aquellas que han permanecido inactivas durante un cierto período. Para lograr esto, verifica el estado de la transacción utilizando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como expirar la transacción o iniciar un reembolso automático, basado en el estado actual de la transacción. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -Para ejecutar esto, necesitas correr: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -Este método JSON-RPC no se puede usar después de que el usuario haya realizado una transferencia. - -::: - -### Recuperación de Transacción - -El estado de la transacción puede cambiar de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o proceder con el procesamiento de la transacción. Para recuperar una transacción, haz la siguiente solicitud JSON-RPC. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Actualizar la transacción de retiro (intercambio) a través de JSON-RPC - -El diagrama de flujo de retiro SEP-6 define la secuencia/reglas de la transición del estado de la transacción. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define estructuras de datos que espera en la solicitud. Si la solicitud no contiene un atributo requerido, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. - -El flujo de intercambio de retiros es el mismo que el flujo de retiros, excepto que los montos no necesitarán ser recalculados al solicitar fondos en cadena, si el usuario ha proporcionado una cotización firme del ancla. - -[![diagrama de flujo de retiro sep6](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Los estados en verde son obligatorios y definen el camino más corto. - -Los estados en amarillo son opcionales y se pueden omitir. - -Los estados en rojo significan que la transacción está en un estado de error o ha expirado. - -::: - -Una vez que el flujo de retiro ha terminado, implementar el retiro es sencillo. Algunas partes del flujo son similares y pueden ser reutilizadas. - -El punto de partida tanto para el retiro como para el depósito es el mismo. - -### Listo para recibir fondos - -De manera similar al depósito, el paso después de haber recogido el KYC es notificar al usuario que el ancla está lista para recibir fondos. Sin embargo, dado que tu servicio estará recibiendo transacciones a través de la red Stellar, la solicitud RPC será diferente. El ancla debe usar el RPC `request_onchain_funds` para proporcionar los montos finales al usuario. Para hacerlo, haz la siguiente solicitud JSON-RPC. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` es el monto que el usuario debe enviar al negocio. -- `amount_out` es el monto que el usuario recibirá. -- `fee_details` es el monto total de las tarifas cobradas por el negocio. -- `asset` es parte del campo `amount_x` y está en un formato SEP-38. En este ejemplo, está configurado como USD, asumiendo que el usuario hizo una transferencia bancaria al sistema utilizando USD. -- `memo` es la nota que el usuario debería usar al enviar sus fondos en cadena al ancla. -- `memo_type` es el tipo de nota que el usuario debería usar al enviar sus fondos en cadena al ancla. -- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -Para retiros de intercambio con una cotización firme (la solicitud está asociada con un `quote_id`), no se deben proporcionar montos. - -::: - -:::tip - -Establecer `memo`, `memo_type` y `destination_account` es opcional. - -Si se permite la integración con un custodio de terceros, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. Además, puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones de Stellar con las transacciones SEP. - -Si tu negocio gestiona los activos, la Anchor Platform puede generar memos para ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece el `memo` y el `memo_type` automáticamente (solo si no se incluyen en la solicitud). - -::: - -:::note - -La cuenta de Stellar que se utilizará para recibir fondos debe estar configurada. - -::: - -### Fondos recibidos - -Si se recibieron fondos en cadena, necesitas proporcionar montos y cambiar el estado de la transacción a `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -Este método será llamado automáticamente por el servidor de custodia si la integración de custodia está habilitada. - -::: - -### Monto actualizado - -Si se recibieron fondos en cadena, pero por alguna razón el `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Solo `amount_out` y `fee_details` se pueden actualizar utilizando esta solicitud JSON-RPC, y no necesitas especificar los activos de los montos. - -::: - -### Fondos fuera de la cadena disponibles - -Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos fuera de la cadena, y si está listo para que el usuario / destinatario lo recoja. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Fondos fuera de la cadena pendientes - -Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago se ha enviado a una red externa, pero aún no ha sido confirmado. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Fondos fuera de la cadena enviados - -Para completar la transacción y cambiar su estado a `completed`, necesitas realizar la solicitud JSON-RPC `notify_offchain_funds_sent`. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Reembolso enviado - -La lógica del reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. - -### Enviar reembolso a través del servicio de custodia - -La integración con un servicio de custodia te permite hacer un reembolso a través de un servicio de custodia, como Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -Para ejecutar esto, necesitas ejecutar: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -De manera similar al flujo de depósito, puedes hacer un reembolso total o un conjunto de reembolsos parciales. La transacción permanecerá en estado `pending_anchor` hasta que la suma de los reembolsos sea menor que `amount_in`. Si la suma de los reembolsos es igual a `amount_in`, la Anchor Platform cambiará automáticamente el estado de la transacción a `refunded`. - -::: - -### Error de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error de transacción](#transaction-error) del flujo de depósito. - -### Transacción expirada - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción expirada](#expired-transaction) del flujo de depósito. - -### Recuperación de transacción - -Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. - -## Seguimiento de transacciones Stellar - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[manejando-eventos]: ../events/README.mdx -[cliente-callback]: ../../api-reference/callbacks/README.mdx -[tasa-callback]: ../../api-reference/callbacks/README.mdx -[obtener-transacciones]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/README.mdx deleted file mode 100644 index b8868bcf2a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Referencia de API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Ver toda la información de la API de Anchor Platform. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/README.mdx deleted file mode 100644 index eb5caa67f8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Servidor de Callbacks -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -La Anchor Platform proporciona varias funcionalidades de callbacks para tu servidor de negocio. - - - -| | | -| ------ | --------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 3b0cbc87dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request for this endpoint is identical to the -[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) -request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 8b11caa759..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request and response for this endpoint is identical to the -[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) -request and response defined in SEP-12. - -This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the -fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. -If the server still needs more info, or the server needs updated information, it should return the fields required. - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 64639632c5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must -use exchange rates that are communicated to the client application requesting the transaction. When clients make -requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or -[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the -client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter -for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, -either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either -`sell_asset` or `buy_asset` is a Stellar asset. - - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status -code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0aeff4fccd..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Receive a JSON object representing an event. - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 85959337ff..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) -request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors -must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will -be forwarded to the anchor as with the `application/json` content type. Requests containing -binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/versions.json deleted file mode 100644 index 23f5ac539d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/README.mdx deleted file mode 100644 index 88873b560c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Servidor de Custodia -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -El Servidor de Custodia proporciona un conjunto de puntos de conexión para interactuar con los servicios de custodia, como Fireblocks. - - - -| | | -| ------------------------------------------------------------------ | - | -| [Transacción de Custodia](./create-custody-transaction.api.mdx) | | -| [Pago](./send-payment.api.mdx) | | -| [Reembolso](./send-refund.api.mdx) | | -| [Generación de dirección única](./generate-unique-address.api.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/create-custody-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index ec0c146793..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server creates custody transaction record in DB. - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/generate-unique-address.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 900893c971..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 68a7e02b9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to send payment. - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-refund.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 08eb1ac79f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/versions.json deleted file mode 100644 index 26d39ec7ce..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/README.mdx deleted file mode 100644 index ebda808b42..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Servidor de Plataforma -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. - - - -| | | -| ------------------------------------- | - | -| [API REST](./transactions/README.mdx) | | -| [API JSON-RPC](./rpc/README.mdx) | | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/README.mdx deleted file mode 100644 index defc48aa42..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API JSON-RPC -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interactúa con tu instancia de Anchor Platform a través del uso de solicitudes RPC ligeras y fáciles de usar. - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index c3ff0ede70..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,10163 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.8.4" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "get_transaction", - "summary": "Retrieve a transaction.", - "description": "Retrieve a transaction by its ID.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionExample", - "description": "Example request to the `get_transaction` method.", - "params": [ - { - "name": "id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - } - ], - "result": { - "name": "platformTransactionResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - } - } - ] - }, - { - "name": "get_transactions", - "summary": "Retrieve a list of transactions.", - "description": "Query a list of transactions by SEP, transaction status or other criteria.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "sep", - "summary": "Sep of the transaction.", - "description": "Sep of the transaction belongs to", - "required": true, - "schema": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - } - }, - { - "name": "order_by", - "summary": "The field that transactions will be ordered by .", - "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", - "required": false, - "schema": { - "title": "order_by", - "description": "The order by string used to sort the results.", - "type": "string", - "enum": [ - "created_at", - "transfer_received_at", - "user_action_required_by" - ], - "default": "created_at" - } - }, - { - "name": "statuses", - "summary": "The statuses of transactions.", - "description": "The statuses of the transaction to filter by.", - "required": false, - "schema": { - "title": "status", - "description": "The statuses of the transaction to filter by.", - "type": "array", - "enum": [ - "incomplete", - "completed", - "refunded", - "expired", - "error", - "pending_stellar", - "pending_external", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "pending_anchor", - "pending_trust", - "pending_user", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update" - ] - } - }, - { - "name": "page_size", - "summary": "The number of transactions to return.", - "description": "The number of records to return in each page.", - "required": false, - "schema": { - "title": "page_size", - "description": "The number of records to return in each page.", - "type": "integer", - "default": 20 - } - }, - { - "name": "page_number", - "summary": "The page number of transactions to return.", - "description": "Page number to use for continuous search. Page count beings at 0.", - "required": false, - "schema": { - "title": "page_number", - "description": "Page number to use for continuous search. Page count beings at 0.", - "type": "integer", - "default": 0 - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionsExample", - "description": "Example request to the `get_transactions` method.", - "params": [ - { - "name": "sep", - "value": "31" - }, - { - "name": "order_by", - "value": "created_at" - }, - { - "name": "statuses", - "value": [ - "completed" - ] - } - ], - "result": { - "name": "platformTransactionResponses", - "value": { - "records": [ - { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - ] - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and fee_details values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index 6985eef1a5..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Métodos JSON-RPC -order: 20 -sidebar_label: Métodos ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Esta sección lista los métodos de la API JSON-RPC de Anchor Platform que deben ser llamados por los clientes de Stellar para actualizar el estado de la transacción. - -La especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| - | ---------------------------------------------------------------------------- | -| | [do_stellar_payment](./do_stellar_payment.mdx) | -| | [do_stellar_refund](./do_stellar_refund.mdx) | -| | [get_transaction](./get_transaction.mdx) | -| | [get_transactions](./get_transactions.mdx) | -| | [notify_amounts_updated](./notify_amounts_updated.mdx) | -| | [notify_customer_info_updated](./notify_customer_info_updated.mdx) | -| | [notify_interactive_flow_completed](./notify_interactive_flow_completed.mdx) | -| | [notify_offchain_funds_available](./notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](./notify_offchain_funds_pending.mdx) | -| | [notify_offchain_funds_received](./notify_offchain_funds_received.mdx) | -| | [notify_offchain_funds_sent](./notify_offchain_funds_sent.mdx) | -| | [notify_onchain_funds_received](./notify_onchain_funds_received.mdx) | -| | [notify_onchain_funds_sent](./notify_onchain_funds_sent.mdx) | -| | [notify_refund_pending](./notify_refund_pending.mdx) | -| | [notify_refund_sent](./notify_refund_sent.mdx) | -| | [notify_transaction_error](./notify_transaction_error.mdx) | -| | [notify_transaction_expired](./notify_transaction_expired.mdx) | -| | [notify_transaction_on_hold](./notify_transaction_on_hold.mdx) | -| | [notify_transaction_recovery](./notify_transaction_recovery.mdx) | -| | [notify_trust_set](./notify_trust_set.mdx) | -| | [request_offchain_funds](./request_offchain_funds.mdx) | -| | [request_onchain_funds](./request_onchain_funds.mdx) | -| | [request_trust](./request_trust.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 42f491e60f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_pago_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_pago_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 901173359a..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: realizar_reembolso_stellar -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "realizar_reembolso_stellar")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx deleted file mode 100644 index 9682b1bd97..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transaction.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: obtener_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "obtener_transacción")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx deleted file mode 100644 index 26dab85735..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/get_transactions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: obtener_transacciones -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "obtener_transacciones")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index c91018830f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_montos_actualizados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_montos_actualizados")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index 4b16733a4b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_actualizacion_informacion_cliente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_actualizacion_informacion_cliente", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 9ec3547cc8..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_interactivo_flujo_completado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_interactivo_flujo_completado", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 431e4ece01..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_disponibles -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index 07e0511109..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_cadena_pendientes -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_cadena_pendientes", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 291add5e3f..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_fuera_de_la_cadena_recibidos -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_fuera_de_la_cadena_recibidos", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 42a5a4d701..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Notificar fondos fuera de la cadena enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 423b429218..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_recibidos_en_chain -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_recibidos_en_chain", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index c80f0df8e1..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_fondos_en_cadena_enviados -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_fondos_en_cadena_enviados", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index 0d29e75064..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_pendiente -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_pendiente")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index 78e56bd450..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notificar_reembolso_enviado -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_reembolso_enviado")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index d7bc13aaf4..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_error_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_error_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 119e4aece7..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_expirada -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_expirada", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index 430ed01d9c..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_transacción_en_espera -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_transacción_en_espera", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index 000198f5dc..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notificar_recuperación_transacción -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_recuperación_transacción", - )[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index dc679b3417..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notificar_confiar_conjunto -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notificar_confianza_conjunto")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 54976707c3..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_fuera_de_la_cadena -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index f6f818960b..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: solicitar_fondos_onchain -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "solicitar_fondos_onchain")[0] - } -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 062418aedf..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: solicitar_confianza -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index 524f97de9d..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Resumen -sidebar_position: 10 ---- - -JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y ligero. - -Es simple y fácil de usar, ya que utiliza un único punto de conexión HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es independiente del transporte en el sentido de que los conceptos se pueden utilizar dentro del mismo proceso, a través de sockets, sobre http, o en muchos entornos de paso de mensajes diversos. Utiliza [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. - -:::note - -Todos los nombres de los miembros intercambiados entre el Cliente y el Servidor que se consideren para una coincidencia de cualquier tipo deben considerarse sensibles a mayúsculas y minúsculas. - -::: - -Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 923feca205..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transacciones -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando, y toda la información necesaria proporcionada por una parte externa (como una billetera o un anchor). - -No debe confundirse con las [transacciones](/docs/learn/glossary#transaction) stellar. - - - -| | | -| ------- | -------------------------------------------- | -| OBTENER | [/transactions/:id](get-transaction.api.mdx) | -| OBTENER | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 3b8158bd32..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index aaefea43a9..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: eJztXVtv47YS/isEX7oLKEo2G/TBb+lpehAg3Qab7dNu4NDS2GIjkSpJ5dLA//1ghpQt2bJjp4smPeDLxqZIznCu5Hxe8Yk7MbN89JV/MUJZkTmpleXXCX84sFDTk6uzy4MfeUJ/j0/Ch48fsJOuwQgccp7zEZ+B682S8BxsZmSNX/mIn5alvrfMafZnA+aRldI6pqfMdQaxqTYsBysN5Ozq7DJlXwppmagls01da+Msq8VMKiKbMKFyJt0PltXaWjkpgb3DJgOZripQOeTvkWAlboFVTelkXQIz8GcD1nVY6bKAJIGVwjqkBExaZkBkBeTsvgDFXAFMNdUEDDIPJVSgHPZxjVGQs8kjdQGV11oqh+NtJcoSDHOFUKw2+k7mkLMbnH5s5V9wk/KE18KIChwYlPoTlygy4o4nXIkK+IhbqHnCkX2UDx8500DCbVZAJfjoibvHmro5I9WMJxxUU6EKUX2kOlTbfFUvF1rfNnVfDRMotZpJNUMZOVQBKoPPk2HGtMnBjCfY8jw3mQHhIB8LxxNOVKdgxgYykHdtc2PBjD0z43a9OP81Mj8VTen4qDvR2qKuasjkVIJlUwlljqJ3/SXey7JkE2DEO+ktZZ+0g8T3tZBplQvzyKw2pMXOaCZzJhUTNgOVo5TuRNlA+k2dp5AGM5EVWCeq2tv0MdOGVdpAnwlpmcxBOZmJEgnD44IvJOvNSebPSH4nsQubBZfsSxHbt4iPCPQks/ACL1lpmWrKMmGiLFcl7Ap65sWzWBn6VsIMzITJS7AW/chqZNdTY+8+/X5xccUuTq++vE+/qV+0YfAgqrpEFoLBkIBZJR6Z0o7kFVjOSd5WV31RI0GLEUDNmFROs5sh07thE8AeyHXKzpGvZGhRWh0sF2ZXdeZDUIgHU2lwuVON4c8rdIuklmazWefWCddYsENqF8YI7CodVHbIHPp6vmzDpp+zXQ9KcJXJjilJlWnUhgOe8PZjTqFp2mDQxb4PNQWphIMxGk209r4ytg7KUnRb4MGBUaLsNFEAWGjIOmHcxqcdZtoOQmVFj6gzjV2dASWqx5Uwt0ChSOsxRerwuRRm1p3TYj7pzhnspk9mIbCxVFM9bupc9DjLGut0Bab3+DrhTroSFXVFirg6uzwtSz5fc8xfZIkpYj1pLs2fTIB8KtgJGTJ6SZt6EjalacgXLMulFZMScvYuRAU2gULcSW3eb7TBRe4aMkKpHMxILoswc3y0HmPkX4BsCmalmqENgjBZQVk3Zb82lty61lY6eQeb3YFY8Rl5R2bWebnETB+yutOssUBCzbRyUjW6sYG5lFHPTDfK+VBhmXDsKOXzazR/W2uFnjl64sdHR/inT6ezQWJT3ag8JQ9SDpTD3qKuS5nR5ubwD4tDnjor0gp+m9LuIKxNT/6AjMza4F7MSU8atz8mtzuEhcUEy03FVy7Ra/1e41Yq+kKW5D+YkHKvV6nKfD3ezP1EW/cmuCMhOlt65UB2QEqkTwfwkBVCkYNi9MyNuKcAsvyy7IIUwhJeFhHJGGgj/IohcTByvMGIORTMfkRL8IJ/TgG4+67AFTqnTQaSxX9y9MugfNxLtXpmejrNCiEVQzlT1uSiQv8cw0MNGWrhGXv33XnChbUwYNjh+ZBx+xHrT+ZLGZz60Uu2pHpjDOnGvRWOpgDjHJyQ5bNRymlH7rGBI/94H4bQEFcp7xU3KR+1Ul3nyKerIYY2C6/nGttE+AvAz52+87VnfmXzhP/ZaAfjTcF6Gd8HHHWqTYVPOIaeA9yq4hgfifYbs4iQe40aPCzuzueGM+XOE1RgrZgN69CH+UETGfKU8SItvBHHC2xNAd4KR7V4pMrKPt6404ZE5uNNmajN5st8vMjD10OO+tqx8q2wEipqezpk6wN7DJr3Atvn4HQUuEhj49727O/sf3tVKlB3UOqa9kutWe60/x3a3Jz/TFXPAvoVJV9TufLrYArcvTa3qY87ld5131TpF0y+0R82UMBue5BhV4VuypxOcwYsYFF06mfC4pF2vtzS8T8HDyj2QtgClZaT93U0spu1DPFPVaNVvu8F1m9n0jqqBG6R1sIQdhJWl0Y7MqFDpZAKD99UY1kTol+K1Cp9aRxcs+YwiVd0wq1uTAZjkWUhPuRgXSiqd1o37WT2t/RAf1W0nzqi7bG4m3iDGT43+dKuQk8SiCvG7ddePbRtnK+JaSemQudQR8xhIt26SXXXPST6F1DKDOTPkXpL+asfyQO3nfIIDXpOAbuKb75M5P0S3fAOYTjgvuVgiYAERcvO4ftXqPQX5HGRase7ZZLzaadSSOAPkbcLxug4jiURP20fPlsh968UV1ZKDEW5roQcOngtemw807XFmsHwvL50qnIQuiKVdBLz3LoELJtoV1C7r0UHoMFXodNvam0HHErWz7IQpHqe/2CZMMB8Nxs4IoBq+oiQ5gEyaomuh4HZVUDATql+ZBM2aRzJPTz/TOx1eqTflId0BHX5cMxaWREAxm5kfhOgpaXF2WY6lRmKHMtA06YsH5d84ah2jtZOJo2VCqz9gf0ksltQ+QrZNc4D8RBCbmiJN2hHgRm7Yv8r8/3IQoXw+OTlE+50ghkyH5JZcJqFJDo7GlcY3cyKIHCfC3ZNNWfSFWScS+drM4827NfmASGH0CDy3ARAD/trdeBLc6go9/iSzawvv7aqpj3TcoUEmwlmC2GWTCQIUBq/yes/QQ9a6CPlA/nnPPfRK+A60W+i30S/2dFv5u0RTUfHiY4THWd3x1m2ds4/HjTb8PBCWhdQtdfDgldRtk1VhO+PGR+f7AkadxDi74cFH5/E38cMo73HJ/vAvdIuf0kmynvxaBlUtXvcJOgI8UaIN0K8EeKNEG+EeCPEGyHeCPFGiDdCvBHijRDvG8tfEeJ9RYj3u0K6ybqcIsQbId5YcY8V939jxT1CvNFvot9EiDc6TnSc14V4ESnbjvESlvZ6IO/3B2/DO0ieA29Dhv6OeO3HD6+I1/7DLw/4+OG7IrAroosIbERgIwIbEdiIwEYENiKwEYGNCGxEYCMCGxHYiMC+sfwVEdg3g8DKiMC+NgJ77it+4f16lANaIdhQt12ireTu7fz0BkX/dlYsA4YkuSiBfvU10Ot3hXO1HR0eho1Sqs3ssDba6UyXhxbqgw/H75NvitTvGW0NIOQrL/5+CZsqsSn7DUum99LCWhG4XyBth0WwONbuY+0+gsXRb6LfRLA4Ok50nH+L42wCixHU2w4WY49rf+g7GXr99E8iZ599GXGf905vrwB7PHS4CDx8TO0ehP3ozhHhjBraRZysL6L7Dm308/3fo/1K6wkHZGV93fTrE7+FRz5q71pJONna1jtX8C3j/uXI/sKVUGThI364gm1bMHftXSKNKfmIt4eTuhQOq18Hvksarlbw/yU4zXRF7zLH0xGuFifxcv+YHqVHfLmwyzAPu6J5Bl2opcU8LQKY8eTlywQMESqtQLmUnbtOOCq0DVUWwWoj74SD9jBKYSz0DDc/iCyDAPxPja7I8c6JBLhwgUwgDwpfdG97AZriObisoJk9zuZ91+Gn1QtqcNSMSWfZ6eW5D5mlzEBZWMKP/LTGC2PYMclrKf3R4eH9/X0q6CkdDsNQe3hx/p+zT1dnB8fpUVq4yr/6v9bWVUJ1Jv4Mzki4AybYRbg+Z9udO09Ln4jX72y/fid4NRYu0EOkIjTTELrtXewr77nYdcLRTLH96WkiLPxuyvkcm/39BOh47c0KfDQVpYUt2nn3OcSQ92yP+3g2sO3Div9BT4gpnH5FtDs//2/352yVVOf6or8trnhfzqvdl/O8jl+u4H/63pXtnr28AOil9rrn3Stb2eneBfNCfv7+/SvPc7i4ImbJ4zV+MRKZ5KOviH8WIKhCuticnWYZ1K4zam1r2duT/ffsC5/P/weQ8/fV -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - - - - - - - - - - - - - - - diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/versions.json b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/versions.json deleted file mode 100644 index 15ec16df99..0000000000 --- a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/SEP24-state-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-1.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-2.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-deposit-flow-diagram.png deleted file mode 100644 index 6a45a3e108..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep31-transition-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep31-transition-diagram.png deleted file mode 100644 index a04c0a28ea..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-deposit-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-deposit-flow-diagram.png deleted file mode 100644 index fa947373ae..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-deposit-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-withdrawal-flow-diagram.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_job.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png b/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/i18n/es/docusaurus-plugin-content-docs-ap/version-3.1/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/advanced-configration.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/advanced-configration.mdx new file mode 100644 index 0000000000..31f5954bf9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/advanced-configration.mdx @@ -0,0 +1,236 @@ +--- +title: Configuración avanzada +description: Comprende cómo configurar el SDP para varios escenarios. Esto incluye multi-tenancy, testnet frente a mainnet, etc. +keywords: + - SDP + - configuration +sidebar_position: 45 +--- + +En esta guía, aprenderás sobre las opciones avanzadas de configuración para la Stellar Disbursement Platform (SDP). Estas configuraciones te permiten adaptar el SDP para cumplir con requisitos específicos, tales como multi-tenancy, selección de red y ajuste de rendimiento. + +## Configuración de Testnet a Mainnet + +Al provisionar una nueva instancia de SDP, esta se configura para operar en modo Mainnet o Testnet según las variables de entorno establecidas durante la configuración. La mayoría de los usuarios comenzará con Testnet para desarrollo y pruebas antes de pasar a Mainnet para uso en producción. + +:::caution + +Una instancia de SDP está diseñada para operar en Testnet o Mainnet. No se admite cambiar entre estas redes en una instancia existente y podría causar comportamientos inesperados. Si necesitas cambiar la red, se recomienda configurar una nueva instancia de SDP con la configuración deseada. + +::: + +Una vez validada tu configuración en Testnet, puedes desplegar una nueva instancia configurada para Mainnet estableciendo las variables de entorno apropiadas durante el proceso de provisión. + +### Variables de Entorno + +Al cambiar de Testnet a Mainnet, debes actualizar las siguientes variables de entorno para cada servicio para que apunten a los recursos de la red pública. + +#### Servicio Core SDP + +| Variable | Valor en Testnet | Valor en Mainnet | Descripción | +| :------------------- | :------------------------------------ | :----------------------------------------------- | :--------------------------------------------------------------------------- | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | La frase de paso para la red Stellar. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon. | +| `DISABLE_MFA` | x | `false` | Deshabilita la Autenticación Multifactor. **Debe ser `false` para Mainnet.** | + +#### Servicio de Envío de Transacciones (TSS) + +| Variable | Valor en Testnet | Valor en Mainnet | Descripción | +| :------------------- | :------------------------------------ | :----------------------------------------------- | :------------------------------------ | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | La frase de paso para la red Stellar. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon. | + +#### Tablero + +| Variable | Valor en Testnet | Valor en Mainnet | Descripción | +| :------------------- | :---------------------------------------- | :--------------------------------------- | :------------------------------------------------- | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon usado por el frontend. | +| `STELLAR_EXPERT_URL` | `https://stellar.expert/explorer/testnet` | `https://stellar.expert/explorer/public` | La URL para el explorador Stellar Expert. | + +### Consideraciones Críticas + +Antes de desplegar en Mainnet, debes cumplir con los siguientes requisitos críticos para asegurar que tu instancia funcione correctamente. + +**Debes** generar un nuevo par de claves seguro para tu Cuenta de Distribución en Mainnet. No reutilices claves de Testnet. + +- **Generar Claves**: Crea un nuevo par de claves y establece `DISTRIBUTION_PUBLIC_KEY` y `DISTRIBUTION_SEED`. +- **Generar Frase de Encriptación**: Debes generar nuevas frases de encriptación para las cuentas de distribución de tus tenants y cuentas de canal, configurando `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` y `CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE`. +- **Financiar la Cuenta**: La Cuenta de Distribución requiere un saldo inicial de XLM para funcionar. Es responsable de: + 1. **Crear Cuentas de Canal**: El sistema creará automáticamente `NUM_CHANNEL_ACCOUNTS` (por defecto: 2). + 2. **Inicializar Tenants**: Al provisionar un nuevo tenant, el sistema transfiere una cantidad inicial de XLM desde la Cuenta de Distribución a la Cuenta de Distribución del tenant. Esto se controla con `TENANT_XLM_BOOTSTRAP_AMOUNT` (por defecto: 5 XLM). + +### Métodos de Configuración + +Puedes configurar el SDP para Mainnet usando Helm Charts (para despliegues en Kubernetes) o Docker Compose (para despliegues locales o simples). + +#### Helm Charts + +Si despliegas mediante Helm, el chart proporciona un ajuste global que configura automáticamente los parámetros de red necesarios. + +En tu archivo `values.yaml`, establece `global.isPubnet` en `true`. Esto configurará automáticamente el `NETWORK_PASSPHRASE`, `HORIZON_URL` y `STELLAR_EXPERT_URL` correctos para todos los servicios. + +```yaml +global: + # Set to true for Mainnet + isPubnet: true +``` + +#### Docker Compose + +Actualiza tu archivo `.env` con los siguientes valores: + +```bash +# Network Configuration +NETWORK_TYPE="pubnet" +NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015" +HORIZON_URL="https://horizon.stellar.org" + +# Security +DISABLE_MFA=false + +# Distribution Account (Mainnet Keys) +DISTRIBUTION_PUBLIC_KEY="G..." +DISTRIBUTION_SEED="S..." + +# Encryption Passphrases +DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE="S..." +CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE="S..." +``` + +## Configuración de Single Tenant a Multi-Tenant + +La Stellar Disbursement Platform (SDP) soporta multi-tenancy, permitiendo que una sola instancia sirva a varias organizaciones (tenants). Cada tenant tiene sus propios datos aislados, usuarios y cuenta de distribución (fuente de fondos). + +### Configuración + +Para habilitar multi-tenancy, debes actualizar tu configuración para desactivar el modo single-tenant y asegurar que la Admin API sea accesible. + +1. **Desactivar modo Single Tenant**: Establece la variable de entorno `SINGLE_TENANT_MODE` en `false`. +2. **Exponer puerto Admin**: Asegúrate de que el puerto de la Admin API (por defecto `8003`) esté expuesto en el servicio sdp backend. + +### Enrutamiento e Ingreso + +El SDP identifica al tenant para cada solicitud utilizando uno de los siguientes métodos, en orden de precedencia: + +1. **Encabezado HTTP**: El encabezado `SDP-Tenant-Name`. +2. **Subdominio**: El prefijo del nombre del host (por ejemplo, `tenant1` en `tenant1.sdp.stellar.org`). + +#### Encabezado HTTP + +Puedes especificar explícitamente el tenant configurando el encabezado `SDP-Tenant-Name` en tus solicitudes HTTP. + +```bash +curl -H "SDP-Tenant-Name: tenant1" https://sdp.stellar.org/ ... +``` + +#### Enrutamiento por Subdominio + +En un entorno de producción, es común usar el enrutamiento por subdominio. Por ejemplo, `tenant1.sdp.stellar.org` y `tenant2.sdp.stellar.org` apuntarán a la misma instancia de SDP. + +#### Helm Charts + +Al desplegar mediante Helm, configuras el dominio comodín usando el valor `sdp.route.mtnDomain`. Esto crea una regla de Ingress que coincide con todos los subdominios. + +En tu `values.yaml`: + +```yaml +sdp: + route: + # The wildcard domain for multi-tenancy + mtnDomain: "*.sdp.stellar.org" +``` + +:::note + +Asegúrate de que tu proveedor DNS tenga un registro A comodín (por ejemplo, `*.sdp.stellar.org`) apuntando a la IP del Load Balancer de tu Ingress Controller. + +::: + +#### Docker Compose (Desarrollo Local) + +Para desarrollo local con Docker Compose debes mapear subdominios específicos de tenants a `127.0.0.1` en el archivo `/etc/hosts` de tu máquina (Para usuarios de Windows, el archivo se encuentra en `C:\Windows\System32\drivers\etc\hosts`). + +**Ejemplo de `/etc/hosts`:** + +```text +127.0.0.1 localhost +127.0.0.1 sdp.local # Default/Admin domain +127.0.0.1 tenant1.sdp.local # First tenant +127.0.0.1 tenant2.sdp.local # Second tenant +``` + +### Provisionamiento de Tenants + +En modo multi-tenant, provisionas nuevos tenants usando la Admin API (puerto `8003` por defecto). Cada tenant tendrá datos aislados. + +**Endpoint**: [POST /tenants](../api-reference/create-tenant.api.mdx) **Ejemplo de solicitud:** + +```bash +curl --location 'http://localhost:8003/tenants' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Basic ' \ +--data '{ + "name": "tenant1", + "organization_name": "Tenant One Organization", + "base_url": "https://tenant1.sdp-api.stellar.org", + "sdp_ui_base_url": "https://tenant1.sdp-dashboard.stellar.org", + "owner_email": "owner@tenant1.com", + "owner_first_name": "Jane", + "owner_last_name": "Doe", + "distribution_account_type": "DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT" +}' +``` + +#### Cuentas de Distribución Multi-Tenant + +Este es, por mucho, el campo más importante, pues determina la fuente de fondos (cuenta de distribución) para el tenant, así como cómo se almacena el secreto de esta cuenta de distribución. + +Esto se determina por el campo `distribution_account_type` en la llamada API mencionada anteriormente. Los valores posibles se describen a continuación: + +- `DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT` + +- **Plataforma**: Stellar + +- **Ubicación del almacenamiento del secreto**: Base de datos, encriptada con `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` + +- **Activos compatibles**: Cualquier activo Stellar + +- **Aislamiento de clave/secreto**: Segregado por tenant + +- **Adecuado para**: Multi-tenant y single-tenant + +- **¿Cómo se configura?**: La cuenta de distribución se genera aleatoriamente y se financia durante el proceso de provisión, y el secreto se encripta y almacena de forma segura en la base de datos. La cuenta se financia desde la cuenta HOST de distribución por un monto definido en `TENANT_XLM_BOOTSTRAP_AMOUNT`. + +- `DISTRIBUTION_ACCOUNT.CIRCLE.DB_VAULT` + +- **Plataforma**: [Circle](https://www.circle.com) + +- **Ubicación del almacenamiento del secreto**: Base de datos, encriptada con `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` + +- **Activos compatibles**: [USDC](https://www.circle.com/en/usdc)/[EURC](https://www.circle.com/en/eurc) + +- **Aislamiento de clave/secreto**: Segregado por tenant + +- **Adecuado para**: Multi-tenant y single-tenant + +- **¿Cómo se configura?**: La clave API de Circle es proporcionada por el propio tenant una vez que tiene acceso al tablero. El secreto se encripta y almacena de forma segura en la base de datos. + +- 🔴 `DISTRIBUTION_ACCOUNT.STELLAR.ENV` + +- **Plataforma**: Stellar + +- **Ubicación del almacenamiento del secreto**: Variable de entorno `DISTRIBUTION_SEED` + +- **Activos compatibles**: Cualquier activo Stellar + +- **Aislamiento de clave/secreto**: 🚨 Misma cuenta de distribución que el HOST + +- **Adecuado para**: Solo single-tenant + +- **¿Cómo se configura?**: El tenant usará la cuenta HOST **tal cual**. El host es responsable de crear la cuenta y configurarla con el secreto `DISTRIBUTION_SEED`. + +:::warning + +Una vez que se crea un tenant, no se puede cambiar el `distribution_account_type`. Si deseas usar un tipo diferente de cuenta de distribución, deberás crear un nuevo tenant. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/cli-manual.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/cli-manual.mdx new file mode 100644 index 0000000000..0431310060 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/cli-manual.mdx @@ -0,0 +1,655 @@ +--- +title: Manual de CLI +description: Guía para usar la CLI de Stellar Disbursement Platform +keywords: + - SDP + - CLI +sidebar_position: 50 +--- + +## Comando raíz + +El comando `stellar-disbursement-platform` es el punto de entrada principal para la aplicación. Proporciona varios subcomandos para administrar el servicio, la base de datos y otras utilidades. + +### Uso + +```bash +stellar-disbursement-platform [command] [flags] +``` + +:::tip + +Para todos los comandos siguientes, puedes usar la flag `--help` para obtener más información acerca del comando y sus opciones. Por ejemplo: + +```bash +stellar-disbursement-platform serve --help +``` + +::: + +## Flags globales + +Las siguientes flags están disponibles para todos los comandos: + +| Flag | Descripción | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | +| `--base-url` | La URL base del servidor backend de SDP. Por defecto es `http://localhost:8000`. | +| `--database-url` | URL de la base de datos Postgres. Por defecto es `postgres://localhost:5432/sdp?sslmode=disable`. | +| `--environment` | El entorno en el que la aplicación está ejecutándose. Ejemplo: `development`, `staging`, `production`. Por defecto es `development`. | +| `--log-level` | El nivel de log utilizado en este proyecto. Opciones: `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, o `PANIC`. Por defecto es `TRACE`. | +| `--network-passphrase` | La frase de contraseña de la red Stellar. Por defecto es `Test SDF Network ; September 2015`. | +| `--sdp-ui-base-url` | La URL base del servidor UI de SDP. Por defecto es `http://localhost:3000`. | +| `--sentry-dsn` | El DSN (clave cliente) del proyecto Sentry. Si no se provee, Sentry no será usado. | + +## Comando Serve + +El comando `serve` inicia el servidor backend de Stellar Disbursement Platform. Este servidor maneja las peticiones API, procesa desembolsos y administra operaciones de los tenants. + +### Uso + +```bash +stellar-disbursement-platform serve [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--admin-account` | ID de la cuenta admin. Para usarlo, añádelo al encabezado de la petición como 'Authorization', formateado como 'ADMIN_ACCOUNT:ADMIN_API_KEY' codificado en Base64. | +| `--admin-api-key` | Clave API para la cuenta admin. Para usarlo, añádelo al encabezado de la petición como 'Authorization', formateado como 'ADMIN_ACCOUNT:ADMIN_API_KEY' codificado en Base64. | +| `--admin-port` | Puerto donde el servidor tenant admin estará escuchando. Por defecto es `8003`. | +| `--aws-access-key-id` | El ID de la clave de acceso AWS. | +| `--aws-region` | La región de AWS. | +| `--aws-secret-access-key` | La clave secreta de acceso AWS. | +| `--aws-ses-sender-id` | La dirección de correo electrónico que AWS usará para enviar emails. Usa AWS SES. | +| `--aws-sns-sender-id` | El ID del remitente de la cuenta AWS que envía los mensajes SMS. Usa AWS SNS. | +| `--bridge-api-key` | Clave API de Bridge. Esto debe configurarse solo si la integración con Bridge está habilitada. | +| `--bridge-base-url` | URL base de Bridge. Esto debe configurarse solo si la integración con Bridge está habilitada. Por defecto es `https://api.bridge.xyz`. | +| `--captcha-type` | El tipo de CAPTCHA a usar. Opciones: `GOOGLE_RECAPTCHA_V2`, `GOOGLE_RECAPTCHA_V3`. Por defecto es `GOOGLE_RECAPTCHA_V2`. | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar usada para encriptar/desencriptar las claves privadas de las cuentas canal. Si no está configurada, por defecto tomará el valor de la opción `distribution-seed`. | +| `--circle-api-type` | El tipo de API de Circle. Opciones: `TRANSFERS`, `PAYOUTS`. Por defecto es `TRANSFERS`. | +| `--cors-allowed-origins` | URLs CORS que están permitidas para acceder a los endpoints, separadas por ",". | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Tiempo máximo inactivo en segundos antes de que se cierre una conexión. Por defecto es `10`. | +| `--db-conn-max-lifetime-seconds` | Tiempo máximo de vida en segundos para una sola conexión. Por defecto es `300`. | +| `--db-max-idle-conns` | Número máximo de conexiones inactivas a la base de datos que se mantienen por pool. Por defecto es `2`. | +| `--db-max-open-conns` | Número máximo de conexiones abiertas a la base de datos por pool. Por defecto es `20`. | +| `--disable-mfa` | Deshabilita la autenticación multifactor (MFA) por correo electrónico. | +| `--disable-recaptcha` | Deshabilita ReCAPTCHA para iniciar sesión y recuperar contraseña. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar usada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas canal. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas canal. | +| `--ec256-private-key` | Clave privada EC256 usada para firmar el token de autenticación. Esta clave EC debe ser al menos tan fuerte como prime256v1 (P-256). | +| `--email-sender-type` | Tipo de remitente de correo electrónico. Opciones: `DRY_RUN`, `TWILIO_EMAIL`, `AWS_EMAIL`. Por defecto es `DRY_RUN`. | +| `--enable-bridge-integration` | Habilita la integración con Bridge para Liquidity Sourcing. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--instance-name` | Nombre de la instancia SDP. Ejemplo: `SDP Testnet`. | +| `--max-base-fee` | La cuota base máxima para enviar una transacción Stellar. Por defecto es `10000`. | +| `--max-invitation-resend-attempts` | El número máximo de intentos para reenviar la invitación a las Carteras Receptoras. Por defecto es `3`. | +| `--metrics-port` | Puerto donde el servidor de métricas estará escuchando. Por defecto es `8002`. | +| `--metrics-type` | Tipo de monitor de métricas. Opciones: `PROMETHEUS`. Por defecto es `PROMETHEUS`. | +| `--port` | Puerto donde el servidor estará escuchando. Por defecto es `8000`. | +| `--recaptcha-site-key` | La clave de sitio de Google 'reCAPTCHA v2 - No soy un robot'. | +| `--recaptcha-site-secret-key` | La clave SECRETA de sitio de Google 'reCAPTCHA v2 - No soy un robot'. | +| `--recaptcha-v3-min-score` | Umbral mínimo de puntuación para reCAPTCHA v3 (de 0.0 a 1.0, donde 1.0 es probablemente una buena interacción). Solo se usa cuando captcha-type es GOOGLE_RECAPTCHA_V3. Por defecto es `0.5`. | +| `--reset-token-expiration-hours` | El tiempo de expiración en horas del Token de Restablecimiento. Por defecto es `24`. | +| `--scheduler-payment-job-seconds` | El intervalo en segundos para los trabajos de pagos que sincronizan transacciones entre SDP y TSS. Debe ser mayor que 5 segundos. Por defecto es `30`. | +| `--scheduler-receiver-invitation-job-seconds` | El intervalo en segundos para el trabajo de invitaciones a receptores que envía invitaciones a nuevos receptores. Debe ser mayor que 5 segundos. Por defecto es `30`. | +| `--sep10-client-attribution-required` | Si es verdadero, la autenticación SEP-10 requiere que client_domain sea provisto y validado. Si es falso, client_domain es opcional. Por defecto es `true`. | +| `--sep10-signing-private-key` | La clave privada de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. | +| `--sep10-signing-public-key` | La clave pública de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. | +| `--sep24-jwt-secret` | El secreto JWT usado para firmar el token JWT SEP-24. | +| `--single-tenant-mode` | Esta opción habilita la función de Modo de Tenant Único. En casos donde no se requiere multi-tenancy, esta opción omite la resolución del tenant resolviendo siempre al tenant por defecto configurado en la base de datos. | +| `--sms-sender-type` | Tipo de remitente SMS. Opciones: `DRY_RUN`, `TWILIO_SMS`, `TWILIO_WHATSAPP`, `AWS_SMS`. Por defecto es `DRY_RUN`. | +| `--tenant-xlm-bootstrap-amount` | La cantidad del activo nativo que será enviada a la cuenta de distribución del tenant desde la cuenta de distribución del host cuando se cree, si aplica. Por defecto es `5`. | +| `--twilio-account-sid` | El SID de la cuenta Twilio. | +| `--twilio-auth-token` | El token de autenticación de la cuenta Twilio. | +| `--twilio-sendgrid-api-key` | La clave API de la cuenta Twilio SendGrid. | +| `--twilio-sendgrid-sender-address` | La dirección de correo electrónico que Twilio SendGrid usará para enviar emails. | +| `--twilio-service-sid` | El ID de servicio usado dentro de Twilio para enviar mensajes. | +| `--twilio-whatsapp-from-number` | El número de WhatsApp Business usado para enviar mensajes (con prefijo whatsapp:). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | El SID de contenido de Twilio para la plantilla de invitación de receptor en WhatsApp (comienza con HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | El SID de contenido de Twilio para la plantilla OTP de receptor en WhatsApp (comienza con HX). | + +## Comando TSS + +El comando `tss` ejecuta el Servicio de Envío de Transacciones, responsable de enviar transacciones a la red Stellar. + +### Uso + +```bash +stellar-disbursement-platform tss [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar usada para encriptar/desencriptar las claves privadas de las cuentas canal. Si no está configurada, por defecto tomará el valor de la opción `distribution-seed`. | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Tiempo máximo inactivo en segundos antes de que se cierre una conexión. Por defecto es `10`. | +| `--db-conn-max-lifetime-seconds` | Tiempo máximo de vida en segundos para una sola conexión. Por defecto es `300`. | +| `--db-max-idle-conns` | Número máximo de conexiones inactivas a la base de datos que se mantienen por pool. Por defecto es `2`. | +| `--db-max-open-conns` | Número máximo de conexiones abiertas a la base de datos por pool. Por defecto es `20`. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar usada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas canal. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La cuota base máxima para enviar una transacción Stellar. Por defecto es `10000`. | +| `--num-channel-accounts` | Número de cuentas canal a utilizar para el envío de transacciones. Por defecto es `2`. | +| `--queue-polling-interval` | Intervalo de sondeo (segundos) para consultar la base de datos en busca de transacciones pendientes a procesar. Por defecto es `6`. | +| `--tss-metrics-port` | Puerto donde el servidor de métricas estará escuchando. Por defecto es `9002`. | +| `--tss-metrics-type` | Tipo de monitor de métricas. Opciones: `TSS_PROMETHEUS`. Por defecto es `TSS_PROMETHEUS`. | + +## Comando DB + +El comando `db` proporciona utilidades para la gestión y migraciones de bases de datos. Realiza dos funciones principales: + +1. Ejecutar migraciones de bases de datos para varios esquemas (admin, auth, sdp, tss). +2. Configurar activos y carteras basadas en la frase de contraseña de la red. + +### Uso + +```bash +stellar-disbursement-platform db [command] [flags] +``` + +### Subcomandos + +| Comando | Descripción | +| :------------------ | :------------------------------------------------------------------------ | +| `admin` | Migraciones admin para el módulo multi-tenant. | +| `auth` | Migraciones del esquema de autenticación. | +| `sdp` | Migraciones del esquema SDP. | +| `setup-for-network` | Configura activos y carteras basadas en la frase de contraseña de la red. | +| `tss` | Migraciones del esquema TSS. | + +--- + +### DB Admin + +El comando `db admin` gestiona las migraciones para el esquema admin, el cual maneja la configuración multi-tenancy. + +#### Uso + +```bash +stellar-disbursement-platform db admin [command] [flags] +``` + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB Admin Migrate + +El comando `migrate` permite ejecutar migraciones hacia arriba o hacia abajo. + +**Uso** + +```bash +stellar-disbursement-platform db admin migrate [command] [flags] +``` + +**Subcomandos** + +| Comando | Descripción | +| :------ | :-------------------------------------------------------- | +| `up` | Migra la base de datos hacia arriba [count] migraciones | +| `down` | Migra la base de datos hacia abajo [count] migraciones | + +**Ejemplos** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db admin migrate up + +# Apply the next 2 migrations +stellar-disbursement-platform db admin migrate up 2 + +# Revert the last migration +stellar-disbursement-platform db admin migrate down 1 +``` + +--- + +### DB Auth + +El comando `db auth` gestiona las migraciones para el esquema de autenticación. + +#### Uso + +```bash +stellar-disbursement-platform db auth [command] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` será ignorada si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB Auth Migrate + +Similar a `admin migrate`, este comando acepta los subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db auth migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db auth migrate up --all +``` + +--- + +### DB SDP + +El comando `db sdp` gestiona las migraciones para el esquema SDP (Stellar Disbursement Platform), que contiene las tablas de lógica de negocio principal. + +#### Uso + +```bash +stellar-disbursement-platform db sdp [command] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` será ignorada si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB SDP Migrate + +Similar a `admin migrate`, este comando acepta los subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db sdp migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db sdp migrate up --all +``` + +--- + +### DB TSS + +El comando `db tss` gestiona las migraciones para el esquema TSS (Transaction Submission Service). + +#### Uso + +```bash +stellar-disbursement-platform db tss [command] [flags] +``` + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB TSS Migrate + +Similar a `admin migrate`, este comando acepta los subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db tss migrate up +``` + +--- + +### DB Setup For Network + +El comando `db setup-for-network` configura los activos y carteras registrados en la base de datos basados en la frase de contraseña de la red. Inserta o actualiza las entradas de estas tablas según la Frase de Contraseña de Red configurada. + +#### Uso + +```bash +stellar-disbursement-platform db setup-for-network [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` será ignorada si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Ejemplo + +```bash +# Setup for a specific tenant +stellar-disbursement-platform db setup-for-network --tenant-id + +# Setup for all tenants +stellar-disbursement-platform db setup-for-network --all +``` + +## Comando Auth + +El comando `auth` ofrece ayudantes para la gestión de autenticación, específicamente para añadir usuarios al sistema. + +### Uso + +```bash +stellar-disbursement-platform auth [command] [flags] +``` + +### Subcomandos + +| Comando | Descripción | +| :--------- | :-------------------------- | +| `add-user` | Agregar usuario al sistema. | + +--- + +### Auth Add User + +El comando `auth add-user` agrega un nuevo usuario al sistema. El correo electrónico debe ser único y la contraseña debe tener al menos 12 caracteres. + +#### Uso + +```bash +stellar-disbursement-platform auth add-user [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--owner` | Establecer el usuario como Propietario (superusuario). Por defecto es "false". | +| `--password` | Establece la contraseña del usuario. Debe tener al menos 12 caracteres. Si se omite, el comando generará una aleatoria. | +| `--roles` | Establece los roles del usuario. Debe estar separado por comas. Ejemplo: `role1, role2`. Roles disponibles: `owner`, `financial_controller`, `developer`, `business`, `initiator`, `approver`. | +| `--tenant-id` | El ID del tenant al que se añadirá el usuario. | + +#### Ejemplo + +Para añadir un usuario nuevo con roles específicos y una contraseña: + +```bash +stellar-disbursement-platform auth add-user mary.jane@stellar.org Mary Jane \ +--roles approver,initiator --password \ +--tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Comando Channel Accounts + +El comando `channel-accounts` gestiona las cuentas de canal utilizadas para el envío de transacciones. + +### Uso + +```bash +stellar-disbursement-platform channel-accounts [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :-------------------------- | :------------------------------------------------------------------------------------------------- | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto `DRY_RUN`. | +| `--distribution-public-key` | La clave pública de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--tss-metrics-port` | Puerto donde el servidor de métricas pondrá a escuchar. Por defecto `9002`. | +| `--tss-metrics-type` | Tipo de monitor de métricas. Opciones: `TSS_PROMETHEUS`. Por defecto `TSS_PROMETHEUS`. | + +### Subcomandos + +| Comando | Descripción | +| :------- | :------------------------------------------------------------------ | +| `create` | Crear cuentas de canal. | +| `delete` | Eliminar una cuenta de canal específica. | +| `ensure` | Asegurar que existe un número específico de cuentas de canal. | +| `verify` | Verificar que las cuentas de canal existen en la red. | +| `view` | Listar las claves públicas de todas las cuentas de canal. | + +--- + +### Crear cuentas Channel Accounts + +El comando `create` crea cuentas de canal. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts create [count] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar/descifrar las claves privadas de las cuentas de canal. Si no se establece, se usará el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, utilizada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto `10000`. | + +--- + +### Eliminar cuentas Channel Accounts + +El comando `delete` elimina una cuenta de canal especificada del almacenamiento y de la red. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts delete [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar/descifrar las claves privadas de las cuentas de canal. Si no se establece, se usará el valor de la opción `distribution-seed`. | +| `--channel-account-id` | El ID de la cuenta de canal a eliminar. | +| `--delete-all-accounts` | Eliminar todas las cuentas de canal gestionadas en la base de datos y en la red. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, utilizada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto `10000`. | + +--- + +### Asegurar cuentas Channel Accounts + +El comando `ensure` asegura que exista el número especificado de cuentas de canal. Si no existen, las creará. Si existen más cuentas de canal de las especificadas, eliminará las cuentas en exceso. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts ensure [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar/descifrar las claves privadas de las cuentas de canal. Si no se establece, se usará el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto `10000`. | + +#### Ejemplo + +```bash +stellar-disbursement-platform channel-accounts ensure 5 +``` + +--- + +### Verificar cuentas Channel Accounts + +El comando `verify` verifica que todas las cuentas de canal en la base de datos existan en la red Stellar. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts verify [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar/descifrar las claves privadas de las cuentas de canal. Si no se establece, usará el valor de la opción `distribution-seed`. | +| `--delete-invalid-accounts` | Eliminar cuentas de canal del almacenamiento que hayan sido verificadas como inválidas en la red. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto `10000`. | + +--- + +### Ver cuentas Channel Accounts + +El comando `view` lista las claves públicas de todas las cuentas de canal almacenadas actualmente en la base de datos. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts view [flags] +``` + +## Comando Distribution Account + +El comando `distribution-account` gestiona la cuenta de distribución. + +### Uso + +```bash +stellar-disbursement-platform distribution-account [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :-------------------------- | :------------------------------------------------------------------------------------------------- | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto `DRY_RUN`. | +| `--distribution-public-key` | La clave pública de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | + +### Subcomandos + +| Comando | Descripción | +| :------- | :---------------------------------------------- | +| `rotate` | Rotar la cuenta de distribución para un tenant. | + +--- + +### Rotar cuenta Distribution Account + +El comando `rotate` rota la cuenta de distribución para un tenant. + +#### Uso + +```bash +stellar-disbursement-platform distribution-account rotate [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar/descifrar las claves privadas de las cuentas de canal. Si no se establece, usará el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Una clave privada ed25519 compatible con Stellar, usada para encriptar y desencriptar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta Stellar de distribución del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto `10000`. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | +| `--tenant-xlm-bootstrap-amount` | La cantidad del activo nativo que se enviará a la cuenta de distribución del tenant desde la cuenta de distribución del host cuando se cree, si es aplicable. Por defecto `5`. | + +#### Ejemplo + +Para rotar la cuenta de distribución de un tenant específico: + +```bash +stellar-disbursement-platform distribution-account rotate --tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Comando Message + +El comando `message` ofrece comandos relacionados con el mensajero. + +### Uso + +```bash +stellar-disbursement-platform message [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | +| `--aws-access-key-id` | El ID de clave de acceso AWS. | +| `--aws-region` | La región AWS. | +| `--aws-secret-access-key` | La clave secreta de acceso AWS. | +| `--aws-ses-sender-id` | La dirección de email que AWS usará para enviar correos. Usa AWS SES. | +| `--aws-sns-sender-id` | El ID del remitente de la cuenta AWS que envía el mensaje SMS. Usa AWS SNS. | +| `--message-sender-type` | Tipo de remitente de mensaje. Opciones: `TWILIO_SMS`, `TWILIO_WHATSAPP`, `TWILIO_EMAIL`, `AWS_SMS`, `AWS_EMAIL`, `DRY_RUN`. | +| `--twilio-account-sid` | El SID de la cuenta Twilio. | +| `--twilio-auth-token` | El token de autenticación de la cuenta Twilio. | +| `--twilio-sendgrid-api-key` | La clave API de la cuenta Twilio SendGrid. | +| `--twilio-sendgrid-sender-address` | La dirección de email que Twilio SendGrid usará para enviar correos. | +| `--twilio-service-sid` | El ID del servicio usado en Twilio para enviar mensajes. | +| `--twilio-whatsapp-from-number` | El número de WhatsApp Business usado para enviar mensajes (con prefijo `whatsapp:`). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | El SID de contenido Twilio para la plantilla de invitación de receptor WhatsApp (comienza con HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | El SID de contenido Twilio para la plantilla OTP de receptor WhatsApp (comienza con HX). | + +### Subcomandos + +| Comando | Descripción | +| :------ | :----------------- | +| `send` | Enviar un mensaje. | + +--- + +### Enviar mensaje Message Send + +El comando `send` envía un mensaje a un destinatario. + +#### Uso + +```bash +stellar-disbursement-platform message send [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------- | :------------------------------------------------------------------------------------------------ | +| `--email` | El correo electrónico al que enviar el mensaje. Obligatorio si se envía un email. | +| `--message` | El texto del mensaje a enviar. | +| `--phone-number` | El número de teléfono al que enviar el mensaje, en formato E.164. Obligatorio si se envía un SMS. | +| `--title` | El título que se establecerá en el email. Obligatorio si se envía un email. | + +#### Ejemplo + +```bash +# Send an SMS +stellar-disbursement-platform message send --phone-number "+1234567890" --message "Hello World" --message-sender-type TWILIO_SMS + +# Send an Email +stellar-disbursement-platform message send --email "user@example.com" --title "Hello" --message "Hello World" --message-sender-type AWS_EMAIL +``` diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/configuring-sdp.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/configuring-sdp.mdx index a97736a367..1d14325e6b 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/configuring-sdp.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/configuring-sdp.mdx @@ -1,22 +1,23 @@ --- -title: Configurando la SDP +title: Configuración description: Comprender las opciones de configuración disponibles para la Stellar Disbursement Platform (SDP) keywords: - SDP - configuration -sidebar_position: 45 +sidebar_position: 40 --- Los servicios de la Stellar Disbursement Platform se pueden configurar utilizando un conjunto de opciones de configuración que se pasan a la línea de comandos o se establecen como variables de entorno. Dependiendo de cómo estés utilizando y desplegando la SDP, estas configuraciones pueden establecerse en un ConfigMap en Kubernetes, como variables de entorno en un contenedor de Docker, pasadas como argumentos de línea de comandos, etc. En esta sección, discutiremos las diferentes opciones de configuración disponibles para la SDP. -**Notas:** +:::tip[Notes] - Las configuraciones etiquetadas con 🔑 son sensibles y deben almacenarse de forma segura. -- Estas configuraciones son válidas para la versión 2.x de la SDP. - Todas las configuraciones se pueden pasar como variables de entorno o como flags de CLI. Por ejemplo, la variable de entorno `BASE_URL` podría pasarse a través del flag `--base-url`. Los flags de CLI tienen prioridad sobre las variables de entorno, aunque las variables de entorno son más convenientes. +::: + ## Servicio Central de la SDP Para la configuración más actualizada, puedes ejecutar el siguiente comando en el [repositorio git de stellar-disbursement-platform-backend](https://github.com/stellar/stellar-disbursement-platform-backend): @@ -40,16 +41,25 @@ La Configuración Operativa permite controlar métricas, registros y otros aspec - `CRASH_TRACKER_TYPE` - El tipo de rastreador de fallos a utilizar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN". - `SENTRY_DSN` - 🔑 La DSN (clave de cliente) del proyecto de Sentry. Si no se proporciona, Sentry no se utilizará. - `ENVIRONMENT` - El entorno en el que se está ejecutando la aplicación. Ejemplo: "development", "staging", "production". Por defecto: "development". +- `BASE_URL` - La URL base del servidor backend de la SDP. Por defecto: "http://localhost:8000". Las URLs específicas del inquilino se configurarán durante el [proceso de provisión del inquilino](./advanced-configration#provisioning-tenants). +- `SDP_UI_BASE_URL` - La URL base de la interfaz de usuario/dashboard de la SDP utilizada para enviar el enlace de invitación cuando se crea un nuevo usuario. Las URLs específicas del inquilino se configurarán durante el [proceso de provisión del inquilino](./advanced-configration#provisioning-tenants). + +### Configuración de la base de datos + +Las siguientes configuraciones están relacionadas con la base de datos PostgreSQL utilizada por el servicio SDP Core. + - `DATABASE_URL` - 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato es `postgres://username:password@host:port/database?sslmode=disable`. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable". -- `BASE_URL` - La URL base del servidor backend de la SDP. Por defecto: "http://localhost:8000". Las URLs específicas del inquilino serán configuradas durante el [proceso de aprovisionamiento del inquilino](./tenant-provisioning.mdx#creating-tenants). -- `SDP_UI_BASE_URL` - La URL base de la interfaz de usuario/dashboard de la SDP utilizada para enviar el enlace de invitación cuando se crea un nuevo usuario. Las URLs específicas del inquilino serán configuradas durante el [proceso de aprovisionamiento del inquilino](./tenant-provisioning.mdx#creating-tenants). +- `DB_MAX_OPEN_CONNS` - Conexiones máximas abiertas por pool a la base de datos. Por defecto: 20. +- `DB_MAX_IDLE_CONNS` - Conexiones inactivas máximas retenidas en el pool. Por defecto: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Cierra las conexiones inactivas después de N segundos. Por defecto: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recicla las conexiones después de N segundos. Por defecto: 300. ### Configuración de Mensajería Messaging Configuration allows configuring the messaging service used to send messages to recipients and sdp dashboard users. La configuración por defecto está establecida en "DRY_RUN", lo que significa que no se enviarán mensajes y los mensajes se registrarán en la consola. Esto se recomienda solo para fines de prueba. - `EMAIL_SENDER_TYPE`: El tipo de mensajero utilizado para enviar invitaciones a nuevos usuarios del panel. Opciones: "DRY_RUN", "TWILIO_EMAIL", "AWS_EMAIL". Por defecto: "DRY_RUN". -- `SMS_SENDER_TYPE`: El tipo de mensajero utilizado para enviar mensajes SMS a los destinatarios. Opciones: "DRY_RUN", "TWILIO_SMS", "AWS_SMS". Por defecto: "DRY_RUN". +- `SMS_SENDER_TYPE`: El tipo de mensajero utilizado para enviar mensajes SMS a los destinatarios. Opciones: "DRY_RUN", "TWILIO_SMS", "TWILIO_WHATSAPP", "AWS_SMS". Por defecto: "DRY_RUN". #### Configuración de AWS @@ -69,6 +79,15 @@ Las siguientes configuraciones son requeridas cuando `SMS_SENDER_TYPE=TWILIO_SMS - `TWILIO_AUTH_TOKEN` - 🔑 El token de autenticación de Twilio. - `TWILIO_SERVICE_SID` - El SID del servicio de Twilio. +Las siguientes configuraciones son obligatorias cuando `SMS_SENDER_TYPE=TWILIO_WHATSAPP`. + +- `TWILIO_ACCOUNT_SID` - 🔑 El SID de la cuenta de Twilio. +- `TWILIO_AUTH_TOKEN` - 🔑 El token de autenticación de Twilio. +- `TWILIO_SERVICE_SID` - El SID del servicio de Twilio. +- `TWILIO_WHATSAPP_FROM_NUMBER` - El número de WhatsApp Business utilizado para enviar mensajes (con el prefijo whatsapp:). +- `TWILIO_WHATSAPP_RECEIVER_INVITATION_TEMPLATE_SID` - El SID de contenido de Twilio para la plantilla de invitación de receptor de WhatsApp (comienza con HX). +- `TWILIO_WHATSAPP_RECEIVER_OTP_TEMPLATE_SID` - El SID de contenido de Twilio para la plantilla OTP de receptor de WhatsApp (comienza con HX). + Las siguientes configuraciones son requeridas cuando `EMAIL_SENDER_TYPE=TWILIO_EMAIL`. - `TWILIO_SENDGRID_API_KEY` - 🔑 La clave API para el servicio de Twilio SendGrid (correo electrónico). @@ -87,8 +106,21 @@ La Configuración de Stellar permite configurar cuentas, transacciones y otros a - `SEP10_SIGNING_PUBLIC_KEY` - La clave pública de la cuenta Stellar que firma las transacciones SEP-10. También se utiliza para firmar URLs. - `SEP10_SIGNING_PRIVATE_KEY` - 🔑 La clave privada de la cuenta Stellar que firma las transacciones SEP-10. También se utiliza para firmar URLs. - `MAX_BASE_FEE` - La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000. +- `SEP10_CLIENT_ATTRIBUTION_REQUIRED` - Determina si se requiere la atribución del cliente SEP-10. Por defecto: true. + +#### Configuración de Cuentas de Canal -Las configuraciones restantes relacionadas con las cuentas de distribución se detallan en la sección `Configuración de cuentas Stellar` de la [Guía de Migración de 1.x a 2.x](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). +La siguiente configuración es necesaria para usar el [CLI de channel-accounts](./cli-manual#channel-accounts-command) para gestionar las cuentas de canales. + +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para encriptar/desencriptar las claves privadas de las cuentas de canal. Si no está configurado, tomará por defecto el valor de `DISTRIBUTION_SEED`. + +#### Configuración de Cuentas de Distribución + +Las siguientes configuraciones están relacionadas con las cuentas de distribución utilizadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central de la SDP. + +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para cifrar/descifrar las claves privadas de las cuentas de distribución en memoria. +- `DISTRIBUTION_PUBLIC_KEY` - La clave pública de la cuenta de distribución Stellar del HOST. Se utiliza para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos. +- `DISTRIBUTION_SEED` - 🔑 La clave privada de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos. ### Configuración de Seguridad @@ -114,23 +146,27 @@ Las siguientes configuraciones son requeridas al usar reCAPTCHA v2 de Google par - `RECAPTCHA_SITE_KEY` - La clave del sitio reCAPTCHA v2 de Google - No soy un robot. - `RECAPTCHA_SITE_SECRET_KEY` - 🔑 La clave secreta del sitio reCAPTCHA utilizada para validar las respuestas de reCAPTCHA. -### Configuración de Anchor Platform +### Configuración de trabajos en segundo plano -La Configuración de Anchor Platform permite configurar la plataforma de anclaje utilizada por el Servicio Central de la SDP. +- `SCHEDULER_PAYMENT_JOB_SECONDS`: Intervalo en segundos para el trabajo que sincroniza pagos entre SDP y TSS. El mínimo es 5s. +- `SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS`: Intervalo en segundos para el trabajo que envía invitaciones a receptores. El mínimo es 5s. -- `ANCHOR_PLATFORM_BASE_PLATFORM_URL` - La URL base de la plataforma de anclaje. -- `ANCHOR_PLATFORM_BASE_SEP_URL` - La URL base de la implementación SEP-24 de la plataforma de anclaje. -- `ANCHOR_PLATFORM_OUTGOING_JWT_SECRET` - 🔑 El secreto JWT utilizado para crear un token JWT empleado para enviar solicitudes a la plataforma de anclaje. +### Configuración de Multi-tenancy -### Configuración de Event Broker y Trabajos Programados +- `ADMIN_ACCOUNT`: El nombre de usuario de la cuenta de administrador usada para autenticar solicitudes HTTP al servidor Admin. Las solicitudes dirigidas al Admin deben agregar el encabezado "Authorization", formateado como `"ADMIN_ACCOUNT:ADMIN_API_KEY"` codificado en Base64. +- `ADMIN_API_KEY`: La clave api de la cuenta de administrador usada para autenticar solicitudes HTTP al servidor Admin. Las solicitudes dirigidas al Admin deben agregar el encabezado "Authorization", formateado como `"ADMIN_ACCOUNT:ADMIN_API_KEY"` codificado en Base64. +- `ADMIN_PORT`: el puerto del servidor Admin usado para crear y administrar inquilinos. El valor predeterminado es 8003. +- `INSTANCE_NAME`: el nombre de la instancia SDP que se mostrará en el archivo `stellar.toml`. Ejemplo: "SDP Testnet". +- `SINGLE_TENANT_MODE`: Cuando está configurado en `"true"`, habilita el modo de inquilino único, útil para desarrollo local o configuraciones de un solo inquilino. Además de configurarlo en true, deberás configurar el inquilino predeterminado haciendo la solicitud [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). +- `TENANT_XLM_BOOTSTRAP_AMOUNT`: La cantidad de XLM que la cuenta Stellar del HOST depositará en la cuenta de distribución del inquilino para el arranque del inquilino. -Para el procesamiento asíncrono, el Servicio Central de la SDP ofrece al usuario la opción de utilizar ya sea el Event Broker o Trabajos Programados. +### Configuración de integración Bridge -Las configuraciones para esta sección se detallan en `Configuraciones de Event Broker y Scheduler` de la [Guía de Migración de 1.x a 2.x](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). +Las siguientes configuraciones son necesarias al usar la integración Bridge. -### Configuración de Multi-tenancy - -Las configuraciones para esta sección se detallan en `Variables de Entorno Generales` de la [Guía de Migración de 1.x a 2.x](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). +- `ENABLE_BRIDGE_INTEGRATION` - Determina si la integración Bridge está habilitada. +- `BRIDGE_BASE_URL` - La URL base de la API Bridge. Por defecto: `"https://api.bridge.xyz"`. +- `BRIDGE_API_KEY` - 🔑 La clave API para la integración Bridge. Requerida si `ENABLE_BRIDGE_INTEGRATION` está configurado como true. ## Servicio de Envío de Transacciones (TSS) @@ -158,7 +194,16 @@ La Configuración Operativa permite controlar métricas, registros y otros aspec - `CRASH_TRACKER_TYPE` - El tipo de rastreador de fallos a utilizar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN". - `SENTRY_DSN` - 🔑 La DSN (clave de cliente) del proyecto de Sentry. Si no se proporciona, Sentry no se utilizará. - `ENVIRONMENT` - El entorno en el que se está ejecutando la aplicación. Ejemplo: "development", "staging", "production". Por defecto: "development". + +### Configuración de la base de datos + +Las siguientes configuraciones están relacionadas con la base de datos PostgreSQL utilizada por el servicio SDP Core. + - `DATABASE_URL` - 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato es `postgres://username:password@host:port/database?sslmode=disable`. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable". +- `DB_MAX_OPEN_CONNS` - Conexiones máximas abiertas por pool a la base de datos. Por defecto: 20. +- `DB_MAX_IDLE_CONNS` - Conexiones inactivas máximas retenidas en el pool. Por defecto: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Cierra las conexiones inactivas después de N segundos. Por defecto: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recicla las conexiones después de N segundos. Por defecto: 300. ### Configuración de Stellar @@ -168,33 +213,20 @@ La Configuración de Stellar permite configurar cuentas, transacciones y otros a - `HORIZON_URL` - La URL del servidor Horizon a utilizar para enviar transacciones. Por defecto "https://horizon-testnet.stellar.org/". - `MAX_BASE_FEE` - La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000. -#### Configuración de Cuentas de Canal +#### Configuración de cuentas de canal Las siguientes configuraciones son requeridas para usar cuentas de canal para enviar transacciones a la red Stellar. - `NUM_CHANNEL_ACCOUNTS` - Número de cuentas de canal a utilizar para el envío de transacciones. Por defecto: 2. -- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave privada ed25519 compatible con Stellar utilizada para cifrar/descifrar las claves privadas de las cuentas de canal. Cuando no se establece, se configurará con el valor de la opción 'DISTRIBUTION_SEED'. - -#### Configuración de Cuentas de Distribución - -Las siguientes configuraciones están relacionadas con las cuentas de distribución utilizadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central de la SDP. Para más detalles, consulta la sección `Configuración de cuentas Stellar` de la [Guía de Migración de 1.x a 2.x](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave privada ed25519 compatible con Stellar utilizada para cifrar/descifrar las claves privadas de las cuentas de distribución en memoria. -- `DISTRIBUTION_PUBLIC_KEY` - La clave pública de la cuenta de distribución del HOST, utilizada para crear cuentas de canal. -- `DISTRIBUTION_SEED` - 🔑 La clave privada de la cuenta de distribución del HOST, utilizada para crear cuentas de canal. +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para cifrar/descifrar las claves privadas de las cuentas de canal. Cuando no se establece, se configurará con el valor de la opción 'DISTRIBUTION_SEED'. -### Configuración del Event Broker +#### Configuración de cuentas de distribución -Si se utiliza un Event Broker para el procesamiento asíncrono, será necesario configurar el TSS para usarlo. Para más detalles, consulta las `Configuraciones de Event Broker y Scheduler` de la [Guía de Migración de 1.x a 2.x](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). +Las siguientes configuraciones están relacionadas con las cuentas de distribución usadas para enviar fondos a los destinatarios. Esta configuración debe coincidir con la configuración en el Servicio Central SDP. -- `EVENT_BROKER_TYPE` - El tipo de broker de eventos a usar. Opciones: "KAFKA", "NONE". Predeterminado: "KAFKA". -- `BROKER_URLS` - Lista de URLs del Message Broker separadas por comas. -- `CONSUMER_GROUP_ID` - ID del grupo de consumidores del Message Broker. -- `KAFKA_SASL_USERNAME` - 🔑 Nombre de usuario de Kafka SASL. -- `KAFKA_SASL_PASSWORD` - 🔑 Contraseña de Kafka SASL. -- `KAFKA_SECURITY_PROTOCOL` - Protocolo de seguridad de Kafka. Opciones: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL. -- `KAFKA_SSL_ACCESS_CERTIFICATE` - 🔑 Certificado de acceso SSL de Kafka en formato PEM que igualará la Clave de Acceso de Kafka. -- `KAFKA_SSL_ACCESS_KEY` - 🔑 La Clave de Acceso de Kafka (keystore) en formato PEM. +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para encriptar/desencriptar las claves privadas en memoria de las cuentas de distribución. +- `DISTRIBUTION_PUBLIC_KEY` - La clave pública de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos. +- `DISTRIBUTION_SEED` - 🔑 La clave privada de la cuenta de distribución Stellar del HOST. Se usa para distribuir fondos, crear cuentas de canal y cuentas de distribución de inquilinos. ## Tablero @@ -206,3 +238,4 @@ El Tablero de SDP es una aplicación web que permite a los usuarios gestionar su - `STELLAR_EXPERT_URL` - La URL base del explorador Stellar Expert. Predeterminado: "https://stellar.expert/explorer/testnet". - `HORIZON_URL` - La URL base del servidor Horizon. Predeterminado: "https://horizon-testnet.stellar.org". - `RECAPTCHA_SITE_KEY` - La clave del sitio de Google reCAPTCHA v2 - No soy un robot. Esta clave necesita igualar la clave utilizada en el Servicio Núcleo de SDP. +- `SINGLE_TENANT_MODE` - Cuando está configurado en `"true"`, habilita el modo de un solo inquilino, útil para desarrollo local o configuraciones de un solo inquilino. Además de configurarlo en true, deberás configurar el inquilino predeterminado llamando a la solicitud [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). Por defecto: "false". diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/deploy-the-sdp.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/deploy-the-sdp.mdx index deddb44bce..7a8d275365 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/deploy-the-sdp.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/deploy-the-sdp.mdx @@ -1,57 +1,112 @@ --- -title: Desplegar el SDP -sidebar_position: 40 +title: Despliegue +sidebar_position: 30 --- -En esta guía, aprenderás a desplegar el SDP en un clúster de Kubernetes utilizando gráficos de Helm disponibles públicamente. +## Despliegue mediante Helm Charts -Esta opción se recomienda para despliegues persistentes de instancias de producción o de pruebas del SDP. Si quieres desplegar el SDP en una máquina local con fines de desarrollo, consulta [Ejecutar el SDP localmente](getting-started#run-the-sdp-locally). +### Requisitos mínimos del sistema -Ten en cuenta que la configuración de detalles de despliegue como ingress, TLS, límites de recursos, etc., está fuera del alcance de esta guía. Esta guía asume que tienes un clúster de Kubernetes con una base de datos Postgres desplegada en el mismo clúster y que tienes los permisos necesarios para desplegar el SDP. También asume que tienes el conocimiento operativo para gestionar el clúster y la base de datos. +- **Cuentas Stellar**: Necesitarás una **Cuenta de Distribución** (financiada) y una **Cuenta de Firma SEP-10**. +- **Certificados**: Al ejecutar el SDP en una configuración multiinquilino, necesitarás adquirir certificados TLS comodín para facilitar la provisión de inquilinos, ya que el SDP depende de subdominios para diferenciar entre ellos. Esto te permitirá provisionar inquilinos sin tener que configurar manualmente certificados TLS para cada inquilino. Puedes usar un servicio como [Let's Encrypt](https://letsencrypt.org/) o [Namecheap](https://www.namecheap.com/security/ssl-certificates/) para adquirir estos certificados. -## Requisitos previos +| Componente | Requisito | Nota | +| :------------- | :-------- | :-------------------------------------------------------------------------------------- | +| **Kubernetes** | v1.19+ | Para despliegue con Helm | +| **Helm** | v3.14.0+ | Para despliegue con Helm | +| **PostgreSQL** | v14.0+ | Requerido para ambos métodos de despliegue | +| **RAM** | 4GB+ | Memoria mínima recomendada para ejecutar el stack completo en modo de un solo inquilino | -- Kubernetes 1.19+ -- Helm 3.2.0+ -- Postgres 14.0+ +### Instalando el gráfico -## Instalando el gráfico +#### 1. Agregar el Repositorio Helm de Stellar -### Añadir el repositorio de Helm +Agrega el repositorio oficial de charts de Helm de Stellar a tu cliente local de Helm: -Antes de poder instalar el gráfico, necesitas añadir el repositorio de Helm de Stellar. - -```bash +```shell helm repo add stellar https://helm.stellar.org/charts -helm repo update ``` -### Personalizar los valores +#### 2. Preparar la Configuración + +Descarga el archivo de configuración mínima para usarlo como base: + +```shell +curl -LJO https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/main/helmchart/sdp/minimal-values.yaml +``` + +Los siguientes parámetros pueden establecerse en el archivo `minimal-values.yaml` o sobrescribirse directamente vía CLI durante la instalación: + +- `global.distributionPublicKey`: Clave pública de la cuenta de distribución. +- `global.distributionPrivateKey`: Clave privada de la cuenta de distribución. +- `global.sep10PublicKey`: Clave pública para autenticación SEP-10. +- `global.sep10PrivateKey`: Clave privada para autenticación SEP-10. +- `global.isPubnet`: Establecer en `true` para Mainnet. + +Consulta el [Helm Chart README](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#parameters) para una lista completa de parámetros. + +:::tip + +Hay una explicación más detallada sobre cómo configurar el SDP en la [Guía de Configuración](configuring-sdp). + +::: -El gráfico de Helm del SDP tiene varios valores configurables. Puedes personalizar estos valores creando un archivo de valores y pasándolo al comando `helm install`. +#### 3. Instalar el Chart -Proporcionamos un archivo de valores de muestra que puedes utilizar como punto de partida. Este archivo tiene el conjunto mínimo de configuraciones requeridas para desplegar una instancia del SDP. Puedes descargar el archivo desde el [repositorio de GitHub del SDP](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/minimal-values.yaml) o ejecutando el siguiente comando: +Instala el chart usando tu archivo de valores personalizado. Puedes sobrescribir valores directamente vía CLI o modificar el archivo `minimal-values.yaml`. -```bash -curl -O https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/develop/helmchart/sdp/minimal-values.yaml +```shell +helm install sdp -f minimal-values.yaml stellar/stellar-disbursement-platform \ + --set "global.distributionPublicKey=" \ + --set "global.distributionPrivateKey=" \ + --set "global.sep10PublicKey=" \ + --set "global.sep10PrivateKey=" ``` -Puedes encontrar la lista completa de valores configurables en el [repositorio de GitHub del SDP](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#stellar-disbursement-platform-sdp-parameters). +## Despliegue mediante Docker Compose -Hay una explicación más detallada sobre cómo configurar el SDP en la [Guía de configuración del SDP](configuring-sdp). +Esta sección describe cómo desplegar el SDP utilizando Docker Compose para un entorno similar a producción. A diferencia del entorno de desarrollo, esta configuración usa imágenes preconstruidas para producción y requiere una configuración explícita de variables de entorno y secretos. -### Consideraciones de multi-tenencia +### Requisitos mínimos del sistema -Al ejecutar el SDP en una configuración de multi-tenencia, necesitarás adquirir certificados TLS comodín para facilitar la provisión de inquilinos, ya que el SDP se basa en subdominios para diferenciar entre inquilinos. Esto te permitirá provisionar inquilinos sin tener que configurar manualmente certificados TLS para cada inquilino. Puedes usar un servicio como [Let's Encrypt](https://letsencrypt.org/) o [Namecheap](https://www.namecheap.com/security/ssl-certificates/) para adquirir estos certificados. +- **Cuentas Stellar**: Necesitarás una **Cuenta de Distribución** (financiada) y una **Cuenta de Firma SEP-10**. +- **Acceso a la red**: Acceso saliente a la red Stellar (Horizon/Soroban) y a cualquier integración de terceros (Twilio, AWS SES, etc.). -Para más información sobre la multi-tenencia en el SDP, consulta la [Guía de Diseño y Arquitectura](design-and-architecture#multi-tenancy). +| Componente | Requisito | Nota | +| :--------- | :-------- | :--------------------------------------------------------- | +| **Docker** | v20.10+ | Requerido para orquestación de contenedores | +| **RAM** | 4GB+ | Memoria mínima recomendada para ejecutar el stack completo | -### Instalar el gráfico +### Pasos del despliegue -Para instalar el gráfico con el nombre de despliegue `sdp` y el archivo de valores `myvalues.yaml`: +#### 1. Clonar el repositorio -```bash -helm install sdp -f myvalues.yaml stellar/stellar-disbursement-platform +```shell +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend ``` -Ahora deberías tener una instancia del SDP en funcionamiento. Para aprender a usar el SDP, consulta [Crea tu primer desembolso](getting-started#create-your-first-disbursement). +#### 2. Crear archivo de entorno + +Copia el archivo de entorno de ejemplo. + +```shell +cp dev/.env.example dev/.env +``` + +#### 3. Configurar variables de entorno + +Edita `dev/.env` y completa las siguientes variables con las claves de tu cuenta Stellar: + +- `DISTRIBUTION_PUBLIC_KEY` +- `DISTRIBUTION_SEED` +- `SEP10_SIGNING_PUBLIC_KEY` +- `SEP10_SIGNING_PRIVATE_KEY` + +Para despliegue en mainnet, establece: _ `NETWORK_TYPE=pubnet` _ `NETWORK_PASSPHRASE=Public Global Stellar Network ; September 2015` _ `HORIZON_URL=https://horizon.stellar.org` _ `DISABLE_MFA=false` (Aplicado por seguridad) + +#### 4. Iniciar los servicios + +```shell +docker compose -f dev/docker-compose.yml up -d +``` diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/design-and-architecture.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/design-and-architecture.mdx index 82880c8104..459ba813d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/design-and-architecture.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/design-and-architecture.mdx @@ -1,32 +1,46 @@ --- -title: Diseño y Arquitectura +title: Arquitectura sidebar_position: 20 --- -La Stellar Disbursement Platform consta de cuatro servicios desplegados juntos: +La Plataforma de Distribución Stellar consta de tres servicios desplegados juntos: - **Dashboard**: la interfaz de usuario que utilizan los administradores para iniciar y rastrear el progreso de las distribuciones - **SDP Core Service**: el servicio backend central que realiza varias funciones: - **Dashboard API**: the API used by the front-end UI for all disbursement requests. La API está documentada [aquí](../api-reference/admin) - **Admin API**: la API utilizada por la organización anfitriona para gestionar la provisión y configuración de inquilinos. La API está documentada [aquí](../api-reference/admin) - **Messaging Service**: un proceso recurrente que envía mensajes de texto a los usuarios para incitarlos a descargar la billetera seleccionada para una distribución particular y verificar su teléfono con un OTP - - **Wallet Registration UI**: a web application that collects and verifies the recipient’s OTP code and verification information via Stellar’s [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) protocol -- **Anchor Platform Service**: the API server that the wallet uses to authenticate and initiate the recipient’s registration process through the SEP-24 deposit flow + - **Registro de billetera**: una aplicación web registra a un destinatario recopilando y verificando su código OTP e información de verificación mediante el protocolo [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) de Stellar - **Transaction Submission Service**: el servicio que envía todas las transacciones de pago a la red Stellar. This service is designed to maximize payment throughput, handle queuing, and graceful resubmission/error handling ## Dependencias {#dependencies} - **Container Orchestration**: el SDP se empaqueta como contenedores Docker y se puede desplegar en Kubernetes o AWS Fargate. SDF provides a Helm Chart for Kubernetes - **Postgres**: the SDP uses a Postgres database server for all of its services -- **Apache Kafka**: el SDP opcionalmente utiliza Kafka para transmitir eventos entre servicios. This is primarily used between SDP Core Service and Transaction Submission Service -- **Twilio or AWS SNS and SES**: the SDP’s messaging service uses SMS messages via Twilio or AWS SNS and administrative emails for organization account setup and recovery via AWS SES or Twilio SendGrid +- **Twilio o AWS SNS y SES**: el servicio de mensajería del SDP utiliza mensajes SMS/WhatsApp a través de Twilio o AWS SNS y correos electrónicos administrativos para la configuración y recuperación de la cuenta de la organización a través de AWS SES o Twilio SendGrid - **Stellar Accounts**: - Distribution Account: the SDP requires access to at least one funded Stellar account to make payments to the recipient - SEP-10 Auth Account: the SDP requires a Stellar account for the mutual authentication protocol [SEP-10: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md) used to connect to wallet applications ## Diagrama de Arquitectura -![Diagrama de Arquitectura](/assets/SDP/SDP2.png) +![Architecture Diagram](/assets/SDP/SDP2-2.png) + +### Roles de Usuario {#user-roles} + +El SDP define los siguientes roles de usuario: + +- **Administrador Host**: la organización que aloja la instancia del SDP y gestiona el aprovisionamiento y la configuración de los tenants mediante la API `Tenant Admin` +- **Usuario del Panel**: un usuario que pertenece a un tenant y utiliza el Panel SDP para crear y gestionar distribuciones, destinatarios y otros datos específicos del tenant. +- **Usuario API**: un usuario que pertenece a un tenant y utiliza la `Dashboard API` para crear y gestionar distribuciones, destinatarios y otros datos específicos del tenant de forma programada +- **Receptores**: los usuarios finales que reciben los fondos enviados a través del SDP. Los receptores pueden usar una aplicación wallet que soporte SEP-24 para el registro automático, o pueden recibir fondos directamente en su cuenta Stellar. + +### Flujo de Trabajo {#workflow} + +1. El administrador host utiliza la API `Tenant Admin` para aprovisionar y gestionar los tenants. +2. `Usuario del Panel` y `Usuario API` usan el Servicio Central SDP para enviar distribuciones y gestionar / invitar a otros usuarios. Esto puede hacerse a través de la IU del Panel o directamente mediante la `Dashboard API`. +3. Para pagos que requieren registro SEP-24, el `Servicio Central SDP` envía un mensaje para notificar a los receptores. El mensaje contiene un deeplink que abre la wallet objetivo, lo que a su vez activa el **flujo de depósito SEP-24** y registra a los receptores. +4. El TSS recupera los pagos que están listos para ser procesados y luego los envía a la Red Stellar mediante Cuentas Canal. ## Base de Datos & Esquemas {#database} diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/getting-started.mdx index cb1b44cc11..2546aac8bf 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/getting-started.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/getting-started.mdx @@ -1,424 +1,110 @@ --- title: Comenzar -sidebar_position: 30 +sidebar_position: 10 --- -import { CodeExample } from "@site/src/components/CodeExample"; - -En esta guía, aprenderás a: - -- crear y financiar una cuenta de distribución de host que puede ser utilizada para financiar cuentas de distribución a nivel de inquilino o directamente para hacer pagos -- configurar una instancia de la Stellar Disbursement Platform (SDP) localmente -- provisionar un nuevo inquilino y crear credenciales de inicio de sesión para los usuarios pertenecientes al inquilino -- configurar una cuenta Stellar para aceptar fondos como receptor -- realizar tu primera distribución -- registrar tu cuenta receptora en la SDP -- verifica tu saldo después de recibir el pago - -Al final de esta guía, tendrás una comprensión clara de la funcionalidad de la Stellar Disbursement Platform y una configuración local funcional lista para el desarrollo o las pruebas. - -Ten en cuenta que, aunque estaremos usando USDC y la [Demo Wallet][demo-wallet] en esta guía, otros activos y billeteras de Stellar pueden ser utilizados en el desarrollo o producción. - -## Crear y financiar una cuenta de distribución de host - -Necesitarás un mínimo de dos cuentas al usar la Stellar Disbursement Platform, una cuenta de distribución y una cuenta receptora. Crearemos la cuenta de distribución ahora y crearemos la cuenta receptora mientras hacemos nuestra primera distribución. - -1. Ve a la [Stellar Demo Wallet][demo-wallet] y selecciona 'Generar keypair para nueva cuenta' -2. Selecciona el botón 'Crear cuenta' junto a la clave pública para financiar tu cuenta con XLM -3. Selecciona el botón 'Seleccionar de activos preestablecidos' y selecciona USDC -4. Finalmente, selecciona 'Agregar trustline' para habilitar pagos de USDC - -Ahora que tenemos una cuenta que puede enviar y recibir USDC, vamos a financiarla con suficiente USDC para nuestra primera distribución. Puedes financiar tu cuenta de distribución desde cualquier fuente de liquidez de Stellar USDC, pero aquí te mostramos cómo hacerlo a través del Circle Sandbox y [Stellar Lab](https://lab.stellar.org). - -1. Crea una cuenta en [Circle Sandbox][circle-sandbox] -2. Una vez que estés en el panel, selecciona 'Obtener clave API' y cópiala en tu portapapeles -3. Ve a la [Circle Sample App][circle-sample-app] e introduce tu clave API después de seleccionar el ícono de configuración en la esquina superior derecha -4. Selecciona 'Carga de flujo', luego 'Prefill Form', y selecciona una tarjeta para usar (no importa cuál) -5. Introduce la cantidad que te gustaría comprar, luego selecciona 'Hacer pago' - -Esto financiará tu cuenta de Circle Sandbox con USDC. Puedes repetir el proceso anterior cuando te quedes sin fondos o la red de pruebas se restablezca, lo que ocurre trimestralmente. - -Tu USDC debería aparecer en tu cuenta dentro de unos minutos, que puedes verificar usando el [endpoint de saldos](https://sample-sandbox.circle.com/debug/payments/balances/fetch). Una vez financiada, puedes enviarlo a tu cuenta de distribución creada anteriormente. - -1. Selecciona el ícono en la parte superior izquierda, luego 'Payouts API' y finalmente 'POST /transfers' -2. Selecciona 'Obtener ID de billetera maestra' para cargar la billetera financiada con USDC -3. Introduce la cantidad que te gustaría enviar -4. Selecciona el tipo de destino 'blockchain' y luego 'XLM' -5. Pega la clave pública de la cuenta que creaste con la billetera demo anteriormente -6. Selecciona 'Hacer llamada a la API' - -¡Circle enviará el pago de USDC a la red de pruebas Stellar y deberías recibir fondos en tu cuenta de billetera demo casi inmediatamente! - -También puedes adquirir USDC a través del [Stellar Lab](https://lab.stellar.org) si lo prefieres. Antes de comenzar, asegúrate de que tu cuenta demo esté financiada con XLM y tenga una trustline a USDC. Construir una transacción en el Lab con tu cuenta de billetera demo como la cuenta de origen. Crear una operación de Envío Estricto de Pago de Rutas con la misma cuenta como la cuenta de destino. Usa XLM (nativo) como el activo de envío y USDC emitido por GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 como el activo de destino. Puedes establecer tu cantidad mínima de destino preferida basada en cuánto XLM envías, pero la cantidad no es importante en la red de pruebas. Una cantidad mínima muy baja asegurará el intercambio. Firma la transacción y envíala a la red. - -¡USDC llegará a tu cuenta de billetera demo en segundos! Actualiza la cuenta en la página de billetera demo para ver el nuevo saldo. - -## Ejecutar la SDP localmente +Esta guía cubre cómo ejecutar localmente la Plataforma de Distribución Stellar, enviar una distribución de muestra y reclamarla a través de la billetera de demostración en Testnet. Considera este recorrido como un entorno de aprendizaje más que como el camino para implementaciones en producción. ### Requisitos previos -#### Docker - -Asegúrate de tener Docker instalado en tu sistema. Si no, puedes descargarlo [aquí](https://docs.docker.com/get-docker/). - -#### Cuentas Stellar - -Necesitaremos dos cuentas Stellar para configurar la SDP, una de las cuales creaste anteriormente. - -1. Una cuenta de distribución de host que será utilizada para enviar fondos a los receptores. Deberías haber creado esta cuenta utilizando el proceso de [Crear y financiar una cuenta de distribución de host](#create-and-fund-a-host-distribution-account) arriba. -2. Una cuenta SEP-10 que será utilizada para autenticación. Puede ser creada de la misma manera que la cuenta de distribución, pero no necesita ser financiada. Asegúrate de crear esta cuenta ahora si aún no lo has hecho. - -La clave pública y privada de estas dos cuentas serán utilizadas para configurar la SDP en el siguiente paso. - -### Ejecutar la SDP - -Primero, necesitarás clonar el proyecto. +- **Docker:** Asegúrate de tener Docker instalado en tu sistema. Si no, puedes descargarlo desde [aquí](https://www.docker.com/products/docker-desktop) y ejecutarlo una vez instalado. +- **Git:** Necesitarás Git para clonar el repositorio. Puedes descargarlo desde [aquí](https://git-scm.com/downloads). +- **Go:** Requerido para generar tu archivo de entorno. Instálalo desde [aquí](https://golang.org/dl/). +- **jq:** Útil para scripts opcionales y diagnóstico. Puedes descargarlo desde [aquí](https://jqlang.org/download/) - +Para macOS y Linux, puedes instalarlo con Homebrew: ```bash -git clone git@github.com:stellar/stellar-disbursement-platform-backend.git +brew install --cask docker +brew install git go jq ``` - - -Antes de ejecutar la SDP, necesitamos configurarla con las cuentas creadas en el paso anterior. - - +### Clona el repositorio ```bash -cd stellar-disbursement-platform-backend/dev +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend ``` - - -Crea un archivo `.env` en el directorio dev copiando el archivo `.env.example`: - - +### Ejecuta el asistente ```bash -cp .env.example .env +make setup ``` - - -Actualiza el archivo `.env` con las claves pública y privada de las dos cuentas creadas en el paso anterior. - -Ejecuta el siguiente comando para crear todos los contenedores Docker necesarios para ejecutar la SDP, así como provisionar inquilinos de muestra: - - - -```bash -./main.sh -``` - - - -Esto iniciará los siguientes servicios: - -- `sdp_v2_database`: La base de datos principal de la SDP y TSS. -- `anchor-platform-postgres-db`: Base de datos utilizada por la plataforma ancla. -- `anchor-platform`: Una instancia local de la plataforma ancla. -- `sdp-api`: Servicio SDP ejecutándose en el puerto 8000. -- `sdp-tss`: Servicio de envío de transacciones. -- `sdp-frontend`: Servicio frontend de la SDP ejecutándose en el puerto 3000. -- `kafka`: Servicio Kafka ejecutándose en los puertos 9092, 9094(external). -- `kafka-init`: Flujo de trabajo inicial para ejecutar el contenedor de Kafka y crear temas. -- `demo-wallet`: El cliente de billetera demo que será utilizado como billetera receptora, ejecutándose en el puerto 4000. - -## Proceso de aprovisionamiento de nuevos inquilinos - -Cuando ejecutaste el archivo `main.sh`, ya creaste nuevos inquilinos: `tenants=("redcorp" "bluecorp")`. Para agregar más inquilinos, simplemente añádelos separados por espacios a esa variable de esta manera: `tenants=("redcorp" "bluecorp" "greencorp")` y ejecuta `main.sh` nuevamente. - -Asegúrate de que los hosts de inquilino añadidos estén incluidos en el archivo de configuración de hosts. Para comprobarlo, puedes ejecutar el comando cat `/etc/hosts`. Para incluirlos, puedes ejecutar el comando sudo nano /etc/hosts e insertar las líneas a continuación: - -``` -127.0.0.1 bluecorp.stellar.local -127.0.0.1 redcorp.stellar.local -``` - -## Configura la contraseña del usuario propietario para cada inquilino - -Pasa por el flujo de olvidé mi contraseña para poder iniciar sesión como un usuario propietario. - -Ve a la página de olvidar contraseña en `http://${tenant}.stellar.local:3000/forgot-password` e introduce el inquilino y el correo electrónico del propietario `owner@${tenant}.org`. - -Se generará un token y es posible verificarlo en los registros de `sdp-api`. Este token será necesario para Restablecer la Contraseña en `http://${tenant}.stellar.local:3000/reset-password`. - -## Iniciar sesión - -Una vez que la contraseña de tu usuario objetivo de la organización se haya restablecido a una de tu elección, navega al panel abriendo un navegador a localhost:3000 e inicia sesión con la cuenta de usuario. ![Login](/assets/SDP/SDP26.png) - -Haz clic en el botón Iniciar sesión y se abrirá el panel de SDP. En este momento no tendrás datos de desembolsos. ![Dashboard](/assets/SDP/SDP27.png) - -## Crea tu primer desembolso - -Navega al servicio frontend abriendo un navegador y yendo a http://bluecorp.stellar.local:3000. - -- Haz clic en `Nuevo Desembolso+` en la pantalla del Panel. -- Usa `Demo Wallet` como tu billetera y elige un método de verificación. -- Sube un archivo de desembolso. Un archivo de plantilla puede ser descargado en la página frontend al crear un desembolso, y la plantilla cambiará de acuerdo con las opciones establecidas para ese desembolso. También puedes encontrar los archivos de plantilla en [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). Asegúrate de actualizar el archivo antes de usarlo cambiando la información de contacto a la tuya y eliminando la línea de comentario. -- Finalmente, confirma el desembolso. - -![Disbursement Details](/assets/SDP/SDP28.png) - -También tienes la opción de modificar el mensaje en la invitación al receptor. ![Disbursment Details 2](/assets/SDP/SDP29.png) - -## Depositar dinero - -Para depositar dinero en tu cuenta: - -- Accede a [demo-wallet](http://localhost:4000) en tu navegador. -- Haz clic en `Generar Keypair para nueva cuenta` para generar un nuevo keypair. Asegúrate de guardar tu clave pública y secreto si deseas usar esta cuenta más tarde. -- Haz clic en `Crear cuenta` (frente a la clave pública) para crear la cuenta en la Stellar testnet. -- Tu cuenta recién creada tendrá 10.000 XLM. -- Agrega tu dominio principal a la cuenta haciendo clic en `Agregar Dominio Principal` e ingresando `http://bluecorp.stellar.local:8000`. -- En el menú desplegable `Seleccionar acción`, selecciona `SEP-24 Depositar`. -- En la nueva ventana, ingresa el número de teléfono del CSV de desembolso. -- Introduce el código de acceso. Puedes usar el código de acceso `000000` o encontrar el código de acceso real en los registros del contenedor `sdp-api`. -- Introduce la fecha de nacimiento que coincide con el número de teléfono en el CSV. -- Mantén un ojo en el panel hasta que el estado del pago alcance `Éxito`. Si todo fue configurado correctamente, tu dinero debería distribuirse con éxito. - -## Resolución de problemas - -### Cuenta de distribución sin fondos +En los avisos, elige según lo indicado abajo. El asistente genera y financia las cuentas firmantes SEP-10 y de distribución (testnet), inicia Docker y muestra las credenciales del arrendatario. -Los pagos comenzarán a fallar si la cuenta de distribución se queda sin fondos. Para solucionarlo, puedes escribir un script que financie la cuenta de distribución o utilizar las herramientas disponibles para agregar más fondos a la cuenta de distribución siguiendo estos pasos: - -- La dirección de la cuenta de distribución se puede encontrar bajo `Cuenta de Distribución` en la barra lateral del frontend. Copia esa dirección. -- Accede a [https://horizon-testnet.stellar.org/accounts/:accountId](https://horizon-testnet.stellar.org/accounts/GARGKDIDH7WMKV5WWPK4BH4CKEQIZGWUCA4EUXCY5VICHTHLEBXVNVMW) en tu navegador y verifica el saldo. -- Si el saldo es realmente bajo, puedes agregar más fondos creando una nueva cuenta y enviando fondos a la cuenta de distribución. - - Accede a [demo-wallet.stellar.org](https://demo-wallet.stellar.org/) en tu navegador. - - Haz clic en `Generar Keypair para nueva cuenta` para crear una nueva cuenta de testnet. Tu cuenta viene con 10.000 XLM. - - Haz clic en `Enviar` e introduce la clave pública de la cuenta de distribución y la cantidad que deseas enviar. - - Usando Freighter o [Stellar Lab](https://lab.stellar.org/account/create?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&rpcUrl=https:////soroban-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;;), intercambia el XLM por USDC si deseas probar con USDC. - -## Verifica tu identidad - -Cuando se crea un desembolso, la SDP intenta enviar un mensaje a los receptores utilizando Twilio/AWS para SMS o correo electrónico, de acuerdo con el tipo de contacto asociado con el usuario. Este mensaje incluye un enlace a la aplicación de billetera seleccionada al crear el desembolso, y debe dirigir al receptor a instalar la aplicación de billetera, pasar por el flujo de incorporación de la billetera y, finalmente, registrarse en la SDP. - -:::info - -Nota que la configuración inicial tiene `SMS_SENDER_TYPE=DRY_RUN` y `EMAIL_SENDER_TYPE=DRY_RUN`, lo que significa que los mensajes serán impresos en los registros (del contenedor `sdp-api`) en lugar de ser enviados. - -Consulta la sección [Mensajes de correo electrónico y SMS](#email-and-sms-messages) para aprender cómo configurar la mensajería en la SDP. Cuando lo hagas, y se cree otro desembolso, deberías recibir un mensaje como el siguiente. - -![Verify Identity](/assets/SDP/SDP8.png) - -::: - -## Crear una cuenta receptora - -Hacer clic en el enlace del mensaje de iniciación llevará al receptor a la [demo-wallet], donde necesitarán crear una cuenta que será utilizada para recibir el pago de USDC. Sigue el mismo proceso descrito anteriormente para crear la cuenta y agregar una trustline a USDC. - -## Iniciar flujo web SEP-24 - -Ahora necesitaremos conectar la billetera demo a la instancia de la SDP que se ejecuta localmente. Para hacer esto, selecciona el ícono de lápiz junto a "centre.io" debajo de tu saldo de USDC e introduce "localhost:8080". - -En el menú desplegable 'Seleccionar Acción', selecciona 'SEP-24 Depositar' para iniciar un flujo web SEP-24, que desencadena el proceso de Registro de Usuario para vincular la nueva billetera al número de teléfono en la SDP. - -![SEP-24](/assets/SDP/SDP13.png) - -Aparecerá una ventana interactiva de SEP-24, donde el receptor puede seleccionar el tipo de información de contacto (por ejemplo, número de teléfono o correo electrónico) que está registrado para ellos en la base de datos de SDP. - -![Webflow1](/assets/SDP/SDP14.1.png) - -En la siguiente pantalla de SEP-24 el usuario debe ingresar los datos de información de contacto (número de teléfono o correo electrónico) del CSV de desembolso. - -![Webflow2](/assets/SDP/SDP14.2.png) - -A continuación, ingresa el código de acceso y el campo de verificación que utilizaste en el archivo de desembolso. Nota: usa 000000 para este ejemplo (o 999999 si quieres ver una respuesta de error). - -![Código de acceso y Cumpleaños](/assets/SDP/SDP15.png) - -El webflow proporciona un mensaje que indica tu registro exitoso, que es el desencadenante para que el SDP envíe el pago. Deberías recibir tu pago del SDP en breve. - -![Mensaje](/assets/SDP/SDP16.png) - -## Verifica tu saldo - -Actualiza tu cuenta. La Demo Wallet ahora debería mostrar un saldo de 2 USDC enviados desde el SDP (o la cantidad que se definió en el archivo CSV). - -![Éxito](/assets/SDP/SDP17.png) - -Mantén un ojo en el panel hasta que el estado del pago alcance Éxito. Si todo se configuró correctamente, tu dinero debería ser desembolsado exitosamente. - -![Desembolso](/assets/SDP/SDP18.png) - -## Siguiente: Actualización de secretos de aplicación - -Ahora que has podido hacer un desembolso, volvamos a nuestros archivos de docker compose y actualicemos algunos valores. **Este es un paso importante antes de ir a producción. Actualizaremos claves de encriptación y secretos de aplicación.** - -### Mensajes de Email y SMS - -La Stellar Disbursement Platform envía correos a los usuarios y SMS/correos a los receptores. Para mensajes SMS, la Stellar Disbursement Platform admite Twilio, AWS SNS, y un modo de prueba que solo registra los mensajes. Para correos electrónicos, admite AWS SES, Twilio SendGrid, y modo de prueba. - -Estos servicios se pueden seleccionar a través de las configuraciones `SMS_SENDER_TYPE` y `EMAIL_SENDER_TYPE`. Al seleccionar servicios de Twilio o AWS, necesitarás completar su configuración específica del servicio también. A continuación hay algunas configuraciones de ejemplo, y puedes mezclar y combinar los servicios como mejor te parezca. - -#### Configuración de Modo de Prueba - -El modo de prueba es útil para probar el SDP sin enviar mensajes reales. Registrarás los mensajes en la consola en lugar de enviarlos al receptor. Esta es la configuración predeterminada y funciona tanto para SMS como para Email. - - - -```yaml -EMAIL_SENDER_TYPE: DRY_RUN -SMS_SENDER_TYPE: DRY_RUN ``` - - - -#### Configuración de SMS de Twilio - - - -```yaml -SMS_SENDER_TYPE: TWILIO_SMS - -# Twilio specific configuration -TWILIO_ACCOUNT_SID: -TWILIO_AUTH_TOKEN: -TWILIO_SERVICE_SID: +? Select an existing run configuration or create new: +▸ Create new configuration +✔ Setup name (optional): +? Select network: +▸ testnet +? Select tenant mode: +▸ single-tenant +? Account setup: +▸ Generate new accounts +? Launch local environment now (project=sdp-sdp-test, setup=)? [Y/n] Y +? Initialize tenants and users? [y/N] Y ``` - - -#### Configuración de Email de Twilio (Send Grid) - - - -```yaml -SMS_SENDER_TYPE: TWILIO_EMAIL +Al finalizar deberías ver: -# Twilio specific configuration -TWILIO_SENDGRID_API_KEY: -TWILIO_SENDGRID_SENDER_ADDRESS: ``` - - - -#### Configuración de SMS de AWS - - - -```yaml -SMS_SENDER_TYPE: AWS_SMS - -# AWS specific configuration. -# This is needed for both AWS Email and SMS -AWS_ACCESS_KEY_ID: -AWS_REGION: -AWS_SECRET_ACCESS_KEY: - -# AWS SNS configuration -AWS_SNS_SENDER_ID: +🎉🎉🎉🎉 SUCCESS! 🎉🎉🎉🎉 +Single tenant mode - Login URL: +🔗Default tenant: http://localhost:3000 + username: owner@default.local password: Password123! ``` - - -#### Configuración de Email de AWS +### Inicia sesión en el SDP - +Abre http://localhost:3000 e inicia sesión usando las credenciales de administrador generadas por el asistente de configuración (organización: default). ![Login](/assets/SDP/SDP32.png) -```yaml -EMAIL_SENDER_TYPE: AWS_EMAIL +### Envía una distribución de prueba -# AWS specific configuration. -# This is needed for both AWS Email and SMS -AWS_ACCESS_KEY_ID: -AWS_REGION: -AWS_SECRET_ACCESS_KEY: +Haz clic en `New Disbursement +` en el panel; verás una cuenta de distribución financiada lista para usar: -# AWS SNS configuration -AWS_SES_SENDER_ID: -``` - - - -### Autenticación - -Las billeteras se autentican con la Stellar Disbursement Platform utilizando un protocolo de autenticación mutua, donde tanto el SDP como la billetera demuestran que poseen sus cuentas Stellar firmando una carga útil intercambiada entre sí. Una vez que este proceso esté completo, se proporciona un JWT a la billetera para usar en futuras solicitudes. Adicionalmente, los microservicios del SDP utilizan tokens de autenticación para comunicarse entre sí y para encriptar las contraseñas de los usuarios. Necesitamos proporcionar valores actualizados para todos estos casos de uso. - -En `docker-compose-sdp-anchor.yml`, actualiza lo siguiente: - - - -```yaml -# The public key of the Stellar account used for SEP-10 authentication: -SEP10_SIGNING_PUBLIC_KEY: -# -# The private key of the Stellar account used for SEP-10 authentication. It -# should be the same secret key for both attributes below, for the Stellar -# Disbursement Platform and Anchor Platform: -SEP10_SIGNING_PRIVATE_KEY: -SECRET_SEP10_SIGNING_SEED: -# -# The encryption key used to sign the resulting SEP-10 JWT token: -SECRET_SEP10_JWT_SECRET: -# -# A shared encryption key used to sign JWT tokens in the SEP-24 from the Anchor -# Platform to the Stellar Disbursement Platform. The value needs to be the same -# for all three attributes below: -SEP24_JWT_SECRET: -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET: -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET: -# -# A shared encryption key used to sign JWT tokens in the PlatformAPI -# communications from the Stellar Disbursement Platform to the Anchor Platform. -# The value needs to be the same for both attributes below: -ANCHOR_PLATFORM_OUTGOING_JWT_SECRET: -SECRET_PLATFORM_API_AUTH_SECRET: -# -# The private key is used to sign JWT tokens for authenticating the requests -# incoming to the Stellar Disbursement Platform. The Public key is used to -# validate that the JWT token was signed by the SDP's private key. They can be -# generated with these commands: -# openssl ecparam -name prime256v1 -genkey -noout -out ec_private_key.pem -# openssl pkcs8 -topk8 -nocrypt -in ec_private_key.pem -out ec_private_key_pkcs8.pem -# openssl ec -in ec_private_key.pem -pubout -out ec_public_key.pem -EC256_PUBLIC_KEY: -EC256_PRIVATE_KEY: -# -``` - - +- Elige número de teléfono como Tipo de Contacto de Registro. Este es el canal que los destinatarios usarán para recibir mensajes. +- Selecciona XLM como el activo para distribuir. +- Elige Demo Wallet como la billetera destinataria. +- Selecciona Fecha de Nacimiento como método de verificación; los destinatarios la ingresarán para confirmar su identidad. +- Asigna un nombre a la distribución. ![Disbursement Details](/assets/SDP/SDP33.png) -Hay muchos otros valores de configuración que actualizar al mover a un entorno de producción, como credenciales de base de datos, URLs, y más. +Crear y subir un archivo de distribución: -## Sube de nivel +- Descarga el ejemplo usando `Download CSV Template`; incluye todas las columnas requeridas. +- Actualiza los números de teléfono de marcador de posición/invalidos antes de usarlo. +- La columna de verificación contiene los datos de identidad que los destinatarios deben coincidir. ![Disbursement CSV](/assets/SDP/SDP34.png) -### Activos y Billeteras Personalizados +Haz clic en el botón Revisar. Cuando estés listo para iniciar la distribución, haz clic en el botón "Confirmar distribución". En Detalles de la Distribución verás el pago con estado `Ready`, lo que significa que el receptor aún no ha aceptado la invitación ni el pago. ![Disbursement Dashboard](/assets/SDP/SDP35.png) -El SDP contiene una lista de activos y billeteras disponibles para desembolsos listos para usar. Podrías querer personalizarlos, ya sea para limitar/ampliar opciones o para prepararte para ir en vivo en producción. Ahora que has hecho un desembolso y añadido secretos de aplicación, veamos cómo personalizar las nuevas opciones de desembolso. +### Recibir pago -#### Activos +:::note -Puedes agregar y eliminar activos fácilmente en el panel del SDP. El backend del SDP maneja la solicitud sin problemas, incluyendo la verificación del saldo pendiente y la adición/eliminación de líneas de confianza en la red Stellar. Cuando se eliminan activos, el registro se conserva en la base de datos para preservar un historial completo. Sin embargo, el activo ya no estará disponible para desembolsos o mantener un saldo en la cuenta de distribución. +Esta sección muestra el flujo de la Demo Wallet sólo en Testnet para que puedas observar la experiencia del receptor mientras ejecutas SDP localmente. Para integraciones en producción o con billeteras reales, sigue las indicaciones en [Haciendo tu billetera compatible con SDP](./making-your-wallet-sdp-ready.mdx). -Dirígete a la página de Billeteras del panel del SDP para agregar y eliminar activos. Necesitarás el código de activo Stellar y la clave pública del emisor del activo. - -:::caution +::: -Por favor asegúrate de actualizar la configuración adecuada en el lado de Anchor Platform, de acuerdo con la guía de [Puntos de Integración de Anchor Platform](anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets). +Reclama el pago en la billetera de demostración creando primero una billetera: -::: +- Abre la billetera de demo: http://localhost:4000. +- Haz clic en `Generate Keypair for new account` para crear un par de claves; guarda las claves pública y secreta si planeas reutilizar la cuenta. +- Haz clic en `Create account` para crear la cuenta en la testnet de Stellar (la cuenta inicia con 10,000 XLM). ![Demo Wallet Creation](/assets/SDP/SDP36.png) -#### Billeteras +Para recibir tu pago, inicia un depósito SEP-24: -Para una visión completa sobre cómo agregar billeteras y cómo hacer que una billetera sea compatible con SDP, consulta la guía de [Preparar Tu Billetera para SDP](making-your-wallet-sdp-ready). +- Bajo Asset XLM, haz clic en `Add Home Domain`, ingresa `localhost:8000` y haz clic en `Override`. +- En el desplegable `Select action`, elige `SEP-24 Deposit` y luego haz clic en `Start`. ![SEP-24 Deposit](/assets/SDP/SDP37.png) -### Registro de Dirección de Billetera +Verifica tu identidad: -Desde la versión [`3.0.0`](https://github.com/stellar/stellar-disbursement-platform-backend/releases/tag/3.0.0), el SDP puede pagar directamente a direcciones de billetera Stellar en lugar de dirigir a los receptores a través del flujo de registro. Esto es útil para organizaciones que están pagando a receptores que ya tienen billeteras Stellar y no necesitan crear una nueva. +- Cuando se te solicite, ingresa el mismo número de teléfono usado en el CSV de distribución. +- Completa la verificación OTP y Fecha de Nacimiento. El OTP aparece en los logs del contenedor `sdp-api` (por ejemplo, “Aquí está el código de verificación de 6 dígitos que solicitaste ...”). ![OTP Code](/assets/SDP/SDP38.png) ![PII Verification](/assets/SDP/SDP39.png) -Para usar esta función, sigue estos pasos: +### Monitoreo -1. Asegúrate de que la Billetera Administrada por el Usuario esté habilitada en la sección de Proveedores de Billetera (también disponible en [`GET /wallets`](/platforms/stellar-disbursement-platform/api-reference/get-all-wallets)). -2. Si no está habilitada, puedes actualizarla a través del panel de UI o con [`PATCH /wallets/{id}`](/platforms/stellar-disbursement-platform/api-reference/update-wallet). -3. Ahora puedes crear un desembolso y seleccionar del `dropdown de Tipo de Contacto de registro` una opción que contenga `Dirección de Billetera` en el nombre. -4. Prepara el archivo CSV de acuerdo con el [muestra de CSV](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates) asociado con tu configuración de desembolso. -5. Sube el archivo CSV y confirma el desembolso como de costumbre. El SDP enviará el pago directamente a las direcciones de billetera proporcionadas en el CSV ✅. +- En el panel del SDP, el pago cambia de `Ready` a `PENDING` durante el flujo de la billetera, luego a `Success` cuando se depositan los fondos. ![SDP Dashboard](/assets/SDP/SDP40.png) -[demo-wallet]: https://demo-wallet.stellar.org -[circle-sandbox]: https://login-sandbox.circle.com/ -[circle-sample-app]: https://sample-sandbox.circle.com/ +- En la billetera de demo, el saldo se actualiza para reflejar la nueva cantidad. ![Demo Wallet Balance](/assets/SDP/SDP41.png) diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/making-your-wallet-sdp-ready.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/making-your-wallet-sdp-ready.mdx index e16e36c9c3..2547fd1ec8 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/making-your-wallet-sdp-ready.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/making-your-wallet-sdp-ready.mdx @@ -1,6 +1,6 @@ --- title: Hacer Que Tu Billetera Sea Compatible con SDP -sidebar_position: 50 +sidebar_position: 80 --- import { CodeExample } from "@site/src/components/CodeExample"; @@ -57,12 +57,6 @@ var DefaultWalletsNetworkMap = WalletsNetworkMapType{
-:::caution - -Por favor asegúrate de actualizar la configuración apropiada en el lado de Anchor Platform, de acuerdo con la guía de [Anchor Platform Integration Points](anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets). - -::: - ## Experiencia de Registro del Destinatario La experiencia de registro del destinatario es primordial para que esta aplicación sea fluida y fácil de usar. Esto requiere que la billetera admita [deferred deep linking], que se discutirá en una sección posterior. Una buena descripción de la experiencia de registro es la siguiente: diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/monitoring.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/monitoring.mdx new file mode 100644 index 0000000000..51e7aaebd8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/monitoring.mdx @@ -0,0 +1,58 @@ +--- +title: Monitoreo +description: Guía para usar la Interfaz de Línea de Comandos de la Plataforma de Distribución Stellar +keywords: + - SDP + - CLI +sidebar_position: 70 +--- + +Esta guía explica cómo la Plataforma de Distribución Stellar (SDP) expone métricas en tiempo de ejecución y cómo conectar esas métricas con la pila Prometheus + Grafana. + +### Puntos de acceso de métricas + +Tanto la API del Panel como el Servicio de Envío de Transacciones (TSS) exponen puntos de acceso `/metrics` compatibles con Prometheus. El servidor HTTP está definido en [serve_metrics.go](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/internal/serve/serve_metrics.go) y se controla mediante las siguientes variables de entorno: + +- `METRICS_PORT` – Puerto usado por el servidor de métricas de la API del Panel (por defecto [8002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-sdp.yml)). +- `METRICS_TYPE` – Backend de monitoreo en uso (actualmente `PROMETHEUS`). +- `TSS_METRICS_PORT` – Puerto usado por el servidor de métricas del TSS (por defecto [9002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-tss.yml)). +- `TSS_METRICS_TYPE` – Backend de monitoreo para el TSS (por defecto `TSS_PROMETHEUS`). + +Cuando el servidor inicia, monta la ruta `/metrics` y muestra contadores e histogramas de solicitudes, base de datos y específicos del TSS que coinciden con los paneles de Grafana provistos en el [README de Grafana](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). + +### Pila local de Prometheus y Grafana + +Proveemos un archivo Docker Compose que inicia Prometheus y Grafana preconfigurados para obtener datos de los puntos de acceso de métricas del SDP. + +1. Desde la [raíz del repositorio](https://github.com/stellar/stellar-disbursement-platform-backend/), ejecuta: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml up -d +``` + +Esto lanza Prometheus en el puerto `9090` y Grafana en el puerto `3002` por defecto [configuración de monitoreo](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-monitoring.yml). + +2. El contenedor de Prometheus carga su configuración desde [configuración de prometheus](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml), que apunta a `host.docker.internal:8002/metrics` por defecto. Ajusta la lista `targets` si ejecutas la API en otro host o si quieres obtener métricas del TSS (`host.docker.internal:9002`). +3. Grafana usa la configuración de fuente de datos en [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml), que apunta a la instancia de Prometheus mencionada. Si ya tienes un despliegue de Prometheus existente, actualiza esta URL en consecuencia. + +Para desmontar la pila de monitoreo, ejecuta: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml down +``` + +### Cargar el panel de Grafana del SDP + +1. Navega a [http://localhost:3002](http://localhost:3002) e inicia sesión con las credenciales predeterminadas `admin` / `admin`. ![Inicio de sesión en Grafana](/assets/SDP/SDP42.png) + +2. Haz clic en el icono `+` en la barra de navegación superior (al lado del campo de búsqueda), elige `Importar panel` y pega el contenido de [Json del panel de Grafana](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/dashboard.json). ![Importar Panel](/assets/SDP/SDP43.png) + +3. Selecciona la fuente de datos `prometheus` proporcionada por [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml). ![Seleccionar Fuente de Datos](/assets/SDP/SDP44.png) + +Este panel visualiza el volumen/latencia de solicitudes HTTP, tiempos de consulta de base de datos y estadísticas de transacciones del TSS, detalles descritos en [README.md de Grafana](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). Todos los paneles pueden filtrarse por método, ruta, tenant o instancia para distinguir el tráfico entre múltiples despliegues. + +### Integración con instancias externas de Prometheus + +Si ya operas un clúster de Prometheus, añade trabajos de recolección equivalentes a los de [configuración de prometheus](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml). Cada subsistema expone métricas en `http://:/metrics` (API del Panel) y `http://:/metrics` (TSS). Las instalaciones con [Helm](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/values.yaml) exponen las mismas configuraciones mediante `sdp.configMap.data.METRICS_*` y `tss.configMap.data.TSS_METRICS_*`. Una vez que los nuevos trabajos estén presentes, puedes importar el mismo JSON del panel en tu despliegue de Grafana o adaptar las consultas PromQL a tu suite de observabilidad preferida. diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/overview.mdx index fdd2fa378d..d203b87eaf 100644 --- a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/overview.mdx @@ -1,6 +1,6 @@ --- title: Visión general -sidebar_position: 10 +sidebar_position: 5 pagination_label: "Guía de administración: Resumen" --- diff --git a/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/security.mdx b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/security.mdx new file mode 100644 index 0000000000..d4c8302c6b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/security.mdx @@ -0,0 +1,91 @@ +--- +title: Seguridad +sidebar_position: 60 +--- + +Este manual describe las medidas de seguridad implementadas en la Plataforma de Distribución Stellar (SDP) para proteger la integridad de la plataforma y sus usuarios. Al seguir estas directrices, puedes asegurar que tu uso de la SDP sea lo más seguro posible. + +La seguridad es un aspecto crítico de la SDP. Las medidas descritas en este documento están diseñadas para mitigar riesgos y mejorar la seguridad de la plataforma. Se recomienda encarecidamente a los usuarios seguir estas directrices para proteger sus cuentas y operaciones. + +### Implementación de reCAPTCHA + +El reCAPTCHA de Google ha sido integrado en la SDP para prevenir ataques automatizados y garantizar que las interacciones sean realizadas por humanos, no bots. + +reCAPTCHA está habilitado por defecto y puede desactivarse configurando la variable de entorno `DISABLE_RECAPTCHA` a `true`. + +La configuración está disponible en dos niveles: + +1. **Configuración por defecto del entorno** – Establece `DISABLE_RECAPTCHA=true` para aplicar la configuración globalmente a todos los inquilinos. +2. **Anulación a nivel de inquilino** – Cada organización puede habilitar o deshabilitar reCAPTCHA a través de su propia configuración (UI o API). Cuando está presente, la opción a nivel de inquilino anula la configuración por defecto del entorno. + +Utiliza las siguientes variables de entorno para controlar el comportamiento de reCAPTCHA: + +- `CAPTCHA_TYPE` – `GOOGLE_RECAPTCHA_V2` (predeterminado) o `GOOGLE_RECAPTCHA_V3`. +- `RECAPTCHA_SITE_KEY` – Clave del sitio de Google emitida para el tipo de CAPTCHA elegido. +- `RECAPTCHA_SITE_SECRET_KEY` – Clave secreta de Google emparejada con la clave del sitio. +- `RECAPTCHA_V3_MIN_SCORE` – Puntuación mínima permitida (0.0–1.0, predeterminado 0.5) cuando `CAPTCHA_TYPE=GOOGLE_RECAPTCHA_V3`. + +**Nota:** Deshabilitar reCAPTCHA en implementaciones de producción (pubnet) reduce sustancialmente la protección contra abusos automatizados. Esta configuración debe usarse solo cuando existan controles compensatorios equivalentes. + +### Aplicación de la Autenticación Multifactor + +La Autenticación Multifactor (MFA) proporciona una capa adicional de seguridad a las cuentas de usuario. Se aplica por defecto en la SDP y se basa en OTPs enviados al correo electrónico asociado a la cuenta. + +MFA está habilitado por defecto y puede deshabilitarse en el entorno de desarrollo configurando la variable de entorno `DISABLE_MFA` a `true`. + +**Nota:** No es posible deshabilitar MFA en entornos de producción (pubnet) debido a riesgos de seguridad. + +### Limitación de la Tasa de Solicitudes y Protecciones de Red + +La SDP aplica limitación de tasa a nivel HTTP para frenar abusos automatizados. Cada par único `` está limitado a 40 solicitudes dentro de 20 segundos (ventana deslizante). Las solicitudes que excedan este umbral recibirán respuestas limitadas hasta que la ventana se reinicie. + +### Modelos de Autenticación y Autorización + +Todas las rutas API autenticadas requieren que los clientes presenten una clave API emitida por SDP o un JWT derivado de los flujos SEP10/SEP24. Estos dos mecanismos funcionan en paralelo: los JWT son para usuarios interactivos, mientras que las claves API habilitan integraciones programáticas con su propio modelo de alcance. + +#### Roles de JWT + +Los JWT representan a usuarios humanos que inician sesión a través de la UI. Después de la autenticación, la plataforma los autoriza según los roles asignados a su cuenta de usuario. Los roles principales son: + +- **Propietario** – Control total, incluyendo la creación de usuarios, asignación de roles y edición de la configuración de la organización. El propietario es el único rol que puede otorgar o revocar acceso a otros. +- **Controlador Financiero** – Puede realizar todas las tareas operativas (monederos, activos, distribuciones, estadísticas) excepto la gestión de usuarios. Este rol es ideal para el personal financiero que ejecuta pagos. +- **Desarrollador** – Gestiona la configuración técnica como monederos, activos y claves API, y puede ver estadísticas; no puede modificar usuarios ni flujos financieros. +- **Negocios** – Solo lectura en datos del negocio (distribuciones, destinatarios, estadísticas) pero sin acceso a detalles de gestión de usuarios. +- **Iniciador** – Crea y guarda distribuciones pero no puede enviarlas. Mutuamente excluyente con el rol de Aprobador para garantizar la separación de funciones. +- **Aprobador** – Revisa y envía distribuciones pero no puede crear nuevas; mutuamente excluyente con Iniciador. + +Cada endpoint API especifica qué roles JWT pueden acceder, por ejemplo, las rutas de gestión de claves API (`/api-keys`) requieren Propietario o Desarrollador, mientras que la creación de distribuciones requiere Iniciador o Controlador Financiero y el envío requiere Aprobador o Controlador Financiero. + +#### Permisos de Claves API + +Las claves API omiten los roles JWT y, en cambio, incluyen sus propios ámbitos de permiso. Cuando una solicitud incluye una clave API, el middleware valida la clave, confirma que la dirección IP del llamante esté permitida (si está restringida), verifica la expiración y finalmente asegura que la clave contenga los ámbitos requeridos por el endpoint. Las claves API se usan típicamente para automatización e integraciones servicio a servicio donde se necesita acceso preciso de lectura/escritura; crearlas o rotarlas aún requiere un usuario con el rol JWT apropiado (Propietario o Desarrollador) para acceder a los endpoints `/api-keys`. + +Los ámbitos disponibles se asignan directamente a los principales recursos de SDP: + +- `read:all`, `write:all` +- `read:disbursements`, `write:disbursements` +- `read:receivers`, `write:receivers` +- `read:payments`, `write:payments` +- `read:organization`, `write:organization` +- `read:users`, `write:users` +- `read:wallets`, `write:wallets` +- `read:statistics` +- `read:exports` + +#### Configuración Recomendada + +Para mejorar la seguridad, las responsabilidades de distribución deben distribuirse entre varios usuarios con rol de controlador financiero. + +1. **Flujo de Aprobación**: Habilita el flujo de aprobación en la página de la organización para requerir dos usuarios en el proceso de distribución. El propietario puede hacerlo en _Perfil > Organización > ... > Editar detalles > Flujo de aprobación > Confirmar_. +2. **Rol de Controlador Financiero**: Crea dos usuarios con el rol de _Controlador Financiero_ en la página de la organización para garantizar la separación de funciones. El propietario puede hacerlo en _Configuración > Miembros del equipo_. +3. **Gestión de la Cuenta Propietaria**: Usa la cuenta Propietario solo para la gestión de usuarios y configuración de la organización. Evita usar la cuenta Propietario para tareas de controlador financiero para minimizar la exposición de esa cuenta. + +### Buenas Prácticas para la Gestión de Monederos + +El monedero de la SDP debe utilizarse principalmente como monedero caliente con una cantidad limitada de fondos para minimizar pérdidas potenciales. + +#### Monederos Calientes y Fríos + +- Un monedero caliente está conectado a internet y permite transacciones rápidas. +- Un monedero frío está desconectado y se usa para almacenar fondos de manera segura. +- Aprende más sobre estos conceptos en [Investopedia](https://www.investopedia.com/hot-wallet-vs-cold-wallet-7098461). diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json index e04d794d41..027602edbd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current.json +++ b/i18n/es/docusaurus-plugin-content-docs/current.json @@ -5,618 +5,1258 @@ }, "sidebar.build.category.Build Smart Contracts": { "message": "Desarrollar Contratos Inteligentes", - "description": "The label for category Build Smart Contracts in sidebar build" + "description": "The label for category 'Build Smart Contracts' in sidebar 'build'" }, "sidebar.build.category.Getting Started": { "message": "Comenzar", - "description": "The label for category Getting Started in sidebar build" + "description": "The label for category 'Getting Started' in sidebar 'build'" }, "sidebar.build.category.Example Contracts": { "message": "Ejemplos de Contratos", - "description": "The label for category Example Contracts in sidebar build" + "description": "The label for category 'Example Contracts' in sidebar 'build'" }, "sidebar.build.category.Build Applications": { "message": "Construir Aplicaciones", - "description": "The label for category Build Applications in sidebar build" + "description": "The label for category 'Build Applications' in sidebar 'build'" }, "sidebar.build.category.Build a Wallet with the Wallet SDK": { "message": "Construir una Billetera con el Wallet SDK", - "description": "The label for category Build a Wallet with the Wallet SDK in sidebar build" + "description": "The label for category 'Build a Wallet with the Wallet SDK' in sidebar 'build'" }, "sidebar.build.category.Build a Payment App with the JS SDK": { "message": "Construir una Aplicación de Pago con el JS SDK", - "description": "The label for category Build a Payment App with the JS SDK in sidebar build" + "description": "The label for category 'Build a Payment App with the JS SDK' in sidebar 'build'" }, "sidebar.build.category.Anchor Integration": { "message": "Integración de Anchor", - "description": "The label for category Anchor Integration in sidebar build" + "description": "The label for category 'Anchor Integration' in sidebar 'build'" }, "sidebar.build.category.Build Custom Network Ingestion Pipeline": { "message": "Construir un Pipeline de Ingesta de Red Personalizado", - "description": "The label for category Build Custom Network Ingestion Pipeline in sidebar build" + "description": "The label for category 'Build Custom Network Ingestion Pipeline' in sidebar 'build'" }, "sidebar.build.category.Build a Passkey Powered Guestbook Dapp": { "message": "Construir un Dapp de libro de visitas impulsado por Passkey", - "description": "The label for category Build a Passkey Powered Guestbook Dapp in sidebar build" + "description": "The label for category 'Build a Passkey Powered Guestbook Dapp' in sidebar 'build'" }, "sidebar.build.category.How-To Guides": { "message": "Guías Prácticas", - "description": "The label for category How-To Guides in sidebar build" + "description": "The label for category 'How-To Guides' in sidebar 'build'" }, "sidebar.build.category.Contract Conventions": { "message": "Convenciones de Contratos", - "description": "The label for category Contract Conventions in sidebar build" + "description": "The label for category 'Contract Conventions' in sidebar 'build'" }, "sidebar.build.category.Contract Events": { "message": "Eventos de Contrato", - "description": "The label for category Contract Events in sidebar build" + "description": "The label for category 'Contract Events' in sidebar 'build'" }, "sidebar.build.category.Contract Storage": { "message": "Almacenamiento de Contratos", - "description": "The label for category Contract Storage in sidebar build" + "description": "The label for category 'Contract Storage' in sidebar 'build'" }, "sidebar.build.category.Contract Testing": { "message": "Pruebas de Contrato", - "description": "The label for category Contract Testing in sidebar build" + "description": "The label for category 'Contract Testing' in sidebar 'build'" }, "sidebar.build.category.Dapp Development": { "message": "Desarrollo de Dapp", - "description": "The label for category Dapp Development in sidebar build" + "description": "The label for category 'Dapp Development' in sidebar 'build'" }, "sidebar.build.category.Fees & Metering": { "message": "Tarifas y Medición", - "description": "The label for category Fees & Metering in sidebar build" + "description": "The label for category 'Fees & Metering' in sidebar 'build'" }, "sidebar.build.category.Freighter Wallet": { "message": "Billetera Freighter", - "description": "The label for category Freighter Wallet in sidebar build" + "description": "The label for category 'Freighter Wallet' in sidebar 'build'" }, "sidebar.build.category.Stellar Basics": { "message": "Conceptos Básicos de Stellar", - "description": "The label for category Stellar Basics in sidebar build" + "description": "The label for category 'Stellar Basics' in sidebar 'build'" }, "sidebar.build.category.RPC": { "message": "RPC", - "description": "The label for category RPC in sidebar build" - }, - "sidebar.build.category.Stellar CLI": { - "message": "Stellar CLI", - "description": "The label for category Stellar CLI in sidebar build" + "description": "The label for category 'RPC' in sidebar 'build'" }, "sidebar.build.category.State Archival": { "message": "Archivado de Estado", - "description": "The label for category State Archival in sidebar build" + "description": "The label for category 'State Archival' in sidebar 'build'" }, "sidebar.build.category.Stellar Asset Contract (SAC) Tokens": { "message": "Tokens de Contrato de Activos Stellar (SAC)", - "description": "The label for category Stellar Asset Contract (SAC) Tokens in sidebar build" + "description": "The label for category 'Stellar Asset Contract (SAC) Tokens' in sidebar 'build'" }, "sidebar.build.category.Transactions": { "message": "Transacciones", - "description": "The label for category Transactions in sidebar build" + "description": "The label for category 'Transactions' in sidebar 'build'" }, "sidebar.build.category.Type Conversions": { "message": "Conversiones de Tipo", - "description": "The label for category Type Conversions in sidebar build" + "description": "The label for category 'Type Conversions' in sidebar 'build'" }, "sidebar.build.category.Security Best Practices": { "message": "Prácticas recomendadas de seguridad", - "description": "The label for category Security Best Practices in sidebar build" + "description": "The label for category 'Security Best Practices' in sidebar 'build'" }, "sidebar.build.category.Threat Modeling": { "message": "Modelado de amenazas", - "description": "The label for category Threat Modeling in sidebar build" + "description": "The label for category 'Threat Modeling' in sidebar 'build'" }, "sidebar.learn.category.Core Concepts": { "message": "Conceptos Fundamentales", - "description": "The label for category Core Concepts in sidebar learn" + "description": "The label for category 'Core Concepts' in sidebar 'learn'" }, "sidebar.learn.category.Stellar Data Structures": { "message": "Estructuras de Datos de Stellar", - "description": "The label for category Stellar Data Structures in sidebar learn" + "description": "The label for category 'Stellar Data Structures' in sidebar 'learn'" }, "sidebar.learn.category.Operations & Transactions": { "message": "Operaciones y Transacciones", - "description": "The label for category Operations & Transactions in sidebar learn" + "description": "The label for category 'Operations & Transactions' in sidebar 'learn'" }, "sidebar.learn.category.Smart Contracts": { "message": "Contratos Inteligentes", - "description": "The label for category Smart Contracts in sidebar learn" + "description": "The label for category 'Smart Contracts' in sidebar 'learn'" }, "sidebar.learn.category.Contract Interactions": { "message": "Interacciones de Contratos", - "description": "The label for category Contract Interactions in sidebar learn" + "description": "The label for category 'Contract Interactions' in sidebar 'learn'" }, "sidebar.learn.category.Types": { "message": "Tipos", - "description": "The label for category Types in sidebar learn" + "description": "The label for category 'Types' in sidebar 'learn'" }, "sidebar.learn.category.Storage": { "message": "Almacenamiento", - "description": "The label for category Storage in sidebar learn" + "description": "The label for category 'Storage' in sidebar 'learn'" }, "sidebar.learn.category.Errors and Debugging": { "message": "Errores y Depuración", - "description": "The label for category Errors and Debugging in sidebar learn" + "description": "The label for category 'Errors and Debugging' in sidebar 'learn'" }, "sidebar.learn.category.Data Format": { "message": "Formato de Datos", - "description": "The label for category Data Format in sidebar learn" - }, - "sidebar.learn.category.Encyclopedia": { - "message": "Enciclopedia", - "description": "The label for category Encyclopedia in sidebar learn" - }, - "sidebar.learn.category.Transactions (specialized)": { - "message": "Transacciones (especializadas)", - "description": "The label for category Transactions (specialized) in sidebar learn" - }, - "sidebar.learn.category.Network Configuration": { - "message": "Configuración de Red", - "description": "The label for category Network Configuration in sidebar learn" - }, - "sidebar.learn.category.SDEX": { - "message": "SDEX", - "description": "The label for category SDEX in sidebar learn" + "description": "The label for category 'Data Format' in sidebar 'learn'" }, "sidebar.learn.category.Migrate from Another Chain": { "message": "Migrar desde Otra Cadena", - "description": "The label for category Migrate from Another Chain in sidebar learn" + "description": "The label for category 'Migrate from Another Chain' in sidebar 'learn'" }, "sidebar.learn.category.EVM Networks": { "message": "Redes EVM", - "description": "The label for category EVM Networks in sidebar learn" + "description": "The label for category 'EVM Networks' in sidebar 'learn'" }, "sidebar.learn.category.Interactive Learning": { "message": "Aprendizaje Interactivo", - "description": "The label for category Interactive Learning in sidebar learn" + "description": "The label for category 'Interactive Learning' in sidebar 'learn'" }, "sidebar.data_overview.category.Analytics": { "message": "Análisis", - "description": "The label for category Analytics in sidebar data_overview" + "description": "The label for category 'Analytics' in sidebar 'data_overview'" }, "sidebar.data_overview.category.APIs": { "message": "APIs", - "description": "The label for category APIs in sidebar data_overview" + "description": "The label for category 'APIs' in sidebar 'data_overview'" }, "sidebar.data_overview.category.Indexers": { "message": "Indexadores", - "description": "The label for category Indexers in sidebar data_overview" + "description": "The label for category 'Indexers' in sidebar 'data_overview'" }, "sidebar.data_overview.category.Oracles": { "message": "Oráculos", - "description": "The label for category Oracles in sidebar data_overview" + "description": "The label for category 'Oracles' in sidebar 'data_overview'" }, "sidebar.data_overview.doc.Hubble": { "message": "Hubble", - "description": "The label for the doc item Hubble in sidebar data_overview, linking to the doc data/analytics/hubble/README" + "description": "The label for the doc item 'Hubble' in sidebar 'data_overview', linking to the doc data/analytics/hubble/README" }, "sidebar.data_overview.doc.Data Analytics Providers": { "message": "Proveedores de Análisis de Datos", - "description": "The label for the doc item Data Analytics Providers in sidebar data_overview, linking to the doc data/analytics/analytics-providers/analytics-providers" + "description": "The label for the doc item 'Data Analytics Providers' in sidebar 'data_overview', linking to the doc data/analytics/analytics-providers/analytics-providers" }, "sidebar.data_overview.doc.RPC": { "message": "RPC", - "description": "The label for the doc item RPC in sidebar data_overview, linking to the doc data/apis/rpc/README" + "description": "The label for the doc item 'RPC' in sidebar 'data_overview', linking to the doc data/apis/rpc/README" }, "sidebar.data_overview.doc.Horizon": { "message": "Horizon", - "description": "The label for the doc item Horizon in sidebar data_overview, linking to the doc data/apis/horizon/README" + "description": "The label for the doc item 'Horizon' in sidebar 'data_overview', linking to the doc data/apis/horizon/README" }, "sidebar.data_overview.doc.Migrate Horizon to RPC": { "message": "Migrar Horizon a RPC", - "description": "The label for the doc item Migrate Horizon to RPC in sidebar data_overview, linking to the doc data/apis/migrate-from-horizon-to-rpc" - }, - "sidebar.data_overview.doc.API Providers": { - "message": "Proveedores de API", - "description": "The label for the doc item API Providers in sidebar data_overview, linking to the doc data/apis/api-providers" + "description": "The label for the doc item 'Migrate Horizon to RPC' in sidebar 'data_overview', linking to the doc data/apis/migrate-from-horizon-to-rpc" }, "sidebar.data_overview.doc.Build Your Own Indexer": { "message": "Construir tu propio Indexador", - "description": "The label for the doc item Build Your Own Indexer in sidebar data_overview, linking to the doc data/indexers/build-your-own/README" + "description": "The label for the doc item 'Build Your Own Indexer' in sidebar 'data_overview', linking to the doc data/indexers/build-your-own/README" }, "sidebar.data_overview.doc.Indexer Providers": { "message": "Proveedores de Indexadores", - "description": "The label for the doc item Indexer Providers in sidebar data_overview, linking to the doc data/indexers/indexer-providers/indexer-providers" + "description": "The label for the doc item 'Indexer Providers' in sidebar 'data_overview', linking to the doc data/indexers/indexer-providers/indexer-providers" }, "sidebar.data_overview.doc.Oracle Providers": { "message": "Proveedores de Oráculos", - "description": "The label for the doc item Oracle Providers in sidebar data_overview, linking to the doc data/oracles/oracle-providers" + "description": "The label for the doc item 'Oracle Providers' in sidebar 'data_overview', linking to the doc data/oracles/oracle-providers" }, "sidebar.tools.category.SDKs": { "message": "SDKs", - "description": "The label for category SDKs in sidebar tools" + "description": "The label for category 'SDKs' in sidebar 'tools'" }, "sidebar.tools.category.Stellar CLI": { "message": "CLI de Stellar", - "description": "The label for category Stellar CLI in sidebar tools" + "description": "The label for category 'Stellar CLI' in sidebar 'tools'" }, "sidebar.tools.category.Lab": { "message": "Laboratorio", - "description": "The label for category Lab in sidebar tools" + "description": "The label for category 'Lab' in sidebar 'tools'" }, "sidebar.tools.category.API Explorer": { "message": "Explorador de API", - "description": "The label for category API Explorer in sidebar tools" + "description": "The label for category 'API Explorer' in sidebar 'tools'" }, "sidebar.tools.category.Quickstart": { "message": "Inicio Rápido", - "description": "The label for category Quickstart in sidebar tools" + "description": "The label for category 'Quickstart' in sidebar 'tools'" }, "sidebar.tools.category.Getting Started": { "message": "Comenzar", - "description": "The label for category Getting Started in sidebar tools" + "description": "The label for category 'Getting Started' in sidebar 'tools'" }, "sidebar.tools.category.Debugging": { "message": "Depuración", - "description": "The label for category Debugging in sidebar tools" + "description": "The label for category 'Debugging' in sidebar 'tools'" }, "sidebar.tools.category.Cloud Deployment": { "message": "Implementación en la nube", - "description": "The label for category Cloud Deployment in sidebar tools" + "description": "The label for category 'Cloud Deployment' in sidebar 'tools'" }, "sidebar.tools.category.Advanced Usage": { "message": "Uso Avanzado", - "description": "The label for category Advanced Usage in sidebar tools" + "description": "The label for category 'Advanced Usage' in sidebar 'tools'" }, "sidebar.tools.category.More Developer Tools": { "message": "Más herramientas de desarrollador", - "description": "The label for category More Developer Tools in sidebar tools" + "description": "The label for category 'More Developer Tools' in sidebar 'tools'" }, "sidebar.tools.category.Ramps": { "message": "Rampas", - "description": "The label for category Ramps in sidebar tools" + "description": "The label for category 'Ramps' in sidebar 'tools'" }, "sidebar.tools.category.Infrastructure Tools": { "message": "Herramientas de Infraestructura", - "description": "The label for category Infrastructure Tools in sidebar tools" + "description": "The label for category 'Infrastructure Tools' in sidebar 'tools'" }, "sidebar.tools.link.Anchor Platform": { "message": "Anchor Platform", - "description": "The label for link Anchor Platform in sidebar tools, linking to /platforms/anchor-platform" + "description": "The label for link 'Anchor Platform' in sidebar 'tools', linking to '/docs/platforms/anchor-platform'" }, "sidebar.tools.link.Stellar Disbursement Platform": { "message": "Stellar Disbursement Platform", - "description": "The label for link Stellar Disbursement Platform in sidebar tools, linking to /platforms/stellar-disbursement-platform" + "description": "The label for link 'Stellar Disbursement Platform' in sidebar 'tools', linking to '/docs/platforms/stellar-disbursement-platform'" }, "sidebar.validators.category.Admin Guide": { "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar validators" + "description": "The label for category 'Admin Guide' in sidebar 'validators'" }, "sidebar.hubble.category.Hubble": { "message": "Hubble", - "description": "The label for category Hubble in sidebar hubble" + "description": "The label for category 'Hubble' in sidebar 'hubble'" }, "sidebar.hubble.category.Analyst Guide": { "message": "Guía para Analistas", - "description": "The label for category Analyst Guide in sidebar hubble" + "description": "The label for category 'Analyst Guide' in sidebar 'hubble'" }, "sidebar.hubble.category.Developer Guide": { "message": "Guía del Desarrollador", - "description": "The label for category Developer Guide in sidebar hubble" + "description": "The label for category 'Developer Guide' in sidebar 'hubble'" }, "sidebar.hubble.category.Backfill": { "message": "Rellenar", - "description": "The label for category Backfill in sidebar hubble" + "description": "The label for category 'Backfill' in sidebar 'hubble'" }, "sidebar.hubble.category.Source System Ingestion": { "message": "Ingesta de Sistemas Fuente", - "description": "The label for category Source System Ingestion in sidebar hubble" + "description": "The label for category 'Source System Ingestion' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Curation": { "message": "Curación de Datos", - "description": "The label for category Data Curation in sidebar hubble" + "description": "The label for category 'Data Curation' in sidebar 'hubble'" }, "sidebar.hubble.category.Visualization": { "message": "Visualización", - "description": "The label for category Visualization in sidebar hubble" + "description": "The label for category 'Visualization' in sidebar 'hubble'" }, "sidebar.hubble.category.Scheduling and Orchestration": { "message": "Programación y Orquestación", - "description": "The label for category Scheduling and Orchestration in sidebar hubble" + "description": "The label for category 'Scheduling and Orchestration' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Catalog": { "message": "Catálogo de Datos", - "description": "The label for category Data Catalog in sidebar hubble" + "description": "The label for category 'Data Catalog' in sidebar 'hubble'" }, "sidebar.hubble.category.Data Dictionary": { "message": "Diccionario de Datos", - "description": "The label for category Data Dictionary in sidebar hubble" + "description": "The label for category 'Data Dictionary' in sidebar 'hubble'" }, "sidebar.galexie.category.Galexie": { "message": "Galexie", - "description": "The label for category Galexie in sidebar galexie" + "description": "The label for category 'Galexie' in sidebar 'galexie'" }, "sidebar.galexie.category.Admin Guide": { "message": "Guía del Administrador", - "description": "The label for category Admin Guide in sidebar galexie" - }, - "sidebar.galexie.category.Example Usages": { - "message": "Ejemplos de Uso", - "description": "The label for category Example Usages in sidebar galexie" + "description": "The label for category 'Admin Guide' in sidebar 'galexie'" }, "sidebar.ingest.category.Ingest SDK": { "message": "SDK de Ingesta", - "description": "The label for category Ingest SDK in sidebar ingest" + "description": "The label for category 'Ingest SDK' in sidebar 'ingest'" }, "sidebar.ingest.category.Developer Guide": { "message": "Guía del Desarrollador", - "description": "The label for category Developer Guide in sidebar ingest" + "description": "The label for category 'Developer Guide' in sidebar 'ingest'" }, "sidebar.ingest.category.Ledger Backends": { "message": "Backends de Ledger", - "description": "The label for category Ledger Backends in sidebar ingest" - }, - "sidebar.ingest.category.Example Usages": { - "message": "Ejemplos de Uso", - "description": "The label for category Example Usages in sidebar ingest" + "description": "The label for category 'Ledger Backends' in sidebar 'ingest'" }, "sidebar.soroban_rpc.category.Stellar RPC": { "message": "RPC Stellar", - "description": "The label for category Stellar RPC in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.Admin Guide": { - "message": "Guía de administración", - "description": "The label for category Admin Guide in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.API Reference": { - "message": "Referencia de API", - "description": "The label for category API Reference in sidebar soroban_rpc" + "description": "The label for category 'Stellar RPC' in sidebar 'soroban_rpc'" }, "sidebar.soroban_rpc.category.Methods": { "message": "Métodos", - "description": "The label for category Methods in sidebar soroban_rpc" - }, - "sidebar.soroban_rpc.category.Structure": { - "message": "Estructura", - "description": "The label for category Structure in sidebar soroban_rpc" + "description": "The label for category 'Methods' in sidebar 'soroban_rpc'" }, "sidebar.analytics.category.Analytics": { "message": "Análisis", - "description": "The label for category Analytics in sidebar analytics" + "description": "The label for category 'Analytics' in sidebar 'analytics'" }, "sidebar.analytics.category.Hubble": { "message": "Hubble", - "description": "The label for category Hubble in sidebar analytics" + "description": "The label for category 'Hubble' in sidebar 'analytics'" }, "sidebar.analytics.category.Analyst Guide": { "message": "Guía para Analistas", - "description": "The label for category Analyst Guide in sidebar analytics" + "description": "The label for category 'Analyst Guide' in sidebar 'analytics'" }, "sidebar.analytics.category.Developer Guide": { "message": "Guía para Desarrolladores", - "description": "The label for category Developer Guide in sidebar analytics" + "description": "The label for category 'Developer Guide' in sidebar 'analytics'" }, "sidebar.analytics.category.Backfill": { "message": "Relleno", - "description": "The label for category Backfill in sidebar analytics" + "description": "The label for category 'Backfill' in sidebar 'analytics'" }, "sidebar.analytics.category.Source System Ingestion": { "message": "Ingesta del Sistema de Origen", - "description": "The label for category Source System Ingestion in sidebar analytics" + "description": "The label for category 'Source System Ingestion' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Curation": { "message": "Curaduría de Datos", - "description": "The label for category Data Curation in sidebar analytics" + "description": "The label for category 'Data Curation' in sidebar 'analytics'" }, "sidebar.analytics.category.Visualization": { "message": "Visualización", - "description": "The label for category Visualization in sidebar analytics" + "description": "The label for category 'Visualization' in sidebar 'analytics'" }, "sidebar.analytics.category.Scheduling and Orchestration": { "message": "Programación y Orquestación", - "description": "The label for category Scheduling and Orchestration in sidebar analytics" + "description": "The label for category 'Scheduling and Orchestration' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Catalog": { "message": "Catálogo de Datos", - "description": "The label for category Data Catalog in sidebar analytics" + "description": "The label for category 'Data Catalog' in sidebar 'analytics'" }, "sidebar.analytics.category.Data Dictionary": { "message": "Diccionario de Datos", - "description": "The label for category Data Dictionary in sidebar analytics" + "description": "The label for category 'Data Dictionary' in sidebar 'analytics'" }, "sidebar.apis.category.APIs": { "message": "APIs", - "description": "The label for category APIs in sidebar apis" + "description": "The label for category 'APIs' in sidebar 'apis'" }, "sidebar.apis.category.RPC": { "message": "RPC", - "description": "The label for category RPC in sidebar apis" - }, - "sidebar.apis.category.Admin Guide": { - "message": "Guía Administrativa", - "description": "The label for category Admin Guide in sidebar apis" - }, - "sidebar.apis.category.API Reference": { - "message": "Referencia de APIs", - "description": "The label for category API Reference in sidebar apis" + "description": "The label for category 'RPC' in sidebar 'apis'" }, "sidebar.apis.category.Methods": { "message": "Métodos", - "description": "The label for category Methods in sidebar apis" - }, - "sidebar.apis.category.Structure": { - "message": "Estructura", - "description": "The label for category Structure in sidebar apis" + "description": "The label for category 'Methods' in sidebar 'apis'" }, "sidebar.apis.category.Horizon": { "message": "Horizon", - "description": "The label for category Horizon in sidebar apis" + "description": "The label for category 'Horizon' in sidebar 'apis'" }, "sidebar.apis.category.Resources": { "message": "Recursos", - "description": "The label for category Resources in sidebar apis" + "description": "The label for category 'Resources' in sidebar 'apis'" }, "sidebar.apis.category.Accounts": { "message": "Cuentas", - "description": "The label for category Accounts in sidebar apis" + "description": "The label for category 'Accounts' in sidebar 'apis'" }, "sidebar.apis.category.Assets": { "message": "Activos", - "description": "The label for category Assets in sidebar apis" + "description": "The label for category 'Assets' in sidebar 'apis'" }, "sidebar.apis.category.Claimable Balances": { "message": "Saldos Reclamables", - "description": "The label for category Claimable Balances in sidebar apis" + "description": "The label for category 'Claimable Balances' in sidebar 'apis'" }, "sidebar.apis.category.Effects": { "message": "Efectos", - "description": "The label for category Effects in sidebar apis" + "description": "The label for category 'Effects' in sidebar 'apis'" }, "sidebar.apis.category.Ledgers": { "message": "Ledgers", - "description": "The label for category Ledgers in sidebar apis" + "description": "The label for category 'Ledgers' in sidebar 'apis'" }, "sidebar.apis.category.Liquidity Pools": { "message": "Fondos de Liquidez", - "description": "The label for category Liquidity Pools in sidebar apis" + "description": "The label for category 'Liquidity Pools' in sidebar 'apis'" }, "sidebar.apis.category.Offers": { "message": "Ofertas", - "description": "The label for category Offers in sidebar apis" + "description": "The label for category 'Offers' in sidebar 'apis'" }, "sidebar.apis.category.Operations": { "message": "Operaciones", - "description": "The label for category Operations in sidebar apis" + "description": "The label for category 'Operations' in sidebar 'apis'" }, "sidebar.apis.category.The Operation Object": { "message": "El Objeto de Operación", - "description": "The label for category The Operation Object in sidebar apis" + "description": "The label for category 'The Operation Object' in sidebar 'apis'" }, "sidebar.apis.category.Payments": { "message": "Pagos", - "description": "The label for category Payments in sidebar apis" + "description": "The label for category 'Payments' in sidebar 'apis'" }, "sidebar.apis.category.Trades": { "message": "Operaciones de Comercio", - "description": "The label for category Trades in sidebar apis" + "description": "The label for category 'Trades' in sidebar 'apis'" }, "sidebar.apis.category.Transactions": { "message": "Transacciones", - "description": "The label for category Transactions in sidebar apis" + "description": "The label for category 'Transactions' in sidebar 'apis'" }, "sidebar.apis.category.Pagination": { "message": "Paginación", - "description": "The label for category Pagination in sidebar apis" + "description": "The label for category 'Pagination' in sidebar 'apis'" }, "sidebar.apis.category.Aggregations": { "message": "Agregaciones", - "description": "The label for category Aggregations in sidebar apis" + "description": "The label for category 'Aggregations' in sidebar 'apis'" }, "sidebar.apis.category.Order Books": { "message": "Libros de Órdenes", - "description": "The label for category Order Books in sidebar apis" + "description": "The label for category 'Order Books' in sidebar 'apis'" }, "sidebar.apis.category.Paths": { "message": "Rutas", - "description": "The label for category Paths in sidebar apis" + "description": "The label for category 'Paths' in sidebar 'apis'" }, "sidebar.apis.category.Trade Aggregations": { "message": "Agregaciones de Comercio", - "description": "The label for category Trade Aggregations in sidebar apis" + "description": "The label for category 'Trade Aggregations' in sidebar 'apis'" }, "sidebar.apis.category.Fee Stats": { "message": "Estadísticas de Tarifas", - "description": "The label for category Fee Stats in sidebar apis" + "description": "The label for category 'Fee Stats' in sidebar 'apis'" }, "sidebar.apis.category.Errors": { "message": "Errores", - "description": "The label for category Errors in sidebar apis" + "description": "The label for category 'Errors' in sidebar 'apis'" }, "sidebar.apis.category.HTTP Status Codes": { "message": "Códigos de Estado HTTP", - "description": "The label for category HTTP Status Codes in sidebar apis" + "description": "The label for category 'HTTP Status Codes' in sidebar 'apis'" }, "sidebar.apis.category.Horizon-Specific Status Codes": { "message": "Códigos de Estado Específicos de Horizon", - "description": "The label for category Horizon-Specific Status Codes in sidebar apis" + "description": "The label for category 'Horizon-Specific Status Codes' in sidebar 'apis'" }, "sidebar.apis.category.Result Codes": { "message": "Códigos de Resultado", - "description": "The label for category Result Codes in sidebar apis" + "description": "The label for category 'Result Codes' in sidebar 'apis'" }, "sidebar.apis.category.Operation-Specific Result Codes": { "message": "Códigos de Resultado Específicos de Operación", - "description": "The label for category Operation-Specific Result Codes in sidebar apis" + "description": "The label for category 'Operation-Specific Result Codes' in sidebar 'apis'" }, "sidebar.indexers.category.Indexers": { "message": "Indexadores", - "description": "The label for category Indexers in sidebar indexers" + "description": "The label for category 'Indexers' in sidebar 'indexers'" }, "sidebar.indexers.category.Build Your Own Indexer": { "message": "Construir Tu Propio Indexador", - "description": "The label for category Build Your Own Indexer in sidebar indexers" + "description": "The label for category 'Build Your Own Indexer' in sidebar 'indexers'" }, "sidebar.indexers.category.Galexie": { "message": "Galexie", - "description": "The label for category Galexie in sidebar indexers" + "description": "The label for category 'Galexie' in sidebar 'indexers'" }, "sidebar.indexers.category.Admin Guide": { "message": "Guía Administrativa", - "description": "The label for category Admin Guide in sidebar indexers" - }, - "sidebar.indexers.category.Example Usages": { - "message": "Ejemplos de Uso", - "description": "The label for category Example Usages in sidebar indexers" + "description": "The label for category 'Admin Guide' in sidebar 'indexers'" }, "sidebar.indexers.category.Ingest SDK": { "message": "SDK de Ingesta", - "description": "The label for category Ingest SDK in sidebar indexers" + "description": "The label for category 'Ingest SDK' in sidebar 'indexers'" }, "sidebar.indexers.category.Developer Guide": { "message": "Guía del Desarrollador", - "description": "The label for category Developer Guide in sidebar indexers" + "description": "The label for category 'Developer Guide' in sidebar 'indexers'" }, "sidebar.indexers.category.Ledger Backends": { "message": "Backends de Ledger", - "description": "The label for category Ledger Backends in sidebar indexers" + "description": "The label for category 'Ledger Backends' in sidebar 'indexers'" }, "sidebar.oracles.category.Oracles": { "message": "Oráculos", - "description": "The label for category Oracles in sidebar oracles" + "description": "The label for category 'Oracles' in sidebar 'oracles'" }, "sidebar.build.category.Contract Authorization": { "message": "Autorización de Contrato", - "description": "The label for category Contract Authorization in sidebar build" + "description": "The label for category 'Contract Authorization' in sidebar 'build'" }, "sidebar.tools.category.Smart Contracts": { "message": "Contratos inteligentes", - "description": "The label for category Smart Contracts in sidebar tools" + "description": "The label for category 'Smart Contracts' in sidebar 'tools'" }, "sidebar.indexers.category.Processors": { "message": "Procesadores", - "description": "The label for category Processors in sidebar indexers" + "description": "The label for category 'Processors' in sidebar 'indexers'" }, "sidebar.indexers.category.Token Transfer Processor": { "message": "Procesador de Transferencia de Tokens", - "description": "The label for category Token Transfer Processor in sidebar indexers" + "description": "The label for category 'Token Transfer Processor' in sidebar 'indexers'" }, "sidebar.tools.category.Cookbook": { "message": "Libro de recetas", - "description": "The label for category Cookbook in sidebar tools" + "description": "The label for category 'Cookbook' in sidebar 'tools'" + }, + "sidebar.tools.category.Saved": { + "message": "Guardado", + "description": "The label for category 'Saved' in sidebar 'tools'" + }, + "sidebar.tools.category.View XDR": { + "message": "Ver XDR", + "description": "The label for category 'View XDR' in sidebar 'tools'" }, "sidebar.hubble.category.Bronze 🥉": { "message": "Bronce 🥉", - "description": "The label for category Bronze 🥉 in sidebar hubble" + "description": "The label for category 'Bronze 🥉' in sidebar 'hubble'" }, "sidebar.hubble.category.Silver 🥈": { "message": "Plata 🥈", - "description": "The label for category Silver 🥈 in sidebar hubble" + "description": "The label for category 'Silver 🥈' in sidebar 'hubble'" }, "sidebar.hubble.category.Gold 🥇": { "message": "Oro 🥇", - "description": "The label for category Gold 🥇 in sidebar hubble" + "description": "The label for category 'Gold 🥇' in sidebar 'hubble'" }, "sidebar.analytics.category.Bronze 🥉": { "message": "Bronce 🥉", - "description": "The label for category Bronze 🥉 in sidebar analytics" + "description": "The label for category 'Bronze 🥉' in sidebar 'analytics'" }, "sidebar.analytics.category.Silver 🥈": { "message": "Plata 🥈", - "description": "The label for category Silver 🥈 in sidebar analytics" + "description": "The label for category 'Silver 🥈' in sidebar 'analytics'" }, "sidebar.analytics.category.Gold 🥇": { "message": "Oro 🥇", - "description": "The label for category Gold 🥇 in sidebar analytics" + "description": "The label for category 'Gold 🥇' in sidebar 'analytics'" + }, + "sidebar.galexie.category.galexie-example-usages": { + "message": "Usos de ejemplo", + "description": "The label for category 'Example Usages' in sidebar 'galexie'" + }, + "sidebar.ingest.category.ingest-sdk-example-usages": { + "message": "Usos de ejemplo", + "description": "The label for category 'Example Usages' in sidebar 'ingest'" + }, + "sidebar.soroban_rpc.category.rpc-admin-guide": { + "message": "Guía del administrador", + "description": "The label for category 'Admin Guide' in sidebar 'soroban_rpc'" + }, + "sidebar.soroban_rpc.category.rpc-api-reference": { + "message": "Referencia de la API", + "description": "The label for category 'API Reference' in sidebar 'soroban_rpc'" + }, + "sidebar.soroban_rpc.category.rpc-api-structure": { + "message": "Estructura", + "description": "The label for category 'Structure' in sidebar 'soroban_rpc'" + }, + "sidebar.apis.category.rpc-admin-guide": { + "message": "Guía del administrador", + "description": "The label for category 'Admin Guide' in sidebar 'apis'" + }, + "sidebar.apis.category.rpc-api-reference": { + "message": "Referencia de la API", + "description": "The label for category 'API Reference' in sidebar 'apis'" + }, + "sidebar.apis.category.rpc-api-structure": { + "message": "Estructura", + "description": "The label for category 'Structure' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-admin-guide": { + "message": "Guía del administrador", + "description": "The label for category 'Admin Guide' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-api-reference": { + "message": "Referencia de la API", + "description": "The label for category 'API Reference' in sidebar 'apis'" + }, + "sidebar.apis.category.horizon-api-structure": { + "message": "Estructura", + "description": "The label for category 'Structure' in sidebar 'apis'" + }, + "sidebar.indexers.category.galexie-example-usages": { + "message": "Usos de ejemplo", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.indexers.category.ingest-sdk-example-usages": { + "message": "Usos de ejemplo", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.indexers.category.token-transfer-processor-example-usages": { + "message": "Usos de ejemplo", + "description": "The label for category 'Example Usages' in sidebar 'indexers'" + }, + "sidebar.anchor_platform.category.Anchor Platform": { + "message": "Anchor Platform", + "description": "The label for category 'Anchor Platform' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Admin Guide": { + "message": "Guía de administración", + "description": "The label for category 'Admin Guide' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Event Handling": { + "message": "Manejo de eventos", + "description": "The label for category 'Event Handling' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.API Reference": { + "message": "Referencia de API", + "description": "The label for category 'API Reference' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Platform Server": { + "message": "Servidor de plataforma", + "description": "The label for category 'Platform Server' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Transactions": { + "message": "Transacciones", + "description": "The label for category 'Transactions' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.JSON-RPC API": { + "message": "API JSON-RPC", + "description": "The label for category 'JSON-RPC API' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Methods": { + "message": "Métodos", + "description": "The label for category 'Methods' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Callbacks Server": { + "message": "Servidor de callbacks", + "description": "The label for category 'Callbacks Server' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.SEP Guides": { + "message": "Guías SEP", + "description": "The label for category 'SEP Guides' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Programmatic Deposits and Withdrawals (SEP-6)": { + "message": "Depósitos y retiradas de fondos programáticos (SEP-6)", + "description": "The label for category 'Programmatic Deposits and Withdrawals (SEP-6)' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Hosted Deposits and Withdrawals (SEP-24)": { + "message": "Depósitos y retiradas de fondos alojados (SEP-24)", + "description": "The label for category 'Hosted Deposits and Withdrawals (SEP-24)' in sidebar 'anchor_platform'" + }, + "sidebar.anchor_platform.category.Cross-Border Payments (SEP-31)": { + "message": "Pagos transnacionales (SEP-31)", + "description": "The label for category 'Cross-Border Payments (SEP-31)' in sidebar 'anchor_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Stellar Disbursement Platform": { + "message": "Stellar Disbursement Platform", + "description": "The label for category 'Stellar Disbursement Platform' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin Guide": { + "message": "Guía de administración", + "description": "The label for category 'Admin Guide' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin Guide.link.generated-index.description": { + "message": "Todo lo que necesitas saber sobre cómo configurar, ejecutar y usar la Stellar Disbursement Platform.", + "description": "The generated-index page description for category 'Admin Guide' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.User Interface": { + "message": "Interfaz de usuario", + "description": "The label for category 'User Interface' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Reference": { + "message": "Referencia de API", + "description": "The label for category 'API Reference' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Reference.link.generated-index.description": { + "message": "Consulta toda la información del API de la Stellar Disbursement Platform.", + "description": "The generated-index page description for category 'API Reference' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Admin (Tenant Management)": { + "message": "Administración (gestión de inquilinos)", + "description": "The label for category 'Admin (Tenant Management)' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Authentication": { + "message": "Autenticación", + "description": "The label for category 'Authentication' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.API Keys": { + "message": "Claves API", + "description": "The label for category 'API Keys' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Balances": { + "message": "Saldos", + "description": "The label for category 'Balances' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Bridge Integration": { + "message": "Integración de puente", + "description": "The label for category 'Bridge Integration' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Disbursements": { + "message": "Desembolsos", + "description": "The label for category 'Disbursements' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Organization": { + "message": "Organización", + "description": "The label for category 'Organization' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Payments": { + "message": "Pagos", + "description": "The label for category 'Payments' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Profile": { + "message": "Perfil", + "description": "The label for category 'Profile' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Receivers": { + "message": "Receptores", + "description": "The label for category 'Receivers' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Registration": { + "message": "Registro", + "description": "The label for category 'Registration' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Statistics": { + "message": "Estadísticas", + "description": "The label for category 'Statistics' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Users": { + "message": "Usuarios", + "description": "The label for category 'Users' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Exports": { + "message": "Exportaciones", + "description": "The label for category 'Exports' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.category.Wallets": { + "message": "Billeteras", + "description": "The label for category 'Wallets' in sidebar 'stellar_disbursement_platform'" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Tenants": { + "message": "Obtener todos los inquilinos", + "description": "The label for the doc item 'Get All Tenants' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-tenants" + }, + "sidebar.stellar_disbursement_platform.doc.Create Tenant": { + "message": "Crear inquilino", + "description": "The label for the doc item 'Create Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Tenant": { + "message": "Recuperar un inquilino", + "description": "The label for the doc item 'Retrieve a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Soft delete a Tenant": { + "message": "Eliminar un inquilino suavemente", + "description": "The label for the doc item 'Soft delete a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Tenant": { + "message": "Actualizar un inquilino", + "description": "The label for the doc item 'Update a Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-a-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Default Tenant": { + "message": "Inquilino predeterminado", + "description": "The label for the doc item 'Default Tenant' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/default-tenant" + }, + "sidebar.stellar_disbursement_platform.doc.Log In": { + "message": "Iniciar sesión", + "description": "The label for the doc item 'Log In' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/log-in" + }, + "sidebar.stellar_disbursement_platform.doc.Refresh Token": { + "message": "Actualizar token", + "description": "The label for the doc item 'Refresh Token' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/refresh-token" + }, + "sidebar.stellar_disbursement_platform.doc.Provide Multi-Factor Authentication": { + "message": "Proporcionar autenticación multifactor", + "description": "The label for the doc item 'Provide Multi-Factor Authentication' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/authenticate-mfa" + }, + "sidebar.stellar_disbursement_platform.doc.Forgot Password": { + "message": "Olvidar contraseña", + "description": "The label for the doc item 'Forgot Password' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/forgot-password" + }, + "sidebar.stellar_disbursement_platform.doc.Reset Rassword": { + "message": "Restablecer contraseña", + "description": "The label for the doc item 'Reset Rassword' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/reset-password" + }, + "sidebar.stellar_disbursement_platform.doc.List API Keys": { + "message": "Listar claves API", + "description": "The label for the doc item 'List API Keys' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-api-keys" + }, + "sidebar.stellar_disbursement_platform.doc.Create API Key": { + "message": "Crear clave API", + "description": "The label for the doc item 'Create API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Get API Key Details": { + "message": "Obtener detalles de clave API", + "description": "The label for the doc item 'Get API Key Details' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Update API Key": { + "message": "Actualizar clave API", + "description": "The label for the doc item 'Update API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Delete API Key": { + "message": "Eliminar clave API", + "description": "The label for the doc item 'Delete API Key' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-api-key" + }, + "sidebar.stellar_disbursement_platform.doc.Get Organization (Circle) Balances": { + "message": "Obtener saldos de la organización (Circle)", + "description": "The label for the doc item 'Get Organization (Circle) Balances' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances" + }, + "sidebar.stellar_disbursement_platform.doc.Get Bridge Integration Status": { + "message": "Obtener estado de integración del puente", + "description": "The label for the doc item 'Get Bridge Integration Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-bridge-integration" + }, + "sidebar.stellar_disbursement_platform.doc.Update Bridge Integration Status": { + "message": "Actualizar estado de integración del puente", + "description": "The label for the doc item 'Update Bridge Integration Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-bridge-integration" + }, + "sidebar.stellar_disbursement_platform.doc.List All Disbursements": { + "message": "Listar todos los desembolsos", + "description": "The label for the doc item 'List All Disbursements' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-disbursements" + }, + "sidebar.stellar_disbursement_platform.doc.Create Disbursement": { + "message": "Crear desembolso", + "description": "The label for the doc item 'Create Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Disbursement": { + "message": "Recuperar un desembolso", + "description": "The label for the doc item 'Retrieve a Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.Deletes a Draft Disbursement": { + "message": "Eliminar un desembolso en borrador", + "description": "The label for the doc item 'Deletes a Draft Disbursement' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement" + }, + "sidebar.stellar_disbursement_platform.doc.List All Disbursement Receivers": { + "message": "Listar todos los receptores de desembolsos", + "description": "The label for the doc item 'List All Disbursement Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers" + }, + "sidebar.stellar_disbursement_platform.doc.Download Disbursement Instructions": { + "message": "Descargar instrucciones de desembolso", + "description": "The label for the doc item 'Download Disbursement Instructions' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions" + }, + "sidebar.stellar_disbursement_platform.doc.Upload Disbursement Instructions": { + "message": "Subir instrucciones de desembolso", + "description": "The label for the doc item 'Upload Disbursement Instructions' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Disbursement Status": { + "message": "Actualizar estado de desembolso", + "description": "The label for the doc item 'Update a Disbursement Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status" + }, + "sidebar.stellar_disbursement_platform.doc.Get Organization Info": { + "message": "Obtener información de la organización", + "description": "The label for the doc item 'Get Organization Info' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-info" + }, + "sidebar.stellar_disbursement_platform.doc.Update Organization Profile": { + "message": "Actualizar perfil de la organización", + "description": "The label for the doc item 'Update Organization Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-organization-profile" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Organization Logo": { + "message": "Recuperar logo de la organización", + "description": "The label for the doc item 'Retrieve Organization Logo' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-organization-logo" + }, + "sidebar.stellar_disbursement_platform.doc.Circle Account Setup": { + "message": "Configuración de cuenta Circle", + "description": "The label for the doc item 'Circle Account Setup' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/patch-organization-circle" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Assets": { + "message": "Obtener todos los activos", + "description": "The label for the doc item 'Get All Assets' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-assets" + }, + "sidebar.stellar_disbursement_platform.doc.Create Asset": { + "message": "Crear activo", + "description": "The label for the doc item 'Create Asset' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-asset" + }, + "sidebar.stellar_disbursement_platform.doc.Delete Asset": { + "message": "Eliminar activo", + "description": "The label for the doc item 'Delete Asset' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/delete-asset" + }, + "sidebar.stellar_disbursement_platform.doc.List All Payments": { + "message": "Listar todos los pagos", + "description": "The label for the doc item 'List All Payments' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-payments" + }, + "sidebar.stellar_disbursement_platform.doc.Create Direct Payment": { + "message": "Crear pago directo", + "description": "The label for the doc item 'Create Direct Payment' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-direct-payment" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Payment": { + "message": "Recuperar un pago", + "description": "The label for the doc item 'Retrieve a Payment' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment" + }, + "sidebar.stellar_disbursement_platform.doc.Get Profile": { + "message": "Obtener perfil", + "description": "The label for the doc item 'Get Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-profile" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Profile": { + "message": "Actualizar perfil de usuario", + "description": "The label for the doc item 'Update User Profile' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-profile" + }, + "sidebar.stellar_disbursement_platform.doc.List All Receivers": { + "message": "Listar todos los receptores", + "description": "The label for the doc item 'List All Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/list-all-receivers" + }, + "sidebar.stellar_disbursement_platform.doc.Create Receiver": { + "message": "Crear receptor", + "description": "The label for the doc item 'Create Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve a Receiver": { + "message": "Recuperar un receptor", + "description": "The label for the doc item 'Retrieve a Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Update a Receiver": { + "message": "Actualizar un receptor", + "description": "The label for the doc item 'Update a Receiver' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-receiver" + }, + "sidebar.stellar_disbursement_platform.doc.Start Wallet Registration": { + "message": "Iniciar registro de billetera", + "description": "The label for the doc item 'Start Wallet Registration' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/start-wallet-registration" + }, + "sidebar.stellar_disbursement_platform.doc.Send One-Time Passcode": { + "message": "Enviar código de un solo uso", + "description": "The label for the doc item 'Send One-Time Passcode' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode" + }, + "sidebar.stellar_disbursement_platform.doc.Verify Receiver Registration": { + "message": "Verificar registro de receptor", + "description": "The label for the doc item 'Verify Receiver Registration' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Stellar Info File": { + "message": "Recuperar archivo de información Stellar", + "description": "The label for the doc item 'Retrieve Stellar Info File' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file" + }, + "sidebar.stellar_disbursement_platform.doc.Request Challenge Transaction": { + "message": "Solicitar transacción de desafío", + "description": "The label for the doc item 'Request Challenge Transaction' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction" + }, + "sidebar.stellar_disbursement_platform.doc.Provide Signed Challenge Transaction": { + "message": "Proporcionar transacción de desafío firmada", + "description": "The label for the doc item 'Provide Signed Challenge Transaction' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction" + }, + "sidebar.stellar_disbursement_platform.doc.Request Registration URL": { + "message": "Solicitar URL de registro", + "description": "The label for the doc item 'Request Registration URL' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/request-registration-url" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve All Statistics": { + "message": "Recuperar todas las estadísticas", + "description": "The label for the doc item 'Retrieve All Statistics' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics" + }, + "sidebar.stellar_disbursement_platform.doc.Retrieve Disbursement Statistics": { + "message": "Recuperar estadísticas de desembolso", + "description": "The label for the doc item 'Retrieve Disbursement Statistics' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Users": { + "message": "Obtener todos los usuarios", + "description": "The label for the doc item 'Get All Users' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-users" + }, + "sidebar.stellar_disbursement_platform.doc.Create User": { + "message": "Crear usuario", + "description": "The label for the doc item 'Create User' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-user" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Activation Status": { + "message": "Actualizar estado de activación de usuario", + "description": "The label for the doc item 'Update User Activation Status' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-activation-status" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Roles": { + "message": "Obtener todos los roles", + "description": "The label for the doc item 'Get All Roles' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-roles" + }, + "sidebar.stellar_disbursement_platform.doc.Update User Role": { + "message": "Actualizar rol de usuario", + "description": "The label for the doc item 'Update User Role' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-user-role" + }, + "sidebar.stellar_disbursement_platform.doc.Export Disbursements": { + "message": "Exportar desembolsos", + "description": "The label for the doc item 'Export Disbursements' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-disbursements" + }, + "sidebar.stellar_disbursement_platform.doc.Export Payments": { + "message": "Exportar pagos", + "description": "The label for the doc item 'Export Payments' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-payments-csv" + }, + "sidebar.stellar_disbursement_platform.doc.Export Receivers": { + "message": "Exportar receptores", + "description": "The label for the doc item 'Export Receivers' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/export-receivers-csv" + }, + "sidebar.stellar_disbursement_platform.doc.Get All Wallets": { + "message": "Obtener todas las billeteras", + "description": "The label for the doc item 'Get All Wallets' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/get-all-wallets" + }, + "sidebar.stellar_disbursement_platform.doc.Create Wallet": { + "message": "Crear billetera", + "description": "The label for the doc item 'Create Wallet' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/create-wallet" + }, + "sidebar.stellar_disbursement_platform.doc.Update Wallet": { + "message": "Actualizar billetera", + "description": "The label for the doc item 'Update Wallet' in sidebar 'stellar_disbursement_platform', linking to the doc platforms/stellar-disbursement-platform/api-reference/update-wallet" + }, + "sidebar.build.category.Contract Accounts": { + "message": "Cuentas de Contrato", + "description": "The label for category 'Contract Accounts' in sidebar 'build'" + }, + "sidebar.data.category.Analytics Overview": { + "message": "Resumen de Analítica", + "description": "The label for category 'Analytics Overview' in sidebar 'data'" + }, + "sidebar.data.category.Hubble": { + "message": "Hubble", + "description": "The label for category 'Hubble' in sidebar 'data'" + }, + "sidebar.data.category.Analyst Guide": { + "message": "Guía del Analista", + "description": "The label for category 'Analyst Guide' in sidebar 'data'" + }, + "sidebar.data.category.hubble-developer-guide": { + "message": "Guía del Desarrollador", + "description": "The label for category 'Developer Guide' in sidebar 'data'" + }, + "sidebar.data.category.Backfill": { + "message": "Relleno", + "description": "The label for category 'Backfill' in sidebar 'data'" + }, + "sidebar.data.category.Source System Ingestion": { + "message": "Ingesta del Sistema de Origen", + "description": "The label for category 'Source System Ingestion' in sidebar 'data'" + }, + "sidebar.data.category.Data Curation": { + "message": "Curación de Datos", + "description": "The label for category 'Data Curation' in sidebar 'data'" + }, + "sidebar.data.category.Visualization": { + "message": "Visualización", + "description": "The label for category 'Visualization' in sidebar 'data'" + }, + "sidebar.data.category.Scheduling and Orchestration": { + "message": "Programación y Orquestación", + "description": "The label for category 'Scheduling and Orchestration' in sidebar 'data'" + }, + "sidebar.data.category.Data Catalog": { + "message": "Catálogo de Datos", + "description": "The label for category 'Data Catalog' in sidebar 'data'" + }, + "sidebar.data.category.Data Dictionary": { + "message": "Diccionario de Datos", + "description": "The label for category 'Data Dictionary' in sidebar 'data'" + }, + "sidebar.data.category.Bronze 🥉": { + "message": "Bronce 🥉", + "description": "The label for category 'Bronze 🥉' in sidebar 'data'" + }, + "sidebar.data.category.Silver 🥈": { + "message": "Plata 🥈", + "description": "The label for category 'Silver 🥈' in sidebar 'data'" + }, + "sidebar.data.category.Gold 🥇": { + "message": "Oro 🥇", + "description": "The label for category 'Gold 🥇' in sidebar 'data'" + }, + "sidebar.data.category.APIs Overview": { + "message": "Resumen de APIs", + "description": "The label for category 'APIs Overview' in sidebar 'data'" + }, + "sidebar.data.category.RPC": { + "message": "RPC", + "description": "The label for category 'RPC' in sidebar 'data'" + }, + "sidebar.data.category.rpc-admin-guide": { + "message": "Guía de administrador", + "description": "The label for category 'Admin Guide' in sidebar 'data'" + }, + "sidebar.data.category.rpc-api-reference": { + "message": "Referencia de API", + "description": "The label for category 'API Reference' in sidebar 'data'" + }, + "sidebar.data.category.Methods": { + "message": "Métodos", + "description": "The label for category 'Methods' in sidebar 'data'" + }, + "sidebar.data.category.rpc-api-structure": { + "message": "Estructura", + "description": "The label for category 'Structure' in sidebar 'data'" + }, + "sidebar.data.category.Horizon": { + "message": "Horizon", + "description": "The label for category 'Horizon' in sidebar 'data'" + }, + "sidebar.data.category.horizon-admin-guide": { + "message": "Guía de administrador", + "description": "The label for category 'Admin Guide' in sidebar 'data'" + }, + "sidebar.data.category.horizon-api-reference": { + "message": "Referencia de API", + "description": "The label for category 'API Reference' in sidebar 'data'" + }, + "sidebar.data.category.Resources": { + "message": "Recursos", + "description": "The label for category 'Resources' in sidebar 'data'" + }, + "sidebar.data.category.Accounts": { + "message": "Cuentas", + "description": "The label for category 'Accounts' in sidebar 'data'" + }, + "sidebar.data.category.Assets": { + "message": "Activos", + "description": "The label for category 'Assets' in sidebar 'data'" + }, + "sidebar.data.category.Claimable Balances": { + "message": "Saldos reclamables", + "description": "The label for category 'Claimable Balances' in sidebar 'data'" + }, + "sidebar.data.category.Effects": { + "message": "Efectos", + "description": "The label for category 'Effects' in sidebar 'data'" + }, + "sidebar.data.category.Ledgers": { + "message": "Ledgers", + "description": "The label for category 'Ledgers' in sidebar 'data'" + }, + "sidebar.data.category.Liquidity Pools": { + "message": "Fondos de Liquidez", + "description": "The label for category 'Liquidity Pools' in sidebar 'data'" + }, + "sidebar.data.category.Offers": { + "message": "Ofertas", + "description": "The label for category 'Offers' in sidebar 'data'" + }, + "sidebar.data.category.Operations": { + "message": "Operaciones", + "description": "The label for category 'Operations' in sidebar 'data'" + }, + "sidebar.data.category.The Operation Object": { + "message": "El objeto Operación", + "description": "The label for category 'The Operation Object' in sidebar 'data'" + }, + "sidebar.data.category.Payments": { + "message": "Pagos", + "description": "The label for category 'Payments' in sidebar 'data'" + }, + "sidebar.data.category.Trades": { + "message": "Comercios", + "description": "The label for category 'Trades' in sidebar 'data'" + }, + "sidebar.data.category.Transactions": { + "message": "Transacciones", + "description": "The label for category 'Transactions' in sidebar 'data'" + }, + "sidebar.data.category.horizon-api-structure": { + "message": "Estructura", + "description": "The label for category 'Structure' in sidebar 'data'" + }, + "sidebar.data.category.Pagination": { + "message": "Paginación", + "description": "The label for category 'Pagination' in sidebar 'data'" + }, + "sidebar.data.category.Aggregations": { + "message": "Agregaciones", + "description": "The label for category 'Aggregations' in sidebar 'data'" + }, + "sidebar.data.category.Order Books": { + "message": "Libros de órdenes", + "description": "The label for category 'Order Books' in sidebar 'data'" + }, + "sidebar.data.category.Paths": { + "message": "Rutas", + "description": "The label for category 'Paths' in sidebar 'data'" + }, + "sidebar.data.category.Trade Aggregations": { + "message": "Agregaciones de comercio", + "description": "The label for category 'Trade Aggregations' in sidebar 'data'" + }, + "sidebar.data.category.Fee Stats": { + "message": "Estadísticas de tarifa", + "description": "The label for category 'Fee Stats' in sidebar 'data'" + }, + "sidebar.data.category.Errors": { + "message": "Errores", + "description": "The label for category 'Errors' in sidebar 'data'" + }, + "sidebar.data.category.HTTP Status Codes": { + "message": "Códigos de estado HTTP", + "description": "The label for category 'HTTP Status Codes' in sidebar 'data'" + }, + "sidebar.data.category.Horizon-Specific Status Codes": { + "message": "Códigos de estado específicos de Horizon", + "description": "The label for category 'Horizon-Specific Status Codes' in sidebar 'data'" + }, + "sidebar.data.category.Result Codes": { + "message": "Códigos de resultado", + "description": "The label for category 'Result Codes' in sidebar 'data'" + }, + "sidebar.data.category.Operation-Specific Result Codes": { + "message": "Códigos de resultado específicos de operación", + "description": "The label for category 'Operation-Specific Result Codes' in sidebar 'data'" + }, + "sidebar.data.category.Indexers": { + "message": "Indexadores", + "description": "The label for category 'Indexers' in sidebar 'data'" + }, + "sidebar.data.category.Build Your Own": { + "message": "Desarrolla el tuyo", + "description": "The label for category 'Build Your Own' in sidebar 'data'" + }, + "sidebar.data.category.Galexie": { + "message": "Galexie", + "description": "The label for category 'Galexie' in sidebar 'data'" + }, + "sidebar.data.category.Admin Guide": { + "message": "Guía de administrador", + "description": "The label for category 'Admin Guide' in sidebar 'data'" + }, + "sidebar.data.category.galexie-example-usages": { + "message": "Ejemplos de uso", + "description": "The label for category 'Example Usages' in sidebar 'data'" + }, + "sidebar.data.category.Ingest SDK": { + "message": "SDK de ingestión", + "description": "The label for category 'Ingest SDK' in sidebar 'data'" + }, + "sidebar.data.category.ingest-sdk-developer-guide": { + "message": "Guía de desarrollador", + "description": "The label for category 'Developer Guide' in sidebar 'data'" + }, + "sidebar.data.category.Ledger Backends": { + "message": "Backends de Ledger", + "description": "The label for category 'Ledger Backends' in sidebar 'data'" + }, + "sidebar.data.category.ingest-sdk-example-usages": { + "message": "Ejemplos de uso", + "description": "The label for category 'Example Usages' in sidebar 'data'" + }, + "sidebar.data.category.Processors": { + "message": "Procesadores", + "description": "The label for category 'Processors' in sidebar 'data'" + }, + "sidebar.data.category.Token Transfer Processor": { + "message": "Procesador de transferencia de token", + "description": "The label for category 'Token Transfer Processor' in sidebar 'data'" + }, + "sidebar.data.category.token-transfer-processor-example-usages": { + "message": "Ejemplos de uso", + "description": "The label for category 'Example Usages' in sidebar 'data'" + }, + "sidebar.data.category.Oracles": { + "message": "Oráculos", + "description": "The label for category 'Oracles' in sidebar 'data'" } } diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/README.mdx index a77d1a0b20..97fc1fb092 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/README.mdx @@ -11,9 +11,9 @@ description: Comenzar a desarrollar en Stellar con guías, tutoriales, herramien La sección Desarrollada está dividida en tres partes: -1. [Contratos inteligentes](/docs/build/smart-contracts) -2. [Aplicaciones](/docs/build/apps) -3. [Guías prácticas](/docs/build/guides) +1. [Contratos inteligentes](./smart-contracts/README.mdx) +2. [Aplicaciones](./apps/README.mdx) +3. [Guías prácticas](./guides/README.mdx) Las explicaciones de cada sección se indican a continuación: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/README.mdx new file mode 100644 index 0000000000..580823d49e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 40 +--- + +import DocCardList from "@theme/DocCardList"; + +# Crear una aplicación de pagos con el SDK de JS + +Crea una aplicación básica de pagos para transferir tokens entre cuentas en la Testnet de Stellar. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/anchor-integration/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/anchor-integration/README.mdx new file mode 100644 index 0000000000..c6a1a6999f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/anchor-integration/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + +# Integración Anchor + +Interactúa con activos que no son Lumen en tu aplicación. Usa anchors para depósitos y retiradas de fondos para mover tokens dentro o fuera de la red. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/overview.mdx index afdf693dde..dc5238bd67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/overview.mdx @@ -109,7 +109,7 @@ import adapter from "@sveltejs/adapter-static"; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { - // Note: Your `dapter` configuration may need customizations depending + // Note: Your `adapter` configuration may need customizations depending // on how you are building and deploying your application. // highlight-start adapter: adapter({ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/querying-data.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/querying-data.mdx index 692c646586..29888a8c20 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/querying-data.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/example-application-tutorial/querying-data.mdx @@ -31,7 +31,7 @@ const server = new Server(horizonUrl); /** * @module $lib/stellar/horizonQueries * @description A collection of function that helps query various information - * from the [Horizon API](https://developers.stellar.org/api/horizon). This + * from the [Horizon API](https://developers.stellar.org/docs/data/apis/horizon). This * allows us to abstract and simplify some interactions so we don't have to have * _everything_ contained within our `*.svelte` files. */ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/bindings.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/bindings.mdx index 252005e934..80ade8a0d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/bindings.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/bindings.mdx @@ -114,7 +114,7 @@ node initialize.js :::info -Para una visión más completa del proceso de crear, personalizar y usar scripts de inicialización como este, consulta la [guía de plantilla frontend](https://developers.stellar.org/docs/build/guides/dapps/soroban-contract-init-template). +Para una visión más completa del proceso de crear, personalizar y usar scripts de inicialización como este, consulta la [guía de plantilla frontend](../../guides/dapps/soroban-contract-init-template.mdx). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/overview.mdx index c86b8ebb0b..b16fae3cab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/overview.mdx @@ -63,7 +63,7 @@ Estos son los pasos que hemos tomado para comenzar a construir Ye Olde Guestbook ### Comienza desde el repositorio soroban-template -Con el paso al desarrollo de contratos inteligentes, una utilidad emergente en el ecosistema Stellar es el "[template de Soroban](https://developers.stellar.org/docs/build/guides/dapps/soroban-contract-init-template)." Estos templates pueden ayudar a aliviar la carga de escribir código base, y pueden ayudar a adaptar flujos de trabajo típicos de desarrollo de Stellar en templates de referencia específicos de marco. Hemos creado [justo tal template](https://github.com/ElliotFriend/soroban-template-sveltekit-passkeys) que puede ayudarte a comenzar a desarrollar con SvelteKit y claves de acceso desde el principio. Puedes utilizar el template en el sitio web de GitHub: +Con el cambio hacia el desarrollo de contratos inteligentes, una utilidad que está surgiendo en el ecosistema Stellar es la "[plantilla Soroban](../../guides/dapps/soroban-contract-init-template.mdx)." Estos templates pueden ayudar a aliviar la carga de escribir código base, y pueden ayudar a adaptar flujos de trabajo típicos de desarrollo de Stellar en templates de referencia específicos de marco. Hemos creado [justo tal template](https://github.com/ElliotFriend/soroban-template-sveltekit-passkeys) que puede ayudarte a comenzar a desarrollar con SvelteKit y claves de acceso desde el principio. Puedes utilizar el template en el sitio web de GitHub: ![Proyecto de plantilla de GitHub](/assets/guestbook/github_template.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/passkeys-prerequisites.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/passkeys-prerequisites.mdx index 8bdcf9e807..315a8a10f0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/passkeys-prerequisites.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/passkeys-prerequisites.mdx @@ -3,7 +3,7 @@ title: Requisitos previos de las claves de paso sidebar_position: 40 --- -Las claves de paso son una forma asombrosa de ayudar a los desarrolladores de dapps (como tú) a conectar a los usuarios con sus proyectos, protocolos, aplicaciones, etc. Aprende más en la [página de billeteras inteligentes](../smart-wallets.mdx). +Las claves de paso son una forma asombrosa de ayudar a los desarrolladores de dapps (como tú) a conectar a los usuarios con sus proyectos, protocolos, aplicaciones, etc. Aprende más en la [guía de billeteras con clave de acceso](../../guides/contract-accounts/smart-wallets.mdx). Hemos estado trabajando arduamente en algunas herramientas para aumentar la adopción y la facilidad de uso de las claves de paso en Stellar. Para este tutorial, utilizaremos el **increíble** [`paquete passkey-kit`](https://github.com/kalepail/passkey-kit), que elimina MUCHO del dolor de cabeza y las complicaciones de la situación. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/smart-contract.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/smart-contract.mdx index cf50d9c36e..726ce7522a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/smart-contract.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/guestbook/smart-contract.mdx @@ -360,7 +360,7 @@ pub enum DataKey { #### `Error` -Estamos adhiriéndonos a las convenciones típicas del [contrato](https://developers.stellar.org/docs/build/guides/conventions/error-enum) y creando un `enum` para llevar un seguimiento de nuestros errores. +Seguimos las [convenciones típicas de contrato](../../guides/conventions/error-enum.mdx) y creamos un `enum` para registrar nuestros errores. ```rust #[contracterror] diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/README.mdx new file mode 100644 index 0000000000..fbf5aeab2e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 55 +--- + +import DocCardList from "@theme/DocCardList"; + +# Construir tubería de ingestión de red personalizada + +Con la [Plataforma de Datos Componible](https://stellar.org/blog/developers/composable-data-platform) de Stellar puedes construir tuberías de datos rápidas y ligeras para datos del libro mayor. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/ingestion-pipeline-code.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/ingestion-pipeline-code.mdx index c845127cef..0a3f55c8d2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/ingestion-pipeline-code.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/ingestion-pipeline-code.mdx @@ -3,32 +3,19 @@ title: Código de ejemplo de la canalización del consumidor CDP sidebar_position: 30 --- -Código completo para un pequeño ejemplo de la canalización del consumidor CDP de metadatos de ledger de la red Stellar utilizando el Stellar Go [Ingest SDK](overview.mdx#the-ingestion-sdk-packages) emparejado con el nuevo [CDP SDK](https://github.com/stellar/go/tree/master/ingest/cdp) para demostrar la canalización de datos desde los metadatos del ledger hasta el modelo de datos derivado con procesamiento distribuido y basado en eventos a un microservicio de ejemplo (script de Python) como suscriptor. +Código completo para un pequeño ejemplo de un pipeline consumidor de metadatos del ledger de la red Stellar usando el [Ingest SDK](overview.mdx#the-ingestion-sdk-packages) de Stellar Go para demostrar el pipeline de datos desde metadatos del ledger hasta un modelo de datos derivado con procesamiento distribuido y basado en eventos hacia un microservicio de muestra (script Python) como suscriptor. Este ejemplo utiliza el SDK envoltorio de Go [goczmq](https://github.com/zeromq/goczmq) de ZeroMQ, que requiere varias [bibliotecas dependientes del sistema operativo para que también estén instaladas en la máquina host](https://github.com/zeromq/goczmq?tab=readme-ov-file#dependencies). -Pasos:\ -#1 - Coloca estos archivos en un directorio\ -#2 - compila y ejecuta con `go mod tidy;go build -o pipeline ./.; ./pipeline`\ -#3 - en una terminal separada, ejecuta `python distributed_payment_subsciber.py`, esto ejecutará la topología de la canalización distribuida, ya que recibe mensajes con información de pago del proceso de canalización y realiza procesamiento adicional (imprimiéndolo en la consola). +Este ejemplo requiere tener acceso a un lago de metadatos de ledger público que esté siendo completado activamente con los últimos ledgers de la mainnet de Stellar. Para propósitos del ejemplo, utiliza un lago de datos de referencia alojado en [AWS Open Data S3](../../../data/apis/rpc/admin-guide/data-lake-integration#1-accessing-a-data-lake) -### `go.mod` +### Paso #1 - Crea un directorio de ejemplo y copia los siguientes archivos a tu estación de trabajo. +```bash +mkdir pipeline-example; cd pipeline-example -``` -module example/pipeline - -go 1.22 - -toolchain go1.22.1 - -require ( - github.com/stellar/go v0.0.0-20241008214914-7950d4254e6a - github.com/zeromq/goczmq v4.1.0+incompatible -) -``` - +```` ### `main.go` @@ -44,20 +31,20 @@ import ( "encoding/json" "fmt" "io" - "log" "os" "os/signal" "github.com/pelletier/go-toml" "github.com/pkg/errors" - "github.com/stellar/go/amount" - "github.com/stellar/go/historyarchive" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/network" - "github.com/stellar/go/support/datastore" - "github.com/stellar/go/support/storage" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/amount" + "github.com/stellar/go-stellar-sdk/historyarchive" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/support/datastore" + "github.com/stellar/go-stellar-sdk/support/storage" + "github.com/stellar/go-stellar-sdk/xdr" + "github.com/stellar/go-stellar-sdk/support/log" "github.com/zeromq/goczmq" ) @@ -113,6 +100,7 @@ func (transformer *AppPaymentTransformer) Process(ctx context.Context, msg Messa closeTime := uint(ledgerCloseMeta.LedgerHeaderHistoryEntry().Header.ScpValue.CloseTime) // scan all transactions in a ledger for payments to derive new model from + counter := 0 transaction, err := ledgerTxReader.Read() for ; err == nil; transaction, err = ledgerTxReader.Read() { for _, op := range transaction.Envelope.Operations() { @@ -134,12 +122,16 @@ func (transformer *AppPaymentTransformer) Process(ctx context.Context, msg Messa for _, processor := range transformer.processors { processor.Process(ctx, Message{Payload: jsonBytes}) } + counter++ } } } + if err != io.EOF { return errors.Wrapf(err, "failed to read transaction from ledger %v", ledgerCloseMeta.LedgerSequence()) } + + log.Infof("Published %v payments from ledger sequnce %v", counter, ledgerCloseMeta.LedgerSequence()) return nil } @@ -178,7 +170,7 @@ func (adapter *LedgerMetadataInboundAdapter) Run(ctx context.Context) error { BufferedStorageConfig: ingest.DefaultBufferedStorageBackendConfig(1), } - fmt.Printf("beginning payments stream, starting at ledger %v ...\n", latestNetworkLedger) + log.Infof("beginning payments stream, starting at ledger %v ...\n", latestNetworkLedger) return ingest.ApplyLedgerMetadata(ledgerRange, pubConfig, ctx, func(lcm xdr.LedgerCloseMeta) error { for _, processor := range adapter.processors { @@ -194,6 +186,7 @@ func main() { // run a data pipeline that transforms Pubnet ledger metadata into payment events ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill) defer stop() + log.SetLevel(log.InfoLevel) cfg, err := toml.LoadFile("config.toml") if err != nil { @@ -221,7 +214,7 @@ func main() { // publishes application data model as messages to a broker publisher, err := goczmq.NewPub("tcp://127.0.0.1:5555") if err != nil { - log.Printf("error creating 0MQ publisher: %v\n", err) + log.Infof("error creating 0MQ publisher: %v\n", err) return } defer publisher.Destroy() @@ -230,24 +223,30 @@ func main() { // wire up the ingestion pipeline and let it run appTransformer.Subscribe(outboundAdapter) ledgerMetadataInboundAdapter.Subscribe(appTransformer) - log.Printf("Payment ingestion pipeline ended %v\n", ledgerMetadataInboundAdapter.Run(ctx)) + log.Infof("Payment ingestion pipeline ended %v\n", ledgerMetadataInboundAdapter.Run(ctx)) } -``` +```` ### `config.toml` -La configuración de CDP, este archivo define el almacenamiento de datos que contiene los archivos de metadatos del ledger pre-generados. Se utiliza el almacenamiento en Google Cloud en este ejemplo. +La configuración de CDP, este archivo define el almacenamiento de datos que contiene los archivos de metadatos del ledger pre-generados. Se utiliza el bucket [S3 Public Blockchain](https://registry.opendata.aws/aws-public-blockchain/) para [Stellar Pubnet](hhttps://aws-public-blockchain.s3.us-east-2.amazonaws.com/index.html#v1.1/stellar/ledgers/pubnet/) en este ejemplo. ``` -type = "GCS" +type = "S3" [params] -destination_bucket_path = "my-gcs-bucketname/prefix1/prefix2" +destination_bucket_path = "aws-public-blockchain/v1.1/stellar/ledgers/pubnet" +region = "us-east-2" + +# this is the schema specific to the public s3 data lake being used +[schema] +ledgers_per_file = 1 +files_per_partition = 64000 ``` @@ -282,3 +281,21 @@ while True: ``` + +### Paso #2 - Compila y ejecuta el ejemplo del pipeline de ingestión. + + +```bash +go mod init example/pipeline +go get github.com/stellar/go-stellar-sdk@latest github.com/zeromq/goczmq@v4.1.0 +go mod tidy +go build -o pipeline ./. +AWS_SHARED_CREDENTIALS_FILE=/dev/null ./pipeline + +``` + + +### Step# 3 - Run the distributed pipeline consumer + +In separate terminal, run `python distributed_payment_subsciber.py`, this will perform distributed pipeline topology, as it receives messages with payment info from the pipeline process and does additional processing(printing it to console). +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/overview.mdx index a0216bde19..cd5af545f8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/ingest-sdk/overview.mdx @@ -3,15 +3,15 @@ title: Resumen sidebar_position: 10 --- -Este tutorial describe cómo una aplicación puede aprovechar la [arquitectura CDP](https://stellar.org/blog/developers/composable-data-platform) para crear tuberías de datos de metadatos del ledger Stellar rápidas y ligeras utilizando varias selecciones de paquetes del repositorio Stellar Go [github.com/stellar/go](https://github.com/stellar/go/blob/master/) conocidos colectivamente como el SDK de 'Ingestión': +Este tutorial explica cómo una aplicación puede aprovechar la [arquitectura CDP](https://stellar.org/blog/developers/composable-data-platform) para crear pipelines de metadatos rápidos y livianos del Stellar Ledger utilizando unos pocos paquetes selectos del repositorio de Stellar Go [github.com/stellar/go-stellar-sdk](https://github.com/stellar/go-stellar-sdk), conocidos colectivamente como el SDK de 'Ingestión': ## Los paquetes del SDK de Ingestión -- `github.com/stellar/go/amount` paquete de utilidades para convertir precios de operaciones de transacciones de la red a cadena -- `github.com/stellar/go/historyarchive` `github.com/stellar/go/support/datastore` `github.com/stellar/go/support/storage` paquete de utilidades con envoltorios convenientes para acceder a archivos de historial, y evitar aspectos de http de bajo nivel -- `github.com/stellar/go/ingest` proporciona funcionalidad de análisis sobre los metadatos del ledger de la red, convierte a un modelo de `LedgerTransaction` más centrado en los desarrolladores -- `github.com/stellar/go/network` proporciona configuraciones convenientes preconfiguradas para redes Testnet y Mainnet -- `github.com/stellar/go/xdr` un enlace completo de Golang al modelo de datos de la red Stellar +- Paquete utilitario `github.com/stellar/go-stellar-sdk/amount` para convertir precios de operaciones de transacciones en la red a cadena de texto +- Paquete utilitario `github.com/stellar/go-stellar-sdk/historyarchive` `github.com/stellar/go-stellar-sdk/support/datastore` `github.com/stellar/go-stellar-sdk/support/storage` con wrappers convenientes para acceder a archivos históricos y evitar aspectos HTTP de bajo nivel +- `github.com/stellar/go-stellar-sdk/ingest` proporciona funcionalidad de análisis sobre los metadatos del ledger en red, convierte al modelo más centrado en el desarrollador `LedgerTransaction` +- `github.com/stellar/go-stellar-sdk/network` ofrece configuraciones preconfiguradas convenientes para las redes Testnet y Mainnet +- `github.com/stellar/go-stellar-sdk/xdr` una vinculación completa en Golang al modelo de datos de la red Stellar ## Configuración del proyecto de Ingestión @@ -26,7 +26,7 @@ Para usar este ejemplo de tubería CDP para datos de transacciones en vivo de la - Docker - Cuenta de Google Cloud Platform: - un bucket creado en Google Cloud Storage(GCS) - - GCP [credenciales en el entorno de la estación de trabajo](https://github.com/stellar/go/blob/master/services/galexie/README.md#set-up-gcp-credentials) + - Credenciales de GCP [en el entorno de la estación de trabajo](../../../data/indexers/build-your-own/galexie/admin_guide/setup.mdx#google-cloud-platform-gcp-credentials) Nuestra aplicación de ejemplo solo está interesada en un pequeño subconjunto del modelo de datos general de la red relacionado con las transferencias de activos desencadenadas por la operación de Pago y define su propio modelo de datos derivado como el objetivo del ejercicio: @@ -50,21 +50,21 @@ La aplicación de ejemplo realizará ambas tuberías del CDP. Se requieren un m ### Tubería de exportación de metadatos del Ledger -Esta canalización debe iniciarse primero; es responsable de exportar la Metainformación del Stellar Ledger como archivos a un [CDP Datastore](https://github.com/stellar/go/blob/master/support/datastore/datastore.go). +Esta pipeline debe iniciarse primero, es responsable de exportar metadatos del Stellar Ledger como archivos a un [CDP Datastore](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go). #### Determinar el Datastore El Datastore en CDP es una interfaz, que permite múltiples implementaciones que representan diferentes capas de almacenamiento físico que se pueden 'conectar' para exportar y consumir tuberías. Stellar proporciona el [Datastore de GCS] como la primera implementación de Datastore, y este ejemplo elige usar esta implementación existente. -Habrá contribuciones de código abierto para implementaciones en otras capas de almacenamiento de las que elegir a medida que CDP crezca. Si no puedes encontrar una implementación para una capa de almacenamiento que te gustaría usar, también es posible desarrollar tu propia implementación de [Datastore](https://github.com/stellar/go/blob/master/support/datastore/datastore.go#L17), que está más allá del alcance de este ejemplo, ya que implica un ejercicio de aprendizaje separado por sí mismo, ¡pronto disponible! +Habrá contribuciones de código abierto para implementaciones en otras capas de almacenamiento de las que elegir a medida que CDP crezca. Si no encuentras una implementación para una capa de almacenamiento que deseas usar, también es posible desarrollar tu propia implementación de [Datastore](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go#L17), lo cual está fuera del alcance de este ejemplo, ya que implica un ejercicio de aprendizaje separado que llegará pronto. #### Exportando metadatos de la red al Datastore Usa Galexie, un nuevo programa de línea de comandos CDP para exportar metadatos de red a datastores. -- Sigue los pasos de configuración de Galexie en la [Guía del Usuario de Galexie](https://github.com/stellar/go/blob/master/services/galexie/README.md#setup), para configurar detalles del bucket de GCS y la red de destino. +- Sigue los pasos de configuración de Galexie en la [Guía del usuario de Galexie](../../../data/indexers/build-your-own/galexie/admin_guide/setup.mdx), para configurar detalles específicos del bucket de GCS y la red objetivo. -- Sigue las [instrucciones de ejecución de docker de Galexie](https://github.com/stellar/go/blob/master/services/galexie/README.md#running-galexie) para iniciar la exportación. +- Sigue las [instrucciones de ejecución de Galexie con Docker](../../../data/indexers/build-your-own/galexie/admin_guide/running.mdx) para iniciar la exportación. - Para la exportación única de un rango histórico limitado de ledgers, usa `append --start --end ` - Para una exportación continua de los ledgers anteriores y todos los nuevos ledgers generados en la red, usa `append --start `. @@ -74,13 +74,13 @@ Una tubería de consumidores recupera archivos del bucket de GCS y los usa como #### Adaptador de entrada -La 'fuente de origen' de los metadatos del ledger en una tubería. Este procesador recupera archivos [LedgerCloseMeta](https://github.com/stellar/go/blob/master/xdr/xdr_generated.go) del GCS Datastore, extrae el `LedgerCloseMeta` de cada Ledger y lo publica en la canalización de mensajería. +La 'fuente de origen' de los metadatos del ledger en una tubería. Este procesador recupera archivos [LedgerCloseMeta](https://github.com/stellar/go-stellar-sdk/blob/main/xdr/xdr_generated.go) del GCS Datastore, extrae el `LedgerCloseMeta` para cada Ledger y lo publica en la pipeline de mensajería. -El SDK de go proporciona la función auxiliar para consumidores [ApplyLedgerMetadata](https://github.com/stellar/go/blob/master/ingest/producer.go) para la recuperación automatizada, eficiente y con buffer de archivos desde el datastore remoto; el código de la aplicación puede aprovechar esto para obtener datos puros de `LedgerCloseMeta` desde una función de retorno de llamada. +El SDK de Go proporciona la función auxiliar para consumidores [ApplyLedgerMetadata](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/producer.go) para la recuperación automatizada, eficiente y en búfer de archivos desde el datastore remoto; el código de la aplicación puede aprovechar esto para adquirir datos puros de `LedgerCloseMeta` desde una función callback. #### Transformador -Se suscribe en la tubería para recibir `LedgerCloseMeta`. Usa el paquete del SDK de Go [github.com/stellar/go/xdr](https://github.com/stellar/go/tree/master/xdr) para analizar el modelo de metadatos del ledger para operaciones de pago y convertirlas en una nueva instancia del modelo de datos de la aplicación `AppPayment`. Publica `AppPayment` en la tubería. +Se suscribe en la tubería para recibir `LedgerCloseMeta`. Utiliza el paquete Go SDK [github.com/stellar/go-stellar-sdk/xdr](https://github.com/stellar/go-stellar-sdk/tree/main/xdr) para analizar el modelo de metadatos del ledger para operaciones de pago y convertirlos en nuevas instancias del modelo de datos de la aplicación `AppPayment`. Publica `AppPayment` en la tubería. #### Adaptador de salida diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/overview.mdx index 56e046d254..3440760bea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/overview.mdx @@ -11,7 +11,7 @@ Stellar es un ledger distribuido open-source que puedes utilizar como backend pa Stellar tiene lógica incorporada para el almacenamiento de claves, crear cuentas, firmar transacciones, rastrear saldos y realizar consultas a la base de datos de Stellar, y cualquier persona puede usar la red para emitir, almacenar, transferir e intercambiar activos. -Esta documentación incluye secciones sobre cómo crear aplicaciones sin contratos inteligentes con el [Wallet SDK](./wallet/overview.mdx) o el [JS SDK](./example-application-tutorial/overview.mdx), construir con contratos inteligentes con el [tutorial de frontend dapp](./dapp-frontend.mdx), y toda la información relacionada con la experimentación con [billeteras inteligentes](./smart-wallets.mdx). +Esta documentación incluye secciones sobre cómo crear aplicaciones sin contratos inteligentes con el [Wallet SDK](./wallet/overview.mdx) o el [JS SDK](./example-application-tutorial/overview.mdx), crear con contratos inteligentes con el [tutorial de frontend para dapp](./dapp-frontend.mdx), y toda la información relacionada con la experimentación con [passkey / carteras de cuentas de contrato](../guides/contract-accounts/smart-wallets.mdx). ## Anclas @@ -19,7 +19,7 @@ Muchos activos de Stellar se conectan a monedas del mundo real, y Stellar tiene Lee más sobre los anclajes en nuestra [sección de Anclajes](../../learn/fundamentals/anchors.mdx). -Configura un anclaje utilizando la [Anchor Platform](/platforms/anchor-platform). +Configura un anchor usando la [Anchor Platform](../../platforms/anchor-platform/README.mdx). Integra MoneyGram Ramps en una aplicación existente con el [tutorial Integrar con MoneyGram Ramps](https://developer.moneygram.com/moneygram-developer/docs/integrate-moneygram-ramps). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/smart-wallets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/smart-wallets.mdx index 9a796abaa8..27e5818335 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/smart-wallets.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/smart-wallets.mdx @@ -81,7 +81,7 @@ Launchtube es un servicio prototipo. Aunque SDF mantiene una implementación en ### Smart wallet backend de SDP -El equipo de [Stellar Disbursement Platform](/platforms/stellar-disbursement-platform) también está experimentando con implementaciones de smart wallet. En una rama de características, han implementado un contrato de smart wallet que también puede ser usado. +El equipo de la [Plataforma de Distribución Stellar](../../platforms/stellar-disbursement-platform/README.mdx) también está experimentando con implementaciones de billeteras inteligentes. En una rama de características, han implementado un contrato de smart wallet que también puede ser usado. - Ver el [código](https://github.com/stellar/stellar-disbursement-platform-backend/tree/feature/c-accounts/contracts/smart-wallet) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/swift-payment-app.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/swift-payment-app.mdx index 8c29fb8dda..cb2644b4b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/swift-payment-app.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/swift-payment-app.mdx @@ -55,7 +55,7 @@ El tutorial cubre almacenamiento seguro de datos, autenticación, creación de c - [Tutorial de SwiftBasicPay](https://github.com/Soneso/SwiftBasicPay/tree/main/tutorial) - [Stellar Wallet SDK para Swift](https://github.com/Soneso/stellar-swift-wallet-sdk) - [SDK de Stellar para iOS](https://github.com/Soneso/stellar-ios-mac-sdk) -- [Documentación del SDK de la billetera Stellar](https://developers.stellar.org/docs/category/build-a-wallet-with-the-wallet-sdk) +- [Documentación del SDK de la billetera Stellar](../apps/wallet/README.mdx) ## Contribuir diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/CONTRIBUTING.md b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/CONTRIBUTING.md new file mode 100644 index 0000000000..96851c6cea --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/CONTRIBUTING.md @@ -0,0 +1,95 @@ +# Guía para contribuir + +¡Gracias por contribuir a la documentación de la billeteras Stellar! Para comenzar, +por favor primero lee la guía [README principal](../../../README.md). + +Esta documentación es principalmente para el SDK de la billeteras y sus usos para integrarse +con varios SEPs. + +El documento está estructurado para ser independiente del lenguaje, pero con los componentes +listados a continuación podemos agregar lógica específica para cada lenguaje dentro del documento. + +Generalmente, el texto debe ser aplicable a todos los lenguajes de programación soportados, +pero para diferencias se puede usar el componente especial `` (lee +más abajo) + +## Componentes de la guía para billeteras + +### Encabezado + +El encabezado es un archivo .mdx especial que debe incluirse en todas las páginas. Contiene: + +- Botones de idioma +- Una guía general sobre el uso de estos botones +- Advertencia opcional para idiomas en progreso + +En todas las páginas nuevas, el encabezado debe ser el primer elemento. Opcionalmente, proporciona una lista +de idiomas que están en progreso: + +```mdxjs +
+``` + +### LanguageButtons + +Este componente es parte del encabezado. Permite cambiar entre los +lenguajes de programación. El idioma actual se almacena como una cookie. + +### WalletGuideWarn + +Este componente muestra una advertencia si el idioma está en progreso para esta sección. +Por favor utiliza la propiedad `WIPLangs` para activarlo para un idioma en la página. + +### WalletCodeExample + +Este es un componente mejorado `CodeExample`. Actualmente soporta el cambio dinámico +entre fragmentos de código en TypeScript, Kotlin, Flutter y Swift (dependiendo +del lenguaje seleccionado por el usuario). También generará un marcador de posición si falta el fragmento +de código. Aquí hay un ejemplo de cómo usarlo: + +````mdxjs + + +​```kotlin +// Kotlin example here +​``` + + +​```ts +// TypeScript example here +​``` + +// Flutter example is replaced with an auto-generated notice + + +```` + +Para ejemplos de código regular (no del SDK de billeteras) por favor usa el componente `CodeExample` normal. + +### LanguageSpecific + +Este componente permite renderizar partes de la documentación basadas en el código seleccionado. +Para comenzar, crea 2 archivos en el directorio `component`: + +```md +// ./component/kt/hello.mdx Hello, Kotlin! +``` + +```md +// ./component/ts/hello.mdx Hello, TypeScript! +``` + +Luego, en el documento principal importa ambos archivos y el componente LanguageSpecific: + +```mdxjs +// main.mdx +import {LanguageSpecific} from "@site/src/components/LanguageSpecific"; +import KtHello from "./component/kt/hello.mdx"; +import TsHello from "./component/ts/hello.mdx"; + +} ts={} / +``` + +Cuando el usuario selecciona Kotlin, se mostrará "Hello, Kotlin!", cuando se +selecciona TypeScript — "Hello, TypeScript!". Finalmente, para Flutter y Swift, +no se mostrará nada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/README.mdx new file mode 100644 index 0000000000..215af9b355 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/README.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +# Desarrollar una billetera con el Wallet SDK + +Usa el Wallet SDK para integrarte con la blockchain de Stellar y conectarte a anchors usando tu lenguaje de programación preferido. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/configClient.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/configClient.mdx index 01ed74bab9..2c86a22315 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/configClient.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/configClient.mdx @@ -1,5 +1,3 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configurando el Cliente El SDK de Billetera Flutter utiliza el Cliente estándar del [http package](https://pub.dev/packages/http) para todas las solicitudes de red (excluyendo Horizon, donde se utiliza el cliente HTTP del SDK Stellar de Flutter). @@ -8,8 +6,6 @@ Opcionalmente, puedes establecer tu propio cliente del [http package](https://pu El cliente se puede configurar globalmente: - - ```dart import 'package:http/http.dart'; // ... @@ -22,6 +18,4 @@ var appConfig = ApplicationConfiguration(defaultClient: myClient); var walletCustomClient = Wallet(StellarConfiguration.testNet, applicationConfiguration: appConfig); ``` - - Algunos [casos de prueba](https://github.com/Soneso/stellar_wallet_flutter_sdk/tree/main/test) de este SDK utilizan, por ejemplo, el `MockClient`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/install.mdx index 834ad9d1a8..2e5b87a8cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/install.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/dart/install.mdx @@ -1,13 +1,7 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```dart // pubspec.yaml stellar_wallet_flutter_sdk: ^1.0.6 stellar_flutter_sdk: ^2.1.3 ``` - - Puedes obtener la última versión disponible en la [página de GitHub del proyecto](https://github.com/Soneso/stellar_wallet_flutter_sdk) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/configClient.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/configClient.mdx index 67516fe9d7..9fbd785439 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/configClient.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/configClient.mdx @@ -1,13 +1,9 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configurar el cliente El SDK de billetera de Kotlin utiliza el [client ktor](https://ktor.io/docs/getting-started-ktor-client.html) para todas las solicitudes de red (excluyendo Horizon, donde se utiliza el cliente HTTP del SDK de Stellar). Actualmente, el motor okhttp está configurado para utilizarse con el cliente. Puedes leer más sobre cómo configurar el client ktor [aquí](https://ktor.io/docs/create-client.html#configure-client). Por ejemplo, el cliente puede ser configurado globalmente: - - ```kotlin val walletCustomClient = Wallet( @@ -24,14 +20,10 @@ val walletCustomClient = ) ``` - - Este código de Kotlin establecerá el tiempo de espera de conexión en diez segundos a través de la [configuración de okhttp](https://ktor.io/docs/http-client-engines.html#okhttp) y también instala el [plugin de reintento](https://ktor.io/docs/client-retry.html). También puedes especificar la configuración del cliente para clases específicas del SDK de billetera. Por ejemplo, para cambiar el tiempo de espera de conexión al conectarse a algún servidor anchor: - - ```kotlin val anchorCustomClient = walletCustomClient.anchor("example.com") { @@ -39,18 +31,12 @@ val anchorCustomClient = } ``` - - ### Cerrar recursos Después de que la clase de billetera ya no se utilice, es necesario cerrar todos los clientes que se utilizaron con ella. Mientras que en algunas aplicaciones puede no ser necesario (por ejemplo, la billetera vive durante toda la vida de la aplicación), en otros casos puede ser necesario. Si tu clase de billetera es de corta duración, se recomienda cerrar los recursos del cliente utilizando una función de cierre: - - ```kotlin fun closeWallet() { wallet.close() } ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/globalSigner.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/globalSigner.mdx index de28fdb05a..5aa2720832 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/globalSigner.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/globalSigner.mdx @@ -1,13 +1,7 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finalmente, con el enfoque anterior definimos el firmante y el dominio del cliente por solicitud. Si deseas definirlo una vez y utilizarlo para cada llamada de autenticación que tu aplicación está realizando, puedes hacerlo cambiando la configuración: - - ```kotlin val appCfg = ApplicationConfiguration(WalletSigner.DomainSigner("https://my-domain.com/sign"), "my-domain.com") ``` - - Esto es particularmente útil para integrarse con múltiples anchors. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/httpConfig.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/httpConfig.mdx index 96048965c2..bafb954dcb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/httpConfig.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/httpConfig.mdx @@ -1,14 +1,8 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Hay una configuración más disponible para una billetera que permite configurar la lógica interna del SDK. Por ejemplo, para probar con servidores locales en un protocolo HTTP, se puede habilitar manualmente HTTP. - - ```kotlin val walletCustom = Wallet( StellarConfiguration.Testnet, ApplicationConfiguration { defaultRequest { url { protocol = URLProtocol.HTTP } } } ) ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/install.mdx index cdfea356dc..91d62ede08 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/install.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/install.mdx @@ -1,12 +1,6 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```kotlin // gradle.kts implementation("org.stellar:wallet-sdk:[version]") ``` - - Puedes obtener la última versión disponible en la [página de GitHub del proyecto](https://github.com/stellar/kotlin-wallet-sdk) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/watcher.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/watcher.mdx index 3e0fbcabfa..a505d9ba44 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/watcher.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/kt/watcher.mdx @@ -1,9 +1,5 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - A continuación, obten el canal proporcionado por `WatcherResult` para recibir eventos. - - ```kt do { val event = result.channel.receive() @@ -16,8 +12,6 @@ do { } while (event !is ChannelClosed) ``` - - Este ejemplo de código consumirá todos los eventos que provienen del canal hasta que esté cerrado. Hay tres tipos de eventos: - `StatusChange`: indica que el estado de la transacción ha cambiado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/globalSigner.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/globalSigner.mdx index dda9518cc2..ea2b24a238 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/globalSigner.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/globalSigner.mdx @@ -1,14 +1,8 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finalmente, con el enfoque anterior definimos el firmante y el dominio del cliente por solicitud. Si deseas definirlo una vez y usarlo para cada llamada de autenticación que realiza tu aplicación, puedes hacerlo cambiando la configuración: - - ```swift let appCfg = AppConfig(defaultSigner: try DomainSigner(url: "https://my-domain.com/sign"), defaultClientDomain: "my-domain.com") ``` - - Esto es particularmente útil para integrarse con múltiples anchors. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/install.mdx index 099f367c76..5ed3766da7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/install.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/swift/install.mdx @@ -1,3 +1 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Agrega el repositorio (https://github.com/Soneso/stellar-swift-wallet-sdk) como una dependencia de paquete en tu proyecto de XCode. Aparecerán dos nuevas dependencias de paquete: "stellar-wallet-sdk" y "stellarsdk". diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/allowHttpInfo.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/allowHttpInfo.mdx index 6def02c1c5..eb979cf195 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/allowHttpInfo.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/allowHttpInfo.mdx @@ -1,17 +1,11 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - :::info Si el dominio de inicio del anchor utiliza http, entonces necesitas configurar el flag `allowHttp` al crear el anchor: - - ```typescript let anchor = wallet.anchor({ homeDomain: "example.com", allowHttp: true }); ``` - - Esto solo se puede usar en Testnet. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/configClient.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/configClient.mdx index 9fde905a09..ae22cbd2cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/configClient.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/configClient.mdx @@ -1,13 +1,9 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - ### Configurando el Cliente El SDK de billetera de Typescript usa el [cliente axios](https://axios-http.com/docs/intro) para todas las solicitudes de red. Puedes leer más sobre cómo configurar el cliente axios [aquí](https://axios-http.com/docs/instance). Por ejemplo, podemos configurar nuestro cliente axios para que esté configurado globalmente con un tiempo de espera: - - ```typescript const customClient: AxiosInstance = axios.create({ timeout: 1000, @@ -19,6 +15,4 @@ let wal = new Wallet({ }); ``` - - Puedes encontrar más [opciones de configuración aquí.](https://axios-http.com/docs/req_config) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/createKeypairInfo.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/createKeypairInfo.mdx index 656bd63241..135f8bcc31 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/createKeypairInfo.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/createKeypairInfo.mdx @@ -1,17 +1,11 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - :::info Si usas react-native, `createKeypair` no funcionará. En su lugar, usa el método auxiliar `createKeypairFromRandom` así: - - ```typescript import * as Random from "expo-crypto"; const rand = Random.randomBytes(32); const kp = account.createKeypairFromRandom(Buffer.from(rand)); ``` - - ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/globalSigner.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/globalSigner.mdx index cccf2fb3e1..c502549432 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/globalSigner.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/globalSigner.mdx @@ -1,9 +1,5 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - Finalmente, con el enfoque anterior definimos el firmante y el dominio del cliente por cada solicitud. Si deseas definirlo una vez y usarlo para cada llamada de autenticación que tu aplicación esté realizando, puedes hacerlo cambiando la configuración: - - ```typescript const appCfg = new ApplicationConfiguration( new DomainSigner("https://my-domain.com/sign", { ...headers }), @@ -12,6 +8,4 @@ const appCfg = new ApplicationConfiguration( ); ``` - - Esto es particularmente útil para integrar con múltiples anchors. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/install.mdx index e0722dcdfa..b021f7e116 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/install.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/component/ts/install.mdx @@ -1,9 +1,3 @@ -import { CodeExample } from "@site/src/components/CodeExample"; - - - ```bash yarn add @stellar/typescript-wallet-sdk ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/intro.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/intro.mdx index 3db4537dc3..4758c3ab4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/intro.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/intro.mdx @@ -8,7 +8,7 @@ description: Aprende a crear una aplicación de billetera en la red Stellar con # Comenzar import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import KtInstall from "./component/kt/install.mdx"; import TsInstall from "./component/ts/install.mdx"; @@ -37,7 +37,7 @@ Primero, necesitas agregar la dependencia del SDK a tu proyecto. Comencemos con la clase principal que proporciona toda la funcionalidad del SDK. Se recomienda tener un objeto billetera singleton compartido en toda la aplicación. Crear una billetera con una configuración predeterminada conectada al Testnet de Stellar es simple: - + ```kotlin val wallet = Wallet(StellarConfiguration.Testnet) @@ -55,11 +55,11 @@ var wallet = Wallet.testNet; let wallet = Wallet.testNet ``` - + La instancia de la billetera se puede configurar aún más. Por ejemplo, para conectarte a la red pública: - + ```kotlin val walletTestnet = Wallet(StellarConfiguration(Network.TESTNET, "https://horizon-testnet.stellar.org")) @@ -79,7 +79,7 @@ var wallet = Wallet(StellarConfiguration.publicNet); let wallet = Wallet(stellarConfig: StellarConfig.publicNet) ``` - + } /> @@ -95,7 +95,7 @@ El SDK de la billetera proporciona algunas funcionalidades adicionales además d Para interactuar con la instancia de Horizon configurada en los pasos anteriores, simplemente haz: - + ```kotlin val stellar = wallet.stellar() @@ -113,7 +113,7 @@ var stellar = wallet.stellar(); let stellar = wallet.stellar ``` - + Este ejemplo creará una clase Stellar que gestiona la conexión al servicio de Horizon. @@ -129,7 +129,7 @@ Puedes leer más sobre cómo trabajar con la red Stellar en la [sección respect El uso principal del SDK es proporcionar una forma sencilla de conectarse a los anchors a través de un conjunto de protocolos conocidos como SEPs. Veamos cómo conectar al anchor de prueba de Stellar: - + ```kotlin val anchor = wallet.anchor("https://testanchor.stellar.org") @@ -147,13 +147,13 @@ var anchor = wallet.anchor("testanchor.stellar.org") let anchor = wallet.anchor(homeDomain: "testanchor.stellar.org") ``` - + } /> Y la interacción más básica de recuperación de un [SEP-1]: Archivo de información de Stellar: - + ```kotlin suspend fun anchorToml(): TomlInfo { @@ -173,7 +173,7 @@ var resp = await anchor.sep1(); let resp = try await anchor.sep1 ``` - + A continuación se pueden encontrar todos los SEPs que actualmente admite la clase anchor: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/overview.mdx index 5217993d20..ef4dec5a2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/overview.mdx @@ -3,7 +3,6 @@ title: Resumen sidebar_position: 10 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Header from "./component/header.mdx";
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep10.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep10.mdx index a2b8e25fe8..8d06a8184a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep10.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep10.mdx @@ -4,8 +4,7 @@ sidebar_position: 40 --- import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; -import { CodeExample as NonWalletCodeExample } from "@site/src/components/CodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import GlobalClientSignerKt from "./component/kt/globalSigner.mdx"; import GlobalClientSignerTs from "./component/ts/globalSigner.mdx"; @@ -35,7 +34,7 @@ Hagamos una autenticación básica. En este ejemplo, utilizaremos el SDK de bill Primero, vamos a crear un objeto `anchor` para trabajar con el anchor con el que te estás integrando. En este ejemplo, utilizaremos una implementación de anchor de referencia con el dominio principal `testanchor.stellar.org` - + ```kotlin val anchor = wallet.anchor("https://testanchor.stellar.org") @@ -53,11 +52,11 @@ final anchor = wallet.anchor("testanchor.stellar.org"); let anchor = wallet.anchor(homeDomain: "testanchor.stellar.org") ``` - + A continuación, autentica con la `authKey` creada anteriormente: - + ```kotlin val authKey = SigningKeyPair.fromSecret("my secret key") @@ -88,7 +87,7 @@ let sep10 = try await anchor.sep10 let authToken = try await sep10.authenticate(userKeyPair: authKey) ``` - + Para billeteras no custodiales, querrás usar la clave privada del usuario como `authKey`. @@ -116,7 +115,7 @@ Admitir `client_domain` tiene dos partes, la implementación del cliente de la b Primero, implementemos el lado del cliente. En este ejemplo nos conectaremos a un signatario remoto que firma transacciones en el punto final `https://demo-wallet-server.stellar.org/sign` para el dominio del cliente `demo-wallet-server.stellar.org`. - + ```kotlin val signer = WalletSigner.DomainSigner("https://demo-wallet-server.stellar.org/sign") {} @@ -160,7 +159,7 @@ let authToken = try await sep10.authenticate(userKeyPair: authKey, clientDomainSigner: signer) ``` - + :::danger @@ -170,7 +169,7 @@ El punto final de firma de demo-wallet no está protegido para que cualquiera lo Agreguemos autenticación con un token de portador. Simplemente actualiza el transformador de solicitudes: - + ```kotlin val signer = WalletSigner.DomainSigner("https://demo-wallet-server.stellar.org/sign") { bearerAuth("authToken") } @@ -199,7 +198,7 @@ let signer = try DomainSigner(url: "https://demo-wallet-server.stellar.org/sign" requestHeaders: requestHeaders) ``` - + } @@ -215,8 +214,6 @@ Primero, genera una nueva clave de autenticación que se usará como clave de au A continuación, crea un archivo toml `SEP-1` colocado bajo `/.well-known/stellar.toml` con el siguiente contenido: - - ```toml ACCOUNTS = [ "Authentication public key (address)" ] VERSION = "0.1.0" @@ -224,14 +221,10 @@ SIGNING_KEY = "Authentication public key (address)" NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" ``` - - No olvides cambiar la frase secreta de la red para el despliegue en Mainnet. Finalmente, agreguemos la implementación en el servidor. Esta implementación de ejemplo utiliza el framework express: - - ```javascript app.post("/sign", (req, res) => { const envelope_xdr = req.body.transaction; @@ -255,8 +248,6 @@ app.post("/sign", (req, res) => { }); ``` - - Puedes ver ejemplos de ambas implementaciones de billetera y servidor [aquí](https://github.com/stellar/typescript-wallet-sdk/tree/main/%40stellar/typescript-wallet-sdk/examples/sep10). Como se mencionó antes, esta implementación de servidor de ejemplo no tiene ninguna protección contra solicitudes no autorizadas, así que debes agregar verificaciones de autorización como parte de la solicitud. [sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep24.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep24.mdx index 8d3105ed79..ef75e909c9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep24.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep24.mdx @@ -6,7 +6,7 @@ sidebar_position: 50 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; import KtWatcher from "./component/kt/watcher.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -19,7 +19,7 @@ Durante el flujo, una billetera realiza varias solicitudes al anchor, y finalmen Comencemos obteniendo una instancia de la clase `Sep24`, responsable de todas las interacciones SEP-24: - + ```kotlin val sep24 = anchor.sep24() @@ -37,11 +37,11 @@ final sep24 = await anchor.sep24(); let sep24 = anchor.sep24 ``` - + Primero, obten la información sobre el soporte del ancla para [SEP-24]. Esta solicitud no requiere autenticación y devolverá información genérica, como las divisas admitidas y las características admitidas por el ancla. Puedes obtener una lista completa de los campos devueltos en la [especificación SEP-24](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info). - + ```kt suspend fun getAnchorServices(): AnchorServiceInfo { @@ -63,7 +63,7 @@ final servicesInfo = await sep24.getServiceInfo(); let servicesInfo = try await sep24.info ``` - + ## Flujos Interactivos @@ -71,7 +71,7 @@ Antes de comenzar, asegúrate de haberte conectado al ancla y de haber recibido Para iniciar una operación, necesitamos conocer un activo. Puedes querer codificarlo de forma fija o obtenerlo dinámicamente del archivo de información del ancla, como se muestra a continuación (para USDC): - + ```kt val asset = info.currencies.first { it.code == "USDC" }.assetId @@ -104,7 +104,7 @@ let info = try await anchor.info let asset = try info.currencies?.first(where: {$0.code == "USDC"})?.assetId ``` - + :::info @@ -116,7 +116,7 @@ Antes de comenzar con el flujo de depósito, asegúrate de que la cuenta del usu Comencemos con un depósito básico: - + ```kt val deposit = sep24.deposit(asset, authToken) @@ -137,13 +137,13 @@ final deposit = await sep24.deposit(asset, authToken); let deposit = try await sep24.deposit(assetId: asset, authToken: authToken) ``` - + Como resultado, recibirás una [respuesta interactiva](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-and-withdraw-shared-responses) del ancla. Abre la URL recibida en un iframe y guarda el ID de la transacción para referencia futura: - + ```kt val url = deposit.url @@ -165,11 +165,11 @@ let url = deposit.url let id = deposit.id ``` - + De manera similar al flujo de depósito, un flujo de retiro básico tiene la misma firma de método y tipo de respuesta: - + ```kt val withdrawal = sep24.withdraw(asset, authToken) @@ -198,7 +198,7 @@ let url = withdrawal.url let id = withdrawal.id ``` - + ### Proporcionando Información KYC @@ -216,7 +216,7 @@ En este momento, el [SEP-9] aceptado aún no está tipificado de manera estricta ::: - + ```kt val sep9 = mapOf("email_address" to "mail@example.com") @@ -243,7 +243,7 @@ let deposit = try await sep24.deposit(assetId: asset, extraFields: ["email_address" : "mail@example.com"]) ``` - + ### Cambio de Cuenta de Transferencia Stellar @@ -251,7 +251,7 @@ Por defecto, la transferencia Stellar se enviará a la cuenta autenticada (con u Aunque en la mayoría de los casos es aceptable, algunas billeteras pueden dividir sus cuentas. Para hacerlo, pasa una cuenta adicional (y opcionalmente un memo): - + ```kt suspend fun depositDifferentAccount(): InteractiveFlowResponse { @@ -290,11 +290,11 @@ let deposit = try await sep24.deposit(assetId: asset, destinationMemoType: MemoType.text) ``` - + De manera similar, para un retiro, la cuenta de origen de la transacción Stellar podría cambiarse: - + ```kt val originAccount = "G..." @@ -322,7 +322,7 @@ let withdrawal = try await sep24.withdraw(assetId: asset, withdrawalAccount: originAccount) ``` - + ## Obteniendo Información de la Transacción @@ -334,7 +334,7 @@ Alternativamente, algunos anclajes admiten webhooks para notificaciones. Ten en Veamos cómo usar el SDK de la billetera para rastrear los cambios de estado de las transacciones. Usaremos la clase `Watcher` para este propósito. Primero, inicializa el vigilante y comienza a rastrear una transacción. - + ```kt val watcher = sep24.watcher() @@ -365,11 +365,11 @@ let result = watcher.watchOneTransaction(authToken: authToken, id: "transaction id") ``` - + Alternativamente, podemos rastrear múltiples transacciones para el mismo activo. - + ```kt val watcher = sep24.watcher() @@ -397,7 +397,7 @@ let watcher = sep24.watcher() let result = watcher.watchAsset(authToken: authToken, asset: asset) ``` - + } /> @@ -405,7 +405,7 @@ let result = watcher.watchAsset(authToken: authToken, asset: asset) Mientras que la clase `Watcher` ofrece potentes capacidades de seguimiento, a veces es necesario simplemente obtener una transacción (o transacciones) una vez. La clase `Anchor` te permite obtener una transacción por ID, ID de transacción Stellar o ID de transacción externa: - + ```kt // "id" is the actual Anchor transaction id, all transactions should have it. @@ -494,11 +494,11 @@ let transaction = try await anchor.sep24.getTransactionBy(authToken: authToken, externalTransactionId: "external transaction id") ``` - + También es posible obtener transacciones por el activo - + ```kt val transactions = sep24.getTransactionsForAsset(asset, authToken) @@ -519,7 +519,7 @@ final transactions = await sep24.getTransactionsForAsset(asset, authToken); let transactions = try await sep24.getTransactionsForAsset(authToken: authToken, asset: asset) ``` - + ## Enviando Transferencia de Retiro @@ -527,7 +527,7 @@ Antes, revisamos cómo iniciar el flujo de retiro. Ahora, veamos un ejemplo comp Primero, inicia el retiro: - + ```kt val withdrawal = sep24.withdraw(asset, authToken) @@ -548,11 +548,11 @@ final withdrawal = await sep24.withdraw(asset, authToken); let withdrawal = try await sep24.withdraw(assetId: asset, authToken: authToken) ``` - + A continuación, abre una URL interactiva: - + ```kt val url = withdrawal.url @@ -574,11 +574,11 @@ let url = withdrawal.url // open the url ``` - + Después de eso, necesitamos esperar hasta que el ancla esté lista para recibir fondos. Para hacerlo, esperamos hasta que la transacción alcance el estado `pending_user_transfer_start`. Este código utiliza un mecanismo de vigilancia simple (polling) sin condición de salida. El código de la aplicación debería ser más robusto. - + ```kt val withdrawalWatcher = sep24.watcher().watchOneTransaction(authToken, withdrawal.id) @@ -669,11 +669,11 @@ NotificationCenter.default.addObserver(self, } ``` - + A continuación, firma y envía la transferencia Stellar: - + ```kt val anchorTransaction = (statusChange.transaction as WithdrawalTransaction) @@ -724,10 +724,10 @@ onMessage: (transaction) => { resolution strategy based on the error kind. On Stellar docs you can find a page dedicated to error handling: - https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging/error-handling + https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging And status/result codes: - https://developers.stellar.org/docs/data/horizon/api-reference/errors + https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors */ // Let's illustrate here how we could handle an 'invalid sequence number' error. @@ -746,7 +746,7 @@ onMessage: (transaction) => { detail: 'The transaction failed when submitted to the stellar network. The `extras.result_codes` field on this response contains further details. Descriptions of each code can be found at: - https://developers.stellar.org/docs/data/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed', + https://developers.stellar.org/docs/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed', extras: { envelope_xdr: 'AAAAAgAAAADBjF7n9gfByOwlnyaJH...k4BRagf/////////8AAAAAAAAAAA==', result_codes: { transaction: 'tx_bad_seq' }, @@ -849,7 +849,7 @@ if let tx = statusChange.transaction as? WithdrawalTransaction { } ``` - + Donde `keypair` es la cuenta autenticada por SEP-10. Si deseas transferir fondos desde una dirección diferente, consulta la sección [Cambio de Cuenta de Transferencia Stellar](#changing-stellar-transfer-account). @@ -861,7 +861,7 @@ El código para enviar transacciones a Stellar debería ser desarrollado cuidado Por último, rastreemos las actualizaciones de estado de la transacción. En este ejemplo, simplemente verificamos si la transacción se ha completado: - + ```kt var terminalStatus: TransactionStatus? = null @@ -957,7 +957,7 @@ NotificationCenter.default.addObserver(self, } ``` - + [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep30.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep30.mdx index 15ead7d8eb..1dbad27266 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep30.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep30.mdx @@ -4,7 +4,7 @@ sidebar_position: 60 --- import Header from "./component/header.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample";
@@ -14,7 +14,7 @@ El estándar [Sep-30] define la forma estándar para que un individuo (por ejemp Primero, vamos a crear una clave de cuenta, una clave de dispositivo y una clave de recuperación que estarán asociadas a la cuenta. - + ```typescript const accountKp = wallet.stellar().account().createKeypair(); @@ -40,13 +40,13 @@ let deviceKp = wallet.stellar.account.createKeyPair() let recoveryKp = wallet.stellar.account.createKeyPair() ``` - + La `accountKp` es la cuenta principal de la billetera. El `deviceKp` que vamos a agregar a la billetera como un firmante para que un dispositivo (por ejemplo, un dispositivo móvil en el que se aloja la billetera) pueda tomar control de la cuenta. Y el `recoveryKp` se utilizará para identificar la clave con los servidores de recuperación. A continuación, identifiquemos los servidores de recuperación y creemos nuestro objeto de recuperación: - + ```typescript const server1Key = "server1"; @@ -103,11 +103,11 @@ let servers = [first: firstServer, second:secondServer] let recovery = wallet.recovery(servers: servers) ``` - + A continuación, necesitamos definir identidades SEP-30. En este ejemplo vamos a crear una identidad para ambos servidores. Registrar una identidad le dice al servidor de recuperación qué identidades están autorizadas para acceder a la cuenta. - + ```typescript const identity1 = { @@ -172,7 +172,7 @@ let identity2 = [ ] ``` - + Aquí, la clave de stellar y el correo electrónico se utilizan como métodos de recuperación. Otros servidores de recuperación pueden soportar el teléfono como método de recuperación también. @@ -180,7 +180,7 @@ Puedes leer más sobre identidades SEP-30 [aquí](https://github.com/stellar/ste A continuación, creemos una cuenta recuperable: - + ```typescript const config = { @@ -228,7 +228,7 @@ let config = RecoverableWalletConfig(accountAddress: accountKp, let recoverableWallet = try await recovery.createRecoverableWallet(config: config) ``` - + Con los parámetros dados, esta función creará una transacción que hará: @@ -239,7 +239,7 @@ Con los parámetros dados, esta función creará una transacción que hará: Finalmente, firma y envía la transacción a la red: - + ```typescript recoverableWallet.transaction.sign(accountKp.keypair); @@ -265,13 +265,13 @@ try transaction.sign(keyPair: accountKp.keyPair, network: Network.testnet) try await wallet.stellar.submitTransaction(signedTransaction: transaction) ``` - + ## Obtener Información de la Cuenta Puedes obtener información de la cuenta desde uno o más servidores. Para hacerlo, primero necesitamos autenticar con un servidor de recuperación usando el método de autenticación SEP-10: - + ```typescript const authToken = await recovery @@ -293,11 +293,11 @@ let sep10 = try await recovery.sep10Auth(key: first) let authToken = try await sep10.authenticate(userKeyPair: recoveryKp) ``` - + A continuación, obtiene información de la cuenta utilizando los tokens de autenticación: - + ```typescript const accountResp = await recovery.getAccountInfo(accountKp, { @@ -320,13 +320,13 @@ let accountInfo = try await recovery.getAccountInfo(accountAddress: accountKp, auth: [first:auth1Token.jwt]) ``` - + Nuestra segunda identidad utiliza un correo electrónico como método de autenticación. Para eso no podemos usar un token de autenticación [SEP-10] para ese servidor. En cambio, necesitamos usar un token que vincule el correo electrónico al usuario. Por ejemplo, los tokens de Firebase son un buen caso de uso para esto. Para usar esto, el servidor de firmante de recuperación necesita estar preparado para manejar este tipo de tokens. Obtener información de la cuenta usando estos tokens es lo mismo que antes. - + ```typescript // get token from firebase @@ -355,7 +355,7 @@ let accountInfo = try await recovery.getAccountInfo(accountAddress: accountKp, auth: [second:]) ``` - + ## Recuperar Billetera @@ -363,7 +363,7 @@ Supongamos que hemos perdido nuestra clave de dispositivo y necesitamos recupera Primero, necesitamos autenticar con ambos servidores de recuperación: - + ```typescript const authToken1 = await recovery @@ -397,11 +397,11 @@ let auth1 = authToken.jwt let auth2 = "..."; // get other token e.g. firebase token ``` - + Necesitamos conocer las direcciones de los firmantes de recuperación que se utilizarán para firmar la transacción. Puedes obtenerlas de la billetera recuperable que creamos antes (`recoverableWallet.signers`), o mediante la obtención de información de la cuenta desde los servidores de recuperación. - + ```typescript const recoverySignerAddress1 = recoverableWallet.signers[0]; @@ -420,11 +420,11 @@ var recoverySigners = recoverableWallet.signers; let recoverySigners = recoverableWallet.signers ``` - + A continuación, crea una nueva clave de dispositivo y recupera una transacción firmada que reemplace la clave de dispositivo: - + ```typescript const newDeviceKp = accountService.createKeypair(); @@ -485,7 +485,7 @@ let signedReplaceKeyTx = try await recovery.replaceDeviceKey(account: accountKp, serverAuth: serverAuth) ``` - + Llamar a esta función creará una transacción que bloquea la clave de dispositivo anterior y la reemplaza con tu nueva clave (teniendo el mismo peso que la antigua). Ambos firmantes de recuperación habrán firmado la transacción. @@ -500,7 +500,7 @@ Nota: también puedes usar funciones de bajo nivel `signWithRecoveryServers` par Finalmente, es hora de enviar la transacción: - + ```typescript await stellar.submitTransaction(recoverTxn); @@ -518,6 +518,6 @@ await wallet.stellar().submitTransaction(signedReplaceKeyTx); try await wallet.stellar.submitTransaction(signedTransaction: signedReplaceKeyTx) ``` - + [sep-30]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0030.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep38.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep38.mdx index 738dbb3cbf..cae7325079 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep38.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep38.mdx @@ -5,7 +5,7 @@ sidebar_position: 70 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -18,7 +18,7 @@ Comencemos creando un objeto sep38, que utilizaremos para todas las interaccione La autenticación se realiza utilizando [Sep-10], y añadimos el token de autenticación al objeto sep38. - + ```typescript const accountKp = ... // our account keypair @@ -44,13 +44,13 @@ let authToken = try await sep10.authenticate(userKeyPair: accountKp) let sep38 = try await anchor.sep38(authToken: authToken) ``` - + ## Obtener información del ancla Primero, obtengamos información sobre el soporte del ancla para [SEP-38]. La respuesta proporciona qué activos en cadena de Stellar y activos fuera de cadena están disponibles para el comercio. - + ```typescript const resp = await sep38.info(); @@ -64,7 +64,7 @@ var resp = await sep38.info(); let resp = try await sep38.info ``` - + Por ejemplo, una respuesta se verá así. Los identificadores de activos se describen a continuación en [Formato de Identificación de Activos](#asset-identification-format). @@ -114,7 +114,7 @@ Ahora obtengamos precios [indicativos](https://www.investopedia.com/terms/i/indi En nuestro ejemplo estamos obteniendo precios para vender 5 USD fiduciarios. - + ```typescript const resp = await sep38.prices({ @@ -135,7 +135,7 @@ let response = try await sep38.prices(sellAsset: "iso4217:USD", sellAmount: "5") ``` - + La respuesta proporciona los precios de los activos para intercambiar el activo de venta solicitado. Por ejemplo, una respuesta se verá así: @@ -159,7 +159,7 @@ Una vez más, este es un valor indicativo. El precio real se calculará en el mo Debe proporcionarse un valor de `sellAmount` o `buyAmount`, pero no ambos. Y `context` se refiere a qué contexto de SEP de Stellar se utilizará (es decir, `sep6`, `sep24` o `sep31`). - + ```typescript const resp = await sep38.price({ @@ -189,7 +189,7 @@ let resp = try await sep38.price( sellAmount: "5") ``` - + La respuesta proporciona información para intercambiar estos activos. Por ejemplo, una respuesta se verá así: @@ -203,7 +203,7 @@ Ahora obtengamos una cotización [firme](https://www.investopedia.com/terms/f/fi El cuerpo de la solicitud es similar a la llamada `.price()` que hicimos anteriormente. - + ```typescript const requestResp = await sep38.requestQuote({ @@ -233,7 +233,7 @@ let resp = try await sep38.requestQuote( sellAmount: "5") ``` - + Sin embargo, ahora la respuesta proporciona un `id` que podemos utilizar para identificar la cotización. El campo `expires_at` nos indica cuánto tiempo el ancla esperará para recibir fondos por esta cotización. @@ -255,7 +255,7 @@ Una respuesta de ejemplo se verá así: Ahora obtengamos la cotización solicitada anteriormente. Para hacerlo, utilizamos el `id` de la respuesta de `.requestQuote()`. - + ```typescript const quoteId = requestResp.id; @@ -272,7 +272,7 @@ let quoteId = requestResp.id let getResp = try await sep38.getQuote(quoteId: quoteId) ``` - + La respuesta debería coincidir con la proporcionada por `.requestQuote()` que hicimos anteriormente. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep6.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep6.mdx index f8e7fc02ba..2eb1bee47f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep6.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep6.mdx @@ -5,7 +5,7 @@ sidebar_position: 60 import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx";
@@ -18,7 +18,7 @@ Por favor, nota que esto es para depósitos y retiradas _programáticas_. Para d Comencemos creando un objeto sep6, que usaremos para todas las interacciones SEP-6: - + ```typescript const sep6 = anchor.sep6(); @@ -32,11 +32,11 @@ var sep6 = anchor.sep6(); let sep6 = anchor.sep6 ``` - + Primero, obtengamos información sobre el soporte del ancla para [SEP-6]. Esta solicitud no requiere autenticación y devolverá información genérica, como las monedas admitidas y las funciones admitidas por el ancla. Puedes obtener una lista completa de campos devueltos en la [especificación SEP-6](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#info). - + ```typescript const info = await sep6.info(); @@ -50,7 +50,7 @@ var info = await sep6.info(); let info = try await sep6.info() ``` - + ## Iniciar un depósito @@ -66,7 +66,7 @@ Antes de comenzar con el flujo de depósito, asegúrate de que la cuenta del usu Comencemos con un depósito básico. Usaremos `account` para representar la clave pública de nuestra cuenta. - + ```typescript const deposit = await sep6.deposit({ @@ -95,7 +95,7 @@ case .depositSuccess(let how, let id, let eta, let minAmount, let maxAmount, let } ``` - + Hay varios tipos de respuestas, dependiendo de si el ancla necesita más información. Todos los depósitos y retiros tendrán estos mismos tipos de respuesta: @@ -132,7 +132,7 @@ Un ejemplo de respuesta: Mostremos cómo una billetera puede manejar esta situación. Primero, obtenemos el objeto de respuesta del depósito. Si la respuesta incluye este error, entonces podemos ver qué campos faltantes está requiriendo el ancla. - + ```typescript if (deposit.type === "non_interactive_customer_info_needed") { @@ -154,11 +154,11 @@ case .missingKYC(let fields): } ``` - + La billetera tendrá que manejar la visualización al usuario sobre qué campos están faltando. Y luego, para agregar esos campos, podemos usar la clase sep12 así: - + ```typescript const sep12 = await anchor.sep12(authToken); @@ -202,7 +202,7 @@ let sep9Info = [ let addResponse = try await sep12.add(sep9Info: sep9Info) ``` - + Luego, podemos volver a llamar al método de depósito como antes y debería ser exitoso. @@ -214,7 +214,7 @@ Un ancla puede responder a una solicitud de depósito o retiro diciendo que nece Vamos a agregar algo de información KYC para nuestra cuenta utilizando datos de ejemplo. Los datos binarios (por ejemplo, datos de imagen) deben enviarse en un campo separado. Los campos permitidos que se pueden enviar al ancla se describen en [SEP-9]. - + ```typescript const sep12 = await anchor.sep12(authToken); @@ -278,13 +278,13 @@ let sep9Files = [ let addResponse = try await sep12.add(sep9Info: sep9Info, sep9Files: sep9Files) ``` - + ## Iniciar un retiro Iniciar un retiro es similar a un depósito y tiene los mismos tipos de respuesta que se describieron anteriormente. - + ```typescript const resp = await sep6.withdraw({ @@ -323,7 +323,7 @@ let resp = try await anchor.sep6.withdraw(params: withdrawParams, authToken: authToken) ``` - + ## Obtener información de intercambio @@ -333,7 +333,7 @@ Las funciones de intercambio sep6 permiten a un usuario iniciar un depósito o r Primero, comencemos un depósito de intercambio con datos de ejemplo. Los activos se describen utilizando el esquema [SEP-38]. - + ```typescript const resp = await sep6.depositExchange({ @@ -367,13 +367,13 @@ let resp = try await anchor.sep6.depositExchange(params: params, authToken: authToken) ``` - + La respuesta sigue los mismos tipos que todos los depósitos y retiros de SEP-6. -Ahora vamos a crear un retiro de intercambio, que sigue el mismo formato que el depósito de intercambio. También especificamos que es un retiro de cuenta bancaria utilizando el campo `type`. +Ahora vamos a crear un retiro de intercambio, que sigue el mismo formato que el depósito de intercambio. También especificamos que es una retirada de fondos desde una cuenta bancaria usando el campo `type`. - + ```typescript const resp = await sep6.withdrawExchange({ @@ -410,7 +410,7 @@ let resp = try await anchor.sep6.withdrawExchange(params: params, authToken: authToken) ``` - + La respuesta sigue los mismos tipos que todos los depósitos y retiros de SEP-6. @@ -422,7 +422,7 @@ En el flujo típico, la billetera obtendría datos de transacción para notifica Veamos cómo usar el sdk para rastrear los cambios en el estado de la transacción. Usaremos la clase `Watcher` para este propósito. Primero, inicialízala y comienza a rastrear una transacción. - + ```typescript const watcher = anchor.sep6().watcher(); @@ -476,11 +476,11 @@ NotificationCenter.default.addObserver(self, } ``` - + Alternativamente, podemos rastrear múltiples transacciones para el mismo activo. - + ```typescript const watcher = anchor.sep6().watcher(); @@ -532,13 +532,13 @@ NotificationCenter.default.addObserver(self, } ``` - + ### Obteniendo transacción Mientras que la clase `Watcher` ofrece potentes capacidades de seguimiento, a veces es necesario simplemente obtener una transacción (o transacciones) una vez. La clase `Anchor` te permite obtener una transacción por ID, ID de transacción Stellar o ID de transacción externa: - + ```typescript const transaction = await anchor @@ -559,11 +559,11 @@ let transaction = try await anchor.sep6.getTransactionBy( transactionId:transactionId) ``` - + También es posible obtener transacciones por el activo. - + ```typescript const transactions = await anchor.sep6().getTransactionsForAsset({ @@ -586,7 +586,7 @@ let transactions = try await anchor.sep6.getTransactionsForAsset( ``` - + [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep7.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep7.mdx index 1809c5b492..0dcdc6d8d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep7.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/sep7.mdx @@ -4,7 +4,7 @@ sidebar_position: 80 --- import Header from "./component/header.mdx"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample";
@@ -14,7 +14,7 @@ El estándar [Sep-7] define una manera para que una aplicación que no es una bi La operación tx representa una solicitud para firmar un sobre de transacción específico, con [algunos parámetros configurables]. - + ```typescript const sourceAccountKeyPair = "G..."; @@ -54,11 +54,11 @@ let uri = try wallet.parseSep7Uri(uri: txUri) // uri can be parsed and transaction can be signed/submitted by an application that implements Sep-7 ``` - + Puedes establecer reemplazos que serán realizados en el xdr para campos específicos por la aplicación, estos serán añadidos en el [formato de representación de transacciones Sep-11] a la URI. - + ```typescript const uri = new Sep7Tx(txUri); @@ -92,11 +92,11 @@ if let uri = uri as? Sep7Tx { } ``` - + Puedes asignar parámetros después de crear la instancia inicial utilizando el setter apropiado para el parámetro. - + ```typescript const sourceAccountKeyPair = "G..."; @@ -135,13 +135,13 @@ try uri.setMsg(msg: "here goes a message") let uriStr = uri.toString() // encodes everything and converts to a uri string ``` - + ## Operación de pago La operación de pago representa una solicitud para pagar una dirección específica con un activo específico, independientemente del activo fuente utilizado por el pagador. Puedes [configurar parámetros] para construir la operación de pago. - + ```typescript const destination = "G..."; @@ -182,11 +182,11 @@ uri = try Sep7.parseSep7Uri(uri: payUri) // uri can be parsed and transaction can be built/signed/submitted by an application that implements Sep-7 ``` - + Puedes asignar parámetros después de crear la instancia inicial utilizando el setter apropiado para el parámetro. - + ```typescript const uri = wallet.Sep7Pay.forDestination("G..."); @@ -218,11 +218,11 @@ uri.setAmount(amount: "10") uri.toString() // encodes everything and converts to a uri string ``` - + El último paso después de construir un `Sep7Tx` o `Sep7Pay` es agregar una firma a tu uri. Esto creará una carga útil de la transacción y la firmará con el keypair proporcionado. - + ```typescript const uri = wallet.Sep7Pay.forDestination("G..."); @@ -248,11 +248,11 @@ try uri.addSignature(keyPair: keyPair) print(uri.getSignature()) // signed uri payload ``` - + La firma puede ser verificada al obtener el [archivo toml de Stellar] del dominio de origen en la uri, y utilizando la clave de firma incluida para verificar la firma de la uri. Todo esto se realiza como parte del método `verifySignature`. - + ```typescript const passesVerification = await uri.verifySignature(); // true or false @@ -266,10 +266,10 @@ final passesVerification = await uri.verifySignature(); // true or false let passesVerification = await uri.verifySignature() // true or false ``` - + [Sep-7]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md [formato de representación de transacciones Sep-11]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0011.md [algunos parámetros configurables]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md#operation-tx [configurar parámetros]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0007.md#operation-pay -[archivo toml de Stellar]: https://developers.stellar.org/docs/build/apps/example-application-tutorial/anchor-integration/sep1 +[archivo toml de Stellar]: ../../apps/example-application-tutorial/anchor-integration/sep1.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/stellar.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/stellar.mdx index 4b20ef495e..3e7b0ad460 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/stellar.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/apps/wallet/stellar.mdx @@ -4,7 +4,7 @@ sidebar_position: 30 --- import { LanguageSpecific } from "@site/src/components/LanguageSpecific"; -import { WalletCodeExample as CodeExample } from "@site/src/components/WalletCodeExample"; +import { WalletCodeExample } from "@site/src/components/WalletCodeExample"; import Header from "./component/header.mdx"; import CreateKeyPairInfo from "./component/ts/createKeypairInfo.mdx"; @@ -16,7 +16,7 @@ En la sección anterior aprendimos cómo crear una billetera y un objeto `Stella La entidad más básica en la red Stellar es una cuenta. Miremos el AccountService que proporciona la capacidad de trabajar con cuentas: - + ```kt val account = wallet.stellar().account() @@ -34,11 +34,11 @@ var account = wallet.stellar().account(); let account = wallet.stellar.account ``` - + Ahora podemos crear un par de claves: - + ```kt val accountKeyPair = account.createKeyPair() @@ -56,7 +56,7 @@ var accountKeyPair = account.createKeyPair(); let accountKeyPair = account.createKeyPair() ``` - + } /> @@ -72,7 +72,7 @@ Primero, veamos cómo construir transacciones básicas. La transacción de crear cuenta activa/crea una cuenta con un saldo inicial de XLM (1 XLM por defecto). - + ```kotlin suspend fun createAccount(): Transaction { @@ -97,13 +97,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.createAccount(newAccount: destinationAccountKeyPair).build() ``` - + #### Modificar Cuenta Puedes bloquear la clave maestra de la cuenta estableciendo su peso en 0. Ten cuidado al bloquear la clave maestra de la cuenta. Asegúrate de haber establecido los firmantes y pesos correctos. De lo contrario, bloquearás la cuenta de forma irreversible. - + ```kotlin suspend fun lockMasterKey(): Transaction { @@ -129,11 +129,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.lockAccountMasterKey().build() ``` - + Añadir un nuevo firmante a la cuenta. Ten cuidado al añadir nuevos firmantes y asegúrate de establecer el peso del firmante correcto. De lo contrario, bloquearás la cuenta de forma irreversible. - + ```kotlin val newSignerKeyPair = account.createKeyPair() @@ -163,11 +163,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.addAccountSigner(signerAddress: newSignerKeyPair, signerWeight: 10).build() ``` - + Eliminar un firmante de la cuenta. - + ```kotlin suspend fun removeSigner(): Transaction { @@ -189,11 +189,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.removeAccountSigner(signerAddress: newSignerKeyPair).build() ``` - + Modificar los umbrales de la cuenta (útil cuando se asignan varios firmantes a la cuenta). Esto te permite restringir el acceso a ciertas operaciones cuando no se alcanza el límite. - + ```kotlin suspend fun setThreshold(): Transaction { @@ -215,13 +215,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.setThreshold(low: 1, medium: 10, high: 20).build() ``` - + #### Modificar Activos (Trustlines) Añadir un activo (trustline) a la cuenta. Esto permite a la cuenta recibir transferencias del activo. - + ```kotlin val asset = IssuedAssetId("USDC", "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5") @@ -258,11 +258,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.addAssetSupport(asset: asset).build() ``` - + Eliminar un activo de la cuenta (el saldo del activo debe ser 0). - + ```kotlin suspend fun removeAsset(): Transaction { @@ -284,13 +284,13 @@ let txBuilder = try await stellar.transaction(sourceAddress: sourceAccountKeyPai let tx = try txBuilder.removeAssetSupport(asset: asset).build() ``` - + #### Intercambiar Intercambiar un activo de la cuenta por otro activo diferente. La cuenta debe tener una trustline para el activo de destino. - + ```typescript const txBuilder = await stellar.transaction({ @@ -330,13 +330,13 @@ let txn = try txBuilder.swap(fromAsset: NativeAssetId(), amount: 0.1).build() ``` - + #### Path Pay Enviar un activo de la cuenta de origen y recibir un activo diferente en la cuenta de destino. - + ```typescript const txBuilder = await stellar.transaction({ @@ -385,13 +385,13 @@ let txn = try txBuilder.pathPay(destinationAddress: receivingKp.address, sendAmount: 5).build() ``` - + #### Establecer Memo Establece un memo en la transacción. El objeto memo se puede importar de ["@stellar/stellar-sdk"](https://www.npmjs.com/package/@stellar/stellar-sdk). - + ```typescript import { Memo } from "@stellar/stellar-sdk"; @@ -413,13 +413,13 @@ let memo = Memo.text("Memo string") let tx = try txBuilder.setMemo(memo: memo).build() ``` - + #### Fusión de Cuentas Fusiona la cuenta en una cuenta de destino. - + ```typescript const txBuilder = await stellar.transaction({ @@ -448,13 +448,13 @@ let mergeTxn = try txBuilder.accountMerge(destinationAddress: accountKp.address, sourceAddress: sourceKp.address).build() ``` - + #### Fondos de Cuenta de Test Net Financia una cuenta en la red de pruebas Stellar - + ```typescript wallet.stellar().fundTestnetAccount(accountKp.publicKey); @@ -468,13 +468,13 @@ await wallet.stellar().fundTestNetAccount(accountKp.address); try await wallet.stellar.fundTestNetAccount(address: accountKp.address) ``` - + ### Construyendo Transacciones Avanzadas En algunos casos, es posible que no se conozca una clave privada antes de formar una transacción. Por ejemplo, se debe financiar una nueva cuenta para que exista y la billetera puede no tener la clave de la cuenta, por lo que puede solicitar que la transacción de creación de la cuenta sea patrocinada por un tercero. - + ```kt // Third-party key that will sponsor creating new account @@ -500,11 +500,11 @@ let externalKeyPair = try PublicKeyPair(accountId: "GC5GD...") let newKeyPair = account.createKeyPair() ``` - + Primero, se debe crear la cuenta. - + ```kotlin suspend fun makeCreateTx(): Transaction { @@ -526,11 +526,11 @@ let txBuilder = try await stellar.transaction(sourceAddress: externalKeyPair) let createTxn = try txBuilder.createAccount(newAccount: newKeyPair).build() ``` - + Esta transacción debe enviarse al firmante externo (titular de `externalKeyPair`) para ser firmada. - + ```kt suspend fun remoteSignTransaction(transaction: Transaction) { @@ -572,7 +572,7 @@ let xdrStringFromBackend = await sendTransactionToBackend(xdrString) let signedTransaction = stellar.decodeTransaction(xdr: xdrStringFromBackend) ``` - + :::note @@ -582,7 +582,7 @@ Puedes leer más sobre cómo enviar transacciones XDR al servidor en el [capítu La transacción firmada puede ser presentada por la billetera. - + ```kt suspend fun submitCreateTx(signedCreateTx: Transaction) { @@ -603,11 +603,11 @@ bool success = await stellar.submitTransaction(signedTransaction); try await stellar.submitTransaction(signedTransaction: signedTransaction) ``` - + Ahora, después de crear la cuenta, puede realizar operaciones. Por ejemplo, podemos desactivar el keypair maestro y reemplazarlo con uno nuevo (llamémoslo keypair del dispositivo) atómicamente en una sola transacción: - + ```kotlin suspend fun addDeviceKeyPair() { @@ -671,13 +671,13 @@ stellar.sign(tx: modifyAccountTransaction, try await stellar.submitTransaction(signedTransaction: modifyAccountTransaction) ``` - + #### Añadiendo una Operación Agrega una Operación personalizada a una transacción. Esto puede ser cualquier [Operación](../../../learn/fundamentals/transactions/list-of-operations) admitida por la red Stellar. El objeto Operación se puede importar de ["@stellar/stellar-sdk"](https://www.npmjs.com/package/@stellar/stellar-sdk). - + ```typescript import { Operation } from "@stellar/stellar-sdk"; @@ -726,7 +726,7 @@ let manageDataOperation = ManageDataOperation(sourceAccountId: sourceAccountKeyP let tx = try txBuilder.addOperation(operation: manageDataOperation).build() ``` - + ### Patrocinando Transacciones @@ -734,7 +734,7 @@ let tx = try txBuilder.addOperation(operation: manageDataOperation).build() Algunas operaciones, que modifican las reservas de la cuenta pueden ser [patrocinadas](../../guides/transactions/sponsored-reserves.mdx). Para las operaciones patrocinadas, la cuenta patrocinadora pagará las reservas en lugar de la cuenta que está siendo patrocinada. Esto te permite realizar algunas operaciones, incluso si la cuenta no tiene suficientes fondos para realizar tales operaciones. Para patrocinar una transacción, simplemente inicia un bloque sponsoring:} ts={simplemente crea una función de construcción (describiendo qué operaciones van a ser patrocinadas) y pásala al método sponsoring:}/> - + ```kotlin suspend fun sponsorOperation() { @@ -782,7 +782,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: sponsoredKeyPair) ``` - + :::info @@ -794,7 +794,7 @@ Solo algunas operaciones pueden ser patrocinadas, y un + ```kt suspend fun sponsorAccountCreation() { @@ -850,7 +850,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: newKeyPair) ``` - + Nota cómo en el primer ejemplo la cuenta fuente de la transacción se establece en `sponsoredKeyPair`. Debido a esto, no necesitábamos pasar un valor de cuenta patrocinada al bloque sponsoring} ts={método} />. Ya que cuando se omite, la cuenta patrocinada predetermina a la cuenta fuente de la transacción (`sponsoredKeyPair`). @@ -860,7 +860,7 @@ Sin embargo, esta vez, la cuenta patrocinada (recientemente creada `newKeyPair`) Si deseas crear una cuenta y modificarla en una sola transacción, es posible hacerlo pasando un argumento opcional `sponsoredAccount` al bloque} ts={método patrocinador} /> (`newKeyPair` abajo). Si este argumento está presente, todas las operaciones dentro del bloque patrocinado serán sourcing por esta `sponsoredAccount`. (Excepto la creación de cuenta, que siempre es sourcing por el patrocinador). - + ```kotlin suspend fun sponsorAccountCreationAndModification() { @@ -940,7 +940,7 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: newKeyPair) ``` - + ### Transacción Fee-Bump @@ -948,7 +948,7 @@ Si deseas modificar una cuenta recién creada con un saldo de 0, también es pos Primero, vamos a crear una transacción que reemplazará la clave maestra de una cuenta con un nuevo keypair. - + ```kt val replaceWith = account.createKeyPair() @@ -1000,11 +1000,11 @@ let transaction = try txBuilder.sponsoring( }).build() ``` - + Luego, firma la transacción con ambas claves. - + ```kt transaction.sign(sponsoredKeyPair).sign(sponsorKeyPair) @@ -1025,11 +1025,11 @@ stellar.sign(tx: transaction, keyPair: sponsorKeyPair) stellar.sign(tx: transaction, keyPair: sponsoredKeyPair) ``` - + A continuación, crea un fee bump, apuntando a la transacción. - + ```kt val feeBump = stellar.makeFeeBump(sponsorKeyPair, transaction) @@ -1055,11 +1055,11 @@ let feeBump = try stellar.makeFeeBump(feeAddress: sponsorKeyPair, stellar.sign(tx: transaction, keyPair: sponsorKeyPair) ``` - + Finalmente, presenta una transacción de fee-bump. Ejecutar esta transacción será completamente cubierto por el `sponsorKeyPair` y `sponsoredKeyPair` y puede que ni siquiera tenga fondos en XLM en su cuenta. - + ```kt wallet.stellar().submitTransaction(feeBump) @@ -1077,13 +1077,13 @@ bool success = await stellar.submitTransaction(feeBump); try await stellar.submitTransaction(signedFeeBumpTransaction: feeBump) ``` - + ### Usando XDR para Enviar Datos de Transacción Nota que una billetera puede no tener una clave de firma para `sponsorKeyPair`. En ese caso, es necesario convertir la transacción a XDR, enviarla al servidor, conteniendo `sponsorKey` y devolver la transacción firmada de nuevo a la billetera. Usamos el ejemplo anterior de la creación de cuenta patrocinada, pero esta vez con la clave patrocinadora desconocida para la billetera. El primer paso es definir la clave pública del keypair patrocinador: - + ```kt val sponsorKeyPair = "SponsorAddress".toPublicKeyPair() @@ -1101,11 +1101,11 @@ var sponsorKeyPair = PublicKeyPair.fromAccountId("GC5GD..."); let sponsorKeyPair = try PublicKeyPair(accountId: "GC5GD...") ``` - + A continuación, crea una cuenta de la misma manera que antes y fír mala con `newKeyPair`. Esta vez, convierte la transacción a XDR: - + ```kt suspend fun sponsorAccountCreation(): String { @@ -1161,11 +1161,11 @@ stellar.sign(tx: transaction, keyPair: newKeyPair) let xdrString = transaction.toEnvelopeXdrBase64() ``` - + Ahora puede ser enviado al servidor. En el servidor, fír mala con una clave privada para la dirección del patrocinador: - + ```kt // On the server @@ -1218,11 +1218,11 @@ internal func signTransaction(xdr:String) throws -> String { } ``` - + Cuando el cliente recibe la transacción completamente firmada, puede ser decodificada y enviada a la red Stellar: - + ```kt suspend fun recoverSigned(xdrString: String) { @@ -1258,7 +1258,7 @@ case .invalidXdrErr: } ``` - + ## Enviar Transacción @@ -1272,7 +1272,7 @@ Finalmente, vamos a enviar una transacción firmada a la red Stellar. Nota que u La transacción se vuelve a presentar automáticamente en el error 504 de Horizon (tiempo de espera), que indica un aumento repentino en la actividad de la red. - + ```kotlin suspend fun signAndSubmit() { @@ -1296,13 +1296,13 @@ stellar.sign(tx: transaction, keyPair: sourceAccountKeyPair) try await stellar.submitTransaction(signedTransaction: transaction) ``` - + Sin embargo, el método anterior no maneja elegantemente la fijación de precios de tarifas en aumento en la red. Si la tarifa requerida para que una transacción se incluya en el ledger se vuelve demasiado alta y la transacción caduca antes de entrar en el ledger, este método arrojará una excepción. Así que, en su lugar, el enfoque alternativo es: - + ```kotlin suspend fun submitWithFeeIncrease() { @@ -1348,7 +1348,7 @@ try await stellar.submitWithFeeIncrease( }) ``` - + Esto creará y firmará la transacción que se originó desde el `sourceAccountKeyPair`. Cada 30 segundos, esta función volverá a construir esta transacción con una nueva tarifa (aumentada en 100 stroops), repitiendo la firma y la presentación. Una vez que la transacción sea exitosa, la función devolverá el cuerpo de la transacción. Nota que cualquier otro error finalizará el ciclo de reintentos y se lanzará una excepción. @@ -1356,7 +1356,7 @@ Esto creará y firmará la transacción que se originó desde el `sourceAccountK Es muy sencillo utilizar el SDK de Horizon conectándose a la misma instancia de Horizon que una clase `Wallet`. Para hacerlo, simplemente llama a: - + ```kotlin val server = wallet.stellar().server @@ -1374,11 +1374,11 @@ var server = wallet.stellar().server; let server = wallet.stellar.server ``` - + Y puedes trabajar con la instancia del servidor Horizon: - + ```kt val stellarTransaction = server.transactions().transaction("transaction_id") @@ -1405,4 +1405,4 @@ case .failure(let error): } ``` - + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/archival/test-ttl-extension.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/archival/test-ttl-extension.mdx index 9795f5ee8d..bf9d6d0304 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/archival/test-ttl-extension.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/archival/test-ttl-extension.mdx @@ -145,7 +145,7 @@ env.as_contract(&contract_id, || { }); ``` -Las entradas persistentes son más sutiles: cuando una transacción que se ejecuta en on-chain contiene una entrada persistente que ha sido archivada (es decir, su TTL ha caducado) en la carga de trabajo, entonces el entorno de Soroban ni siquiera se instanciará. Dado que este comportamiento no se puede reproducir directamente en el entorno de prueba, en su lugar se producirá un error 'interno' irreparable tan pronto como se acceda a una entrada archivada, y la prueba hará `panic`: +Las entradas persistentes son más sutiles: cuando una transacción que se ejecuta on-chain contiene una entrada persistente que ha sido archivada (es decir, cuyo TTL ha expirado) en la huella, entonces ni siquiera se instanciará el entorno Soroban. Dado que este comportamiento no se puede reproducir directamente en el entorno de prueba, en su lugar se producirá un error 'interno' irreparable tan pronto como se acceda a una entrada archivada, y la prueba hará `panic`: ```rust #[test] diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/auth/contract-authorization.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/auth/contract-authorization.mdx index 36d1f7f686..62e6d5e4ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/auth/contract-authorization.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/auth/contract-authorization.mdx @@ -8,7 +8,7 @@ description: Aprende sobre la autorización de contratos inteligentes en Stellar Por defecto, los contratos inteligentes pueden ser invocados sin autorización del llamador. La funcionalidad del contrato inteligente puede justificar, o incluso requerir, autorización. Supongamos que queremos leer o escribir información sensible: entonces el acceso al contrato debería estar restringido mediante autorización. Se requiere autorización si el contrato firma transacciones. -Para comprender mejor cómo funciona la autorización, consulta la sección [Seguridad](https://developers.stellar.org/docs/learn/fundamentals/contract-development/authorization). +Para una comprensión más profunda de cómo funciona la autorización, consulta la sección de [Seguridad](../../../learn/fundamentals/contract-development/authorization.mdx). ### Autorización basada en direcciones @@ -76,6 +76,7 @@ Primero, indicamos al entorno que simule todas las autorizaciones y permita que La segunda prueba verifica si ocurrió la autorización esperada y que solo ocurrió la autorización esperada. ```rust +#[test] fn test() { let env = Env::default(); let contract_id = env.register(IncrementContract, {}); @@ -87,7 +88,7 @@ fn test() { assert_eq!(client.increment(&user, &value), 10); - Let expected_auth = AuthorizedInvocation { + let expected_auth = AuthorizedInvocation { function: AuthorizedFunction::Contract(( contract_id.clone(), symbol_short!("increment"), @@ -183,6 +184,7 @@ Las funciones del contrato que usan `require_auth_for_args()` para autorización Primero se realiza una prueba de la función del contrato, donde se simula la autorización, seguida de una prueba de la autorización en sí. ```rust +#[test] fn test() { let env = Env::default(); let contract_id = env.register(IncrementContract, {}); @@ -194,7 +196,7 @@ fn test() { assert_eq!(client.increment(&user, &value), 10); - Let expected_auth = AuthorizedInvocation { + let expected_auth = AuthorizedInvocation { function: AuthorizedFunction::Contract(( contract_id.clone(), symbol_short!("increment"), @@ -244,7 +246,7 @@ test test::test ... ok Los contratos inteligentes pueden invocar funciones en otros contratos (llamadas entre contratos). Estas llamadas directas están implícitamente autorizadas por el invocador y no necesitan ser autorizadas. Sin embargo, la función del contrato invocada puede requerir autorización de un usuario distinto del contrato mismo. Un ejemplo podría ser una función de transferencia, donde un usuario externo debe autorizar la transferencia al contrato actual. -Para ilustrar cómo agregar autorización a una invocación sencilla entre contratos, usamos el [ejemplo de llamadas entre contratos](https://developers.stellar.org/docs/build/smart-contracts/example-contracts/cross-contract-call), que consta de dos contratos separados: uno con una función simple de suma y otro que invoca al primero. +Para ilustrar cómo agregar autorización a una simple invocación entre contratos, usamos el [contrato de ejemplo de Llamadas entre Contratos](../../smart-contracts/example-contracts/cross-contract-call.mdx), que consta de dos contratos separados: uno con una función de contrato para suma simple y otro que invoca al primero. ### Contrato invocador @@ -300,17 +302,17 @@ Usando `env.current_contract_address()`, podemos obtener la dirección del invoc ## 3. Autorización de cuenta de contrato -Los contratos de cuenta personalizados son contratos que implementan una función reservada especial para validar firmas externas dentro del contexto de autorización correspondiente. Los contratos de cuenta personalizados son esencialmente contratos normales, con una capacidad añadida para verificar autorizaciones externas. +Las cuentas de contrato son contratos que implementan una función reservada especial para validar firmas proporcionadas externamente dentro del contexto de autorización respectivo. Estas cuentas son esencialmente contratos regulares, con una capacidad añadida para verificar la autenticación proporcionada externamente. ### `__check_auth()` -Un contrato que implementa la interfaz `CustomAccountInterface` para autorizar llamadas se convierte en un contrato de cuenta personalizado. La interfaz contiene una única función llamada `__check_auth()`. La función es reservada y la invoca automáticamente el Host cuando un contrato autoriza una transacción. No puede ser llamada manualmente. +Un contrato que implementa la interfaz `CustomAccountInterface` para autorizar llamadas se convierte en una cuenta de contrato. La interfaz contiene una única función llamada `__check_auth()`. La función es reservada y la invoca automáticamente el Host cuando un contrato autoriza una transacción. No puede ser llamada manualmente. La función `__check_auth()` puede ser invocada para un contrato dado si se cumplen dos condiciones. La primera condición es cuando se llaman a `require_auth()` o `require_auth_for_args()`. La segunda condición ocurre cuando un contrato de cuenta no provee autorización al invocador, por ejemplo, llamando a una función que requiere autorización directamente. #### Cómo funciona -La función `__check_auth()` puede implementar las verificaciones adecuadas, tales como verificación de firmas, límites de gasto o comprobaciones de saldo. El [código ejemplo de Cuenta Simple](https://github.com/stellar/soroban-examples/tree/main/simple_account) muestra una implementación muy sencilla de `__check_auth()`. +`__check_auth()` verifica las credenciales y la política para una dirección de cuenta cada vez que otro contrato invoca `require_auth`. Una implementación mínima, mostrada a continuación y documentada de principio a fin en el [ejemplo de Cuenta Simple](../../smart-contracts/example-contracts/simple-account.mdx), carga una keypair Ed25519 almacenada y verifica la firma del payload contra ella: ```rust pub fn __check_auth( @@ -329,71 +331,38 @@ La función `__check_auth()` puede implementar las verificaciones adecuadas, tal } ``` -El ejemplo de Cuenta Simple tiene una función `init()`, que se usa para almacenar la clave pública ed25519 del propietario. Cuando se llama a `require_auth()`, `__check_auth()` comprueba si la carga útil está firmada por el propietario. +Las cuentas más avanzadas se basan en la misma estructura: el [ejemplo de Cuenta Compleja](../../smart-contracts/example-contracts/complex-account.mdx) añade múltiples firmantes, pesos de firmas y límites de gasto aplicados mediante la navegación del `auth_context`. #### Lógica de autorización -La lógica de autorización dentro de `__check_auth()` puede ser escrita para ajustarse al propósito de la verificación. Algunos ejemplos de verificaciones comunes son: - -- Todos los firmantes requeridos han firmado -- Autorizar llamadas entre contratos -- Condiciones como límites de gasto o restricciones de usuario, etc. - -Consulta los ejemplos de contratos inteligentes para ver cómo podría implementarse `__check_auth()`. El [ejemplo de cuenta personalizada](https://github.com/stellar/soroban-examples/tree/main/account) es un buen punto de partida. +Puedes personalizar `__check_auth()` para aplicar las reglas que la cuenta requiera. Las verificaciones comunes incluyen comprobar que estén todos los firmantes necesarios, limitar qué subinvocaciones entre contratos están permitidas o aplicar límites de gasto. Consulta los ejemplos de Cuenta Simple y Compleja para implementaciones completas. ### Cómo probar -Como se mostró en ejemplos anteriores, la autorización puede ser simulada en pruebas añadiendo env.mock_all_auths(). Sin embargo, la función `check_auth()` no será llamada por la prueba al simular la autorización. Esto no significa que no podamos probar la función `check_auth()`; existen dos métodos diferentes para probar la autorización, incluyendo la función `check_auth()`. `try_invoke_contract_check_auth()` La manera más fácil de probar `check_auth()` es usar la utilidad de prueba try_invoke_contract_check_auth, que simula una llamada host a la función `__check_auth()` y la prueba tratándola como una función habitual. - -El [ejemplo de cuenta simple](https://github.com/stellar/soroban-examples/tree/main/simple_account) muestra una implementación muy básica de `try_invoke_contract_check_auth`. Primero veamos la función `__check_auth()`: +Como se muestra en ejemplos anteriores, la autorización se puede simular en pruebas añadiendo `env.mock_all_auths()`. Sin embargo, `mock_all_auths` omite `__check_auth()`, por lo que aún necesitas cobertura directa de la lógica de la cuenta. La forma recomendada es llamar a `env.try_invoke_contract_check_auth`, que emula el host e introduce un payload, firma(s) y contexto de autorización en tu cuenta. Un patrón típico es: ```rust - #[allow(non_snake_case)] - pub fn __check_auth( - env: Env, - signature_payload: BytesN<32>, - signature: BytesN<64>, - _auth_context: Vec, - ) { - let public_key: BytesN<32> = env - .storage() - .instance() - .get::<_, BytesN<32>>(&DataKey::Owner) - .unwrap(); - - env.crypto() - .ed25519_verify(&public_key, &signature_payload.into(), - &signature); - } -``` - -Si vemos la función `__check_auth()`, se requieren un payload, una firma y un contexto; así que necesitamos proporcionar los mismos parámetros en `try_invoke_contract_check_auth`, junto con la dirección del contrato. - -```rust - #[test] - fn test_account() { - let env = Env::default(); - let signer = generate_keypair(); - let payload = BytesN::random(&env); - +#[test] +fn test_account() { + let env = Env::default(); + let signer = generate_keypair(); + let payload = BytesN::random(&env); - ... + ... - account_contract.init(&signer.public.to_bytes().into_val(&env)); + account_contract.init(&signer.public.to_bytes().into_val(&env)); - env.try_invoke_contract_check_auth::( - &account_contract.address, - &payload, - sign(&env, &signer, &payload), - &vec![&env], - ) - .unwrap(); - } + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + sign(&env, &signer, &payload), + &vec![&env], + ) + .unwrap(); +} ``` -El script de prueba crea un firmante y un payload aleatorio. La función del contrato `init()` es llamada con el firmante como argumento. El propósito de la función `init()` es almacenar la clave pública del firmante como propietario del contrato, para que la función `__check_auth()` pueda verificar si el firmante es el propietario definido en `init()`. - -Como muestra este caso de prueba, probar `__check_auth()` es muy sencillo usando `try_invoke_contract_check_auth`, y es el método recomendado para probar la autorización con `__check_auth()`. Consulta el ejemplo de cuenta simple para ver el código completo de la prueba. +Ese fragmento destaca las entradas clave: dirección del contrato, payload, firma y árbol de autorización. Para las pruebas completas, consulta el [ejemplo de Cuenta Simple](../../smart-contracts/example-contracts/simple-account.mdx); la documentación de Cuenta Compleja incluye cobertura de multisig y políticas. #### `set_auths()` @@ -476,6 +445,6 @@ De forma similar a cómo el host ejecuta la autorización en Testnet y Mainnet, Una `SorobanAuthorizationEntry` contiene credenciales de autorización y detalles de la invocación del contrato. La parte de credenciales especifica la dirección del contrato de la función `__check_auth()` y los datos relevantes de autorización. La parte de invocación raíz especifica el ID del contrato, el nombre de la función que se prueba, y sus argumentos. -Para más información sobre los detalles de autorización proporcionados en `set_auths()`, consulta la documentación de [Transacciones Stellar](https://developers.stellar.org/docs/learn/fundamentals/contract-development/contract-interactions/stellar-transaction). +Para obtener más información sobre los detalles de autorización proporcionados en `set_auths()`, consulta la documentación de [Transacciones Stellar](../../../learn/fundamentals/contract-development/contract-interactions/stellar-transaction.mdx). Probar usando `set_auths()` es más complejo que usar `try_invoke_contract_check_auth`, pero permite escenarios de prueba más avanzados. Si se requiere probar casos avanzados, como pruebas de bordes específicas de autorización, `set_auths()` puede ser una buena opción. De lo contrario, generalmente se recomienda el método `try_invoke_contract_check_auth` para pruebas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/classic-transition.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/classic-transition.mdx index d00b2fd62c..6aa4aba0fb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/classic-transition.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/classic-transition.mdx @@ -20,7 +20,7 @@ Puedes configurar un entorno RPC al alojar tu propio nodo o utilizando un provee ### Ingestar Eventos de Contratos Inteligentes -Horizon ofrece un endpoint de efectos que describe los cambios de estado ejecutados por operaciones clásicas. De manera similar, los contratos emiten [eventos](../../../learn/fundamentals/stellar-data-structures/events.mdx) que describen cambios en su estado, los cuales pueden ser consultados mediante la API de RPC. Las soluciones off-chain pueden [monitorear e ingresar estos eventos](../../../build/guides/events/ingest.mdx) (para transferencias de tokens o actualizaciones de protocolo) y mantenerse en sincronía con los datos on-chain. Cada evento está definido por el contrato y está sujeto a los estándares aplicados a la implementación. Dependiendo de los requisitos de retención, una solución podría tener que manejar la ingestión directamente o usar un [servicio de terceros](../../../data/indexers/indexer-providers/indexer-providers.mdx) para una historia a más largo plazo. +Horizon ofrece un endpoint de efectos que describe los cambios de estado ejecutados por operaciones clásicas. De manera similar, los contratos emiten [eventos](../../../learn/fundamentals/stellar-data-structures/events.mdx) que describen cambios en su estado, los cuales pueden ser consultados mediante la API de RPC. Las soluciones off-chain pueden [monitorear e ingresar estos eventos](../../../build/guides/events/ingest.mdx) (para transferencias de tokens o actualizaciones de protocolo) y mantenerse en sincronía con los datos on-chain. Cada evento está definido por el contrato y está sujeto a los estándares aplicados a la implementación. Dependiendo de los requisitos para la retención, una solución podría tener que manejar la ingestión directamente o usar un [servicio de terceros](../../../data/indexers/README.mdx) para un historial a largo plazo. ### Simulando Transacción diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/verify-trustlines.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/verify-trustlines.mdx index c22190fab4..3668be0cdc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/verify-trustlines.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/basics/verify-trustlines.mdx @@ -4,9 +4,6 @@ sidebar_position: 40 description: Aprende a verificar trustlines antes de enviar transacciones a Stellar. --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - Al realizar pagos en Stellar para [Activos Stellar](../../../tokens/README.mdx) que no sean XLM, es importante asegurarse de que la cuenta receptora tenga establecida una trustline para el activo que se envía. Esta página ofrece una visión rápida de cómo verificar los trustlines antes de enviar transacciones, asegurando que los pagos se procesen sin problemas y permitiendo que la aplicación maneje adecuadamente los casos en que los trustlines no estén establecidos o sean inválidos. ## ¿Por qué verificar los trustlines? @@ -231,9 +228,9 @@ Para este ejemplo, usaremos SAC como interfaz de contrato inteligente para el ac Esta función puede ser accedida directamente en una invocación de contrato inteligente como demuestra el ejemplo a continuación, o también puede ser invocada por otro contrato, permitiendo construir interacciones más complejas y programabilidad en contratos inteligentes. - - Para usar el ejemplo de RPC a continuación, primero debes generar las bindings del contrato para que - el cliente pueda usarse según corresponda. Esto puede lograrse a través del [CLI Stellar](../../../tools/cli/README.mdx). +:::info + +Para usar el ejemplo RPC que aparece a continuación, primero debes generar los enlaces del contrato para que el cliente pueda utilizarse correctamente. Esto se puede lograr mediante el [Stellar CLI](../../../tools/cli/README.mdx). Por ejemplo: Generando los bindings en TypeScript para el contrato `sac` de un activo dado: @@ -241,7 +238,7 @@ Por ejemplo: Generando los bindings en TypeScript para el contrato `sac` de un a stellar contract bindings typescript --network=testnet --contract-id=CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA --output-dir=./bindings ``` - +::: Dada una dirección receptora, el siguiente fragmento de código demuestra cómo simular una transacción para verificar si existe un trustline para un activo específico: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/README.mdx new file mode 100644 index 0000000000..46fb959cf6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/README.mdx @@ -0,0 +1,25 @@ +--- +title: Cuentas de contrato +hide_table_of_contents: true +sidebar_class_name: sidebar-category-items-hidden +sidebar_position: 5 +description: Construye, evalúa y amplía las cuentas de contrato en Stellar. +--- + +Las cuentas de contrato son contratos inteligentes que actúan como cuentas. Mantienen saldos y usan `__check_auth` para decidir quién puede actuar y bajo qué condiciones. + +Usa una cuenta de contrato cuando: + +- Necesites autenticación personalizada en el contrato (passkeys/WebAuthn, claves hardware u otras verificaciones de firmantes). +- Necesites reglas en cadena como límites de gasto, listas permitidas o bloqueos temporales. + +Mantente con una cuenta clásica cuando: + +- Quieres la opción más simple: una clave privada, financia la cuenta, sin código extra de contrato ni infraestructura. +- Debas interoperar con sistemas/herramientas que esperan memos (por ejemplo, algunos exchanges requieren pagos con memos desde una dirección G; los pagos de cuentas de contrato pasan por el Stellar Asset Contract como transferencias muxed, por lo que las transferencias desde contratos no son soportadas por exchanges actualmente). + +Enlaces rápidos: + +- [Ejemplo de cuenta sencilla](../../smart-contracts/example-contracts/simple-account.mdx) +- [Ejemplo de cuenta compleja](../../smart-contracts/example-contracts/complex-account.mdx) +- [Guía introductoria de autorización de contrato](../auth/contract-authorization.mdx) y [Fundamentos de autorización](../../../learn/fundamentals/contract-development/authorization.mdx) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/_category_.json new file mode 100644 index 0000000000..163cb24ca4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/_category_.json @@ -0,0 +1,3 @@ +{ + "collapsible": false +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/advanced-patterns.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/advanced-patterns.mdx new file mode 100644 index 0000000000..cff7b262b2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/advanced-patterns.mdx @@ -0,0 +1,49 @@ +--- +title: Patrones avanzados de cuenta de contrato +description: Límites de gasto por capa, listas de permitidos, reglas de tiempo y otros mecanismos de protección para cuentas de contrato. +sidebar_position: 40 +--- + +Utiliza estos patrones para extender una cuenta de contrato básica con mecanismos de protección. Coloca la lógica en `__check_auth` o en un auxiliar que este llame, y prueba tanto las rutas de autorización como de denegación. Trata las reglas del firmante como “quién puede actuar” y las reglas de la política como “bajo qué condiciones.” + +## Límites de gasto + +- Almacena un límite y un total acumulado en el almacenamiento de la instancia (por ejemplo, salidas durante las últimas 24 horas). +- Deriva una clave de ventana a partir de la marca temporal del libro mayor (por ejemplo, `day = timestamp / 86_400`) y reinicia el total cuando la ventana cambia. +- En cada solicitud, verifica la asignación restante; si la cantidad la excedería, rechaza y emite un evento con la cantidad intentada y la asignación restante. + +Consulta el [ejemplo de Cuenta Compleja](../../smart-contracts/example-contracts/complex-account.mdx) para una implementación de referencia con firmantes ponderados y límites. + +## Listas de permitidos + +- Mantén las direcciones de destino permitidas o IDs de contrato en el almacenamiento. +- Inspecciona tanto la invocación raíz como las subinvocaciones en `auth_context` antes de aprobar para que las llamadas anidadas no puedan evitar la lista. + +## Firmantes de políticas + +- Define uno o más roles de firmantes de políticas en el almacenamiento. Un firmante de política existe para aprobar o denegar acciones específicas (por ejemplo, una clave de auditor, una clave de guardián, o un servicio que aplica reglas de gasto). +- Para llamadas de contrato de alto riesgo (p. ej., transferencias grandes, cambio de firmantes), requiere tanto al usuario final como a un firmante de política; rechaza si falta alguno de los dos. +- Separa roles (administrador vs. estándar) para que el uso diario pueda delegarse mientras las actualizaciones o recuperación se mantengan con administradores. + +## Reglas de tiempo + +- Bloquea la ejecución hasta una marca temporal específica del libro mayor, o agrega un tiempo de espera tras acciones como rotación de claves o transferencias grandes. +- Almacena la marca temporal más temprana permitida en el almacenamiento de la instancia; compárala con la marca temporal actual del libro mayor en `__check_auth`. + +## Claves de sesión + +- Genera una clave de sesión de corta duración (por ejemplo, una clave p256 creada del lado del cliente y guardada en almacenamiento seguro del navegador) y limita su uso a una función y a una cantidad máxima. +- Guarda un registro para la clave de sesión con su expiración, alcance permitido y asignación restante; reduce la asignación en cada llamada autorizada. +- Rechaza si la clave de sesión es desconocida, ha expirado, no tiene asignación o se usa fuera de su alcance permitido. + +## Contratos de política externos + +- Delegar verificaciones específicas (listas de denegados, ventanas temporales, postura del dispositivo) a un contrato de política dedicado; pasa el contexto a `__check_auth` y exige que el contrato de política apruebe antes de devolver éxito. +- Mantén la interfaz de la política mínima (por ejemplo, `fn approve(auth_context) -> bool`) para que puedas cambiar políticas sin modificar tu cuenta. + +## A dónde ir a continuación + +- Consulta estos patrones aplicados en los [ejemplos de cuentas de contrato](./examples.mdx). +- Explora implementaciones de referencia y bibliotecas: + - [Contratos Stellar de OpenZeppelin](https://github.com/OpenZeppelin/stellar-contracts/) + - [Cuenta inteligente Crossmint](https://github.com/Crossmint/stellar-smart-account) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/examples.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/examples.mdx new file mode 100644 index 0000000000..d65a3ff176 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/examples.mdx @@ -0,0 +1,47 @@ +--- +title: Ejemplos de cuentas contrato +description: Proyectos reales que muestran firmantes de políticas, passkeys y la experiencia de usuario de cuentas contrato en Stellar. +sidebar_position: 50 +--- + +Utiliza estos proyectos como referencias o puntos de partida. Están desarrollados por la comunidad; revisa y prueba antes de reutilizarlos en producción. + +### Zafegard + +Una billetera inteligente que demuestra el uso de firmantes de política con estado. + +- Ver el [código](https://github.com/kalepail/zafegard) +- Ver el [video demostrativo](https://www.youtube.com/watch?v=I4i6sL-pHrs) + +### Haz matemáticas + +Una billetera inteligente que demuestra el uso de multi-sig y firmantes de políticas para, sorprendentemente, hacer matemáticas sin necesidad de introducir un passkey para cada interacción. + +- Ver el [código](https://github.com/kalepail/do-math) +- Ver el [video demostrativo](https://www.youtube.com/watch?v=lwvE6pEBmXw) + +### Soroban por ejemplo + +Una aplicación que usa passkeys para firmar transacciones de contratos inteligentes en Stellar. + +- Ver la [demostración](https://passkey.sorobanbyexample.org/) +- Ver el [código](https://github.com/kalepail/soroban-passkey) +- Ver el [video demostrativo](https://www.youtube.com/watch?v=y38_O4oIvbY) +- Mira la [discusión](/meetings/2024/05/09) +- Leer el [blog](https://kalepail.com/blockchain/the-passkey-powered-future-of-web3) + +### Super Peach + +Un ejemplo de contrato de cuenta abstracta con múltiples firmantes impulsado por passkeys. + +- Ver la [demostración](https://superpeach.xyz/) +- Ver el [código](https://github.com/kalepail/superpeach) +- Ver el [video demostrativo](https://youtu.be/0Agiwso2OMc?si=CHD9U8s-YLyqbXUJ) + +### Ye Olde Guestbook + +Un libro de visitas en internet impulsado por passkeys de antaño construido con contratos inteligentes y código frontend. + +- Ver la [demostración](https://ye-olde-guestbook.vercel.app) +- Ver el [código](https://github.com/ElliotFriend/ye-olde-guestbook) +- Leer el [tutorial](../../apps/guestbook/README.mdx) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/smart-wallets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/smart-wallets.mdx new file mode 100644 index 0000000000..2729a8b2c4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/contract-accounts/smart-wallets.mdx @@ -0,0 +1,52 @@ +--- +title: Billeteras inteligentes +sidebar_position: 10 +--- + +Las billeteras inteligentes son cuentas de contrato que actúan como billeteras de usuario. Mantienen activos y aplican la autenticación en `__check_auth` en lugar de una única clave secreta. Las passkeys (WebAuthn) son comunes, pero también puedes usar claves Ed25519, firmantes de políticas, claves de sesión o cualquier cosa que el contrato pueda verificar. + +## Cuándo usar una billetera inteligente + +- Necesitas autenticación programable (límites, listas permitidas, aprobaciones multifactor como usuario más clave de dispositivo). +- Quieres una experiencia con passkey o clave hardware sin exponer frases Seed. +- Necesitas mezclas flexibles de firmantes: passkeys para experiencia de usuario, Ed25519 para compatibilidad, firmantes de políticas o multisig para controles de riesgo. + +## WebAuthn + +[WebAuthn](https://www.w3.org/TR/webauthn/) es un estándar del navegador para autenticación sin contraseña usando criptografía de clave pública. Un dispositivo crea un keypair y demuestra su posesión con un flujo de desafío/respuesta. Las claves permanecen en el dispositivo o se sincronizan entre dispositivos mediante proveedores en la nube. + +Beneficios: + +- Funciona en navegadores y plataformas modernas. +- Flujos familiares (Touch ID, Face ID, claves hardware) sin frases Seed. +- Produce firmas que verificas en `__check_auth`. + +## secp256r1 en Stellar + +`secp256r1` (prime256v1) es la curva que utilizan la mayoría de los autenticadores WebAuthn. Stellar añadió verificación nativa para esta curva en el Protocolo 21, así contratos pueden validar firmas WebAuthn on-chain. + +## Passkeys + +- WebAuthn es el estándar del navegador para autenticación sin contraseña. +- secp256r1 es la curva que la mayoría de autenticadores usan; Stellar la verifica on-chain. +- Las passkeys son credenciales basadas en plataforma o hardware que implementan WebAuthn. +- Consulta [ejemplos](./examples.mdx) para proyectos reales. + +## Passkeys en la práctica + +- Registro: usa WebAuthn para crear un keypair en el dispositivo; guarda la clave pública (y el ID de credencial opcional) en el estado del contrato. +- Firma: solicita una afirmación WebAuthn cuando el usuario aprueba una acción; retorna una firma sobre la carga. +- Verificación: pasa la firma y el ID de credencial a tu contrato; en `__check_auth`, verifica la firma secp256r1 y aplica controles de políticas (límites, listas permitidas, bloqueos temporales). + +## Herramientas + +- **Passkey Kit**: SDK en TypeScript para crear cuentas de contrato y firmar con passkeys. + - Demo: [passkey-kit-demo.pages.dev](https://passkey-kit-demo.pages.dev/) + - Código: [github.com/kalepail/passkey-kit](https://github.com/kalepail/passkey-kit) +- **Launchtube**: relé para enviar transacciones y manejar tarifas/números de secuencia. + - Código: [github.com/stellar/launchtube](https://github.com/stellar/launchtube) + +## Participa + +- Únete a la conversación en el canal `#passkeys` en el [Discord de Desarrollo de Stellar](https://discord.gg/stellardev). +- Sigue la evolución de la interfaz de cuentas de contrato en [la discusión SEP](https://github.com/orgs/stellar/discussions/1499). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conventions/deploy-sac-with-code.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conventions/deploy-sac-with-code.mdx index 57b671560e..2653e3e558 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conventions/deploy-sac-with-code.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conventions/deploy-sac-with-code.mdx @@ -26,7 +26,7 @@ En esta guía, aprenderás a desplegar un [Stellar Asset Contract (SAC)](../../. - - [Node.js ](https://nodejs.org/en) y npm instalados. - - SDK de Stellar para [JavaScript](https://www.npmjs.com/package/@stellar/stellar-sdk) instalado -- - [Conocimiento sobre la emisión de un activo en Stellar](https://developers.stellar.org/docs/tokens/how-to-issue-an-asset) +- [Conocimiento sobre cómo emitir un activo en Stellar](../../../tokens/how-to-issue-an-asset.mdx) - Una comprensión de la función rudimentaria de sondeo de transacciones habilitada para reintentos `submitTx` que describimos en [otra guía](../transactions/submit-transaction-wait-js.mdx) ## Resumen del código diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/address-conversions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/address-conversions.mdx index ff21971d08..a058b9beba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/address-conversions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/address-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convertir una dirección a otros tipos --- -import { CodeExample } from "@site/src/components/CodeExample"; - La `Address` es un tipo opaco que representa ya sea una cuenta externa "default" en la red Stellar, o un contrato (que también puede proporcionar lógica para cuentas externas personalizadas, consulta la [documentación de autorización](../../../learn/fundamentals/contract-development/authorization.mdx#account-abstraction) para más detalles). Para los contratos inteligentes normalmente no importa qué tipo de `Address` se utilice. Sin embargo, en algunos contextos es útil convertir `Address` a/de diferentes tipos de datos, como cadena o XDR. Las conversiones tienen propósitos claramente diferentes dependiendo de si ocurren en el propio contrato inteligente o en el código cliente. ## Conversiones de cadena diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/bytes-conversions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/bytes-conversions.mdx index 6942bc2c7b..520f1d7d26 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/bytes-conversions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/bytes-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convertir de bytes a otros tipos --- -import { CodeExample } from "@site/src/components/CodeExample"; - Bytes es un tipo de arreglo contiguo que crece y contiene u8s. Pueden representar varios tipos de datos, incluyendo cadenas, direcciones u otra información. Convertir cualquier tipo de dato a bytes garantiza que los datos sean manejados de manera consistente por el entorno de ejecución de Soroban y los sistemas interactuantes. ## Bytes a Dirección diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/scval-conversions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/scval-conversions.mdx index 626a52f36d..8e4a8d8970 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/scval-conversions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/scval-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convertir un ScVal a otro tipo --- -import { CodeExample } from "@site/src/components/CodeExample"; - El valor del contrato Soroban (`ScVal`) es un tipo personalizado definido dentro del entorno de ejecución Soroban que representa otros tipos de datos como cadenas, bytes y estructuras más complejas utilizadas dentro de contratos inteligentes en un formato que el entorno de ejecución Soroban puede procesar, almacenar y recuperar de manera eficiente. ## ScVal a bytes diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/string-conversions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/string-conversions.mdx index 2f8dd7dc57..975ac8de29 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/string-conversions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/conversions/string-conversions.mdx @@ -4,8 +4,6 @@ hide_table_of_contents: true description: Convertir una cadena a otros tipos --- -import { CodeExample } from "@site/src/components/CodeExample"; - Las cadenas son una secuencia de caracteres utilizados para representar texto legible. Se utilizan para almacenar y manipular información basada en texto, como nombres de funciones, argumentos, datos clave-valor e interfaces con sistemas externos. Las cadenas a menudo pueden necesitar ser convertidas a otros tipos de datos para un procesamiento y almacenamiento eficientes. ## Cadena a bytesN diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/frontend-guide.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/frontend-guide.mdx index 73e176f2dd..85bb7106ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/frontend-guide.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/frontend-guide.mdx @@ -377,7 +377,7 @@ Ahora que tenemos nuestros componentes básicos de UI en su lugar, integremoslos - Red de prueba: Este es un entorno de prueba para desarrolladores para probar sus aplicaciones sin usar lúmenes reales. - Red Futurenet: Esta es una red para probar nuevas características antes de que se implementen en la red pública. -Para esta guía, utilizaremos la red de prueba para evitar usar lúmenes reales durante el desarrollo. Lee más sobre las redes Stellar [aquí](https://developers.stellar.org/docs/learn/fundamentals/networks). +Para esta guía, utilizaremos la red de prueba para evitar usar lúmenes reales durante el desarrollo. Lee más sobre las [redes Stellar aquí](../../../networks/README.mdx). ### Configurando el Stellar SDK @@ -744,7 +744,7 @@ Esto es posible utilizando el método `server.getEvents`, que te permite consult Estaremos editando el componente `CounterPage` para leer eventos del contrato inteligente contador inmediatamente cuando se cargue la página para obtener el valor inicial del contador y actualizar en lugar de usar "Desconocido". Antes de continuar, por favor revisa el [código del contrato](https://github.com/stellar/soroban-examples/blob/main/events/src/lib.rs). En el código del contrato, un evento llamado `increment` se emite cada vez que se llama a la función `increment`. Se publica en 2 temas, `increment` y `COUNTER`, y necesitamos escuchar estos temas para obtener los eventos. -Los temas se almacenan en un tipo de dato llamado `symbol` y necesitaremos convertir tanto `increment` como `COUNTER` a `symbol` antes de poder utilizarlos en el método [`server.getEvents`](../../../data/apis/rpc/api-reference/methods/getEvents). Como máximo, los RPCs estelares rastrean eventos durante 7 días y puedes consultar eventos que sucedieron en los últimos 7 días, así que si necesitas almacenar eventos por más tiempo, puede que necesites hacer uso de un [indexer](../../../data/indexers/indexer-providers). +Los temas se almacenan en un tipo de dato llamado `symbol` y necesitaremos convertir tanto `increment` como `COUNTER` a `symbol` antes de poder usarlos en el método [`server.getEvents`](../../../data/apis/rpc/api-reference/methods/getEvents.mdx). Como máximo, los RPC estelares rastrean eventos durante 7 días y puedes consultar eventos que hayan ocurrido en los últimos 7 días, por lo que, si necesitas almacenar eventos por más tiempo, puede que necesites usar un [indexer](../../../data/indexers/README.mdx). Para usar eventos, editamos nuestra página de contador y añadimos el siguiente código: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/initialization.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/initialization.mdx index 4a367a89d1..54fa3e0f81 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/initialization.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/initialization.mdx @@ -5,7 +5,7 @@ description: Configura la inicialización correctamente para asegurar un proceso Al configurar un ejemplo de Dapp Soroban, la inicialización correcta es crucial. Este proceso implica varios pasos, incluyendo desplegar Docker, clonar y desplegar contratos inteligentes, e invocar funciones para configurarlos. En esta guía completa, te guiaré a través de los pasos necesarios para crear y desplegar estos contratos inteligentes, asegurando un proceso fluido para tu Dapp Soroban. -## Creación y Despliegue del Contrato Inteligente Token Soroban +## Desarrollar el Contrato Inteligente Soroban Token En dapps como el [Ejemplo de Dapp de Pago](https://github.com/stellar/soroban-react-payment/), los [contratos inteligentes Token Soroban](https://github.com/stellar/soroban-examples/tree/main/token) se utilizan para representar el activo tokenizado que los usuarios pueden enviar y recibir. Aquí hay un ejemplo de cómo crear y desplegar los contratos inteligentes Token Soroban: @@ -27,46 +27,61 @@ En este punto, puedes construir el contrato inteligente: make ``` -Esta acción compilará los contratos inteligentes y los colocará en el directorio `token/target/wasm32v1-none/release`. - -Después de crear, estás listo para desplegar los contratos inteligentes en Futurenet. Para hacer esto, abre una terminal en el directorio `soroban-examples/token` y ejecuta lo siguiente: - -```shell -stellar contract deploy \ - --wasm target/wasm32v1-none/release/soroban_token_contract.wasm \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' +Esta acción compilará los contratos inteligentes y los colocará en el directorio `token/target/wasm32v1-none/release`. Después de desarrollarlo, estás listo para desplegar los contratos inteligentes en Testnet. + +## Desplegar e Inicializar el Contrato Inteligente Soroban Token + +El contrato inteligente puede inicializarse en el momento del despliegue utilizando la función `__constructor`. Esta función se llamará en el momento del despliegue y puede declararse con parámetros que puedes pasar a la función con el comando de despliegue. + +La función `__constructor` se añade al punto de entrada del contrato; en este contrato inteligente `token` se encuentra en el archivo [contract.rs](https://github.com/stellar/soroban-examples/blob/main/token/src/contract.rs). + +```rust title="contract.rs" +#[contractimpl] +impl Token { + pub fn __constructor(e: Env, admin: Address, decimal: u32, name: String, symbol: String) { + if decimal > 18 { + panic!("Decimal must not be greater than 18"); + } + write_administrator(&e, &admin); + write_metadata( + &e, + TokenMetadata { + decimal, + name, + symbol, + }, + ) + } + ... +} ``` -Este comando despliega los contratos inteligentes en Futurenet usando la función `stellar contract deploy`. +La función `__constructor` en este proyecto de ejemplo recibe los siguientes parámetros: -## Inicializando un Contrato Token +- Cuenta del administrador: Esta es la clave pública de la cuenta del administrador. El administrador tiene control y autoridad sobre el contrato del token, lo que permite gestionar diversas funcionalidades del contrato. Aprende más sobre el rol del administrador en la Interfaz del Soroban Token. -Con los contratos desplegados, es hora de inicializar el contrato token: +- Precisión decimal: La precisión decimal especifica el número máximo de decimales que el token puede admitir en las transacciones. Este nivel de precisión permite flexibilidad al transferir cantidades del token. -```shell -stellar contract invoke \ - --id \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' \ - -- initialize \ - --admin \ - --decimal 7 \ - --name '44656d6f20546f6b656e' \ - --symbol '"4454"' -``` +- Nombre del token: El nombre del token. -Este comando requiere ciertos inputs: +- Símbolo del token: Este es el símbolo del token. -- Cuenta Administradora: Esta es la clave pública de la cuenta administradora. La administradora tiene control y autoridad sobre el contrato token, lo que permite la gestión de varias funcionalidades del contrato. Aprende más sobre el papel del administrador en la Interfaz de Token Soroban. El administrador tiene control y autoridad sobre el contrato token, lo que permite la gestión de varias funcionalidades del contrato. Aprende más sobre el papel del administrador en la Interfaz de Token Soroban. +Para desplegar el contrato inteligente en este ejemplo, abre una terminal en el directorio `soroban-examples/token` y ejecuta lo siguiente: -- Precisión Decimal: El valor de precisión decimal de 7 especifica que el token puede soportar transacciones de hasta 7 lugares decimales. Este nivel de precisión permite flexibilidad al transferir montos de tokens. - -- Nombre del Token: El nombre del token, representado como una cadena hexadecimales. En este caso, '44656d6f20546f6b656e' corresponde a "Demo Token". +```shell +stellar contract deploy \ + --wasm target/wasm32v1-none/release/soroban_token_contract.wasm \ + --source-account alice \ + --rpc-url https://soroban-testnet.stellar.org \ + --network-passphrase 'Test SDF Network ; September 2015' + -- \ + --admin alice \ + --decimal 10 \ + --name 'Demo Token' \ + --symbol 'DT' +``` -- Símbolo del Token: Este es el símbolo del token, también representado como una cadena hexadecimal. '4454' se traduce en el símbolo "DT". +Este comando despliega los contratos inteligentes en Testnet utilizando la función `stellar contract deploy`. El contrato inteligente se desplegará con los parámetros obligatorios y se inicializará con estos valores. ## Crear Tokens @@ -75,15 +90,15 @@ Por último, necesitas crear algunos tokens para la cuenta del remitente: ```shell stellar contract invoke \ --id \ - --source-account \ - --rpc-url https://rpc-futurenet.stellar.org:443 \ - --network-passphrase 'Test SDF Future Network ; October 2022' \ + --source-account alice \ + --rpc-url https://soroban-testnet.stellar.org \ + --network-passphrase 'Test SDF Network ; September 2015' -- mint \ - --to \ + --to bob \ --amount 1000000000 ``` -Este comando creará 100 tokens para la cuenta del usuario designado. +Este comando acuñará 100 tokens en la cuenta del usuario designado, en este caso `bob`. Al seguir estos pasos, aseguras que los contratos inteligentes Token Soroban estén correctamente desplegados e inicializados, preparando el escenario para que la Dapp interactúe efectivamente con el token. @@ -91,7 +106,7 @@ Para profundizar en los comandos CLI de Stellar, consulta el [repositorio CLI de ## Automatizando la Inicialización con Scripts -Para optimizar el proceso de inicialización, puedes usar un script. Este script debería automatizar varias tareas, como configurar la red, envolver los activos de Stellar, generar identidades de administrador de token, financiar la cuenta del administrador de token, construir y desplegar los contratos, e inicializarlos con los parámetros necesarios. +Para optimizar el proceso de inicialización, puedes usar un script. Este script debería automatizar varias tareas como configurar la red, generar identidades admin-token, financiar la cuenta admin-token, construir y desplegar los contratos, e inicializarlos con los parámetros necesarios. Aquí hay un ejemplo de script de inicialización: @@ -135,7 +150,6 @@ testnet) ;; esac - echo Add the $NETWORK network to cli client stellar network add \ --rpc-url "$SOROBAN_RPC_URL" \ @@ -148,8 +162,6 @@ fi TOKEN_ADMIN_SECRET="$(stellar keys show token-admin)" TOKEN_ADMIN_ADDRESS="$(stellar keys address token-admin)" -# TODO: Remove this once we can use `stellar keys` from webpack. -mkdir -p .soroban-example-dapp echo "$TOKEN_ADMIN_SECRET" > .soroban-example-dapp/token_admin_secret echo "$TOKEN_ADMIN_ADDRESS" > .soroban-example-dapp/token_admin_address @@ -157,42 +169,18 @@ echo "$TOKEN_ADMIN_ADDRESS" > .soroban-example-dapp/token_admin_address echo Fund token-admin account from friendbot curl --silent -X POST "$FRIENDBOT_URL?addr=$TOKEN_ADMIN_ADDRESS" >/dev/null -ARGS="--network $NETWORK --source-account token-admin" - -echo Deploy the Stellar asset contract -TOKEN_ID=$(stellar contract asset deploy $ARGS --asset "EXT:$TOKEN_ADMIN_ADDRESS") -echo "Token deployed successfully with TOKEN_ID: $TOKEN_ID" - -# TODO - remove this workaround when -# https://github.com/stellar/soroban-tools/issues/661 is resolved. -TOKEN_ADDRESS="$(node ./address_workaround.js $TOKEN_ID)" -echo "Token Address converted to StrKey contract address format:" $TOKEN_ADDRESS - -echo -n "$TOKEN_ID" > .soroban-example-dapp/token_id - -echo Build the crowdfund contract +echo Build the contract make build -echo Deploy the crowdfund contract +echo Deploy the contract +ARGS="--network $NETWORK --source-account token-admin -- --admin $2 --decimal $3 --name $4 --symbol $5" CROWDFUND_ID="$( stellar contract deploy $ARGS \ - --wasm target/wasm32v1-none/release/soroban_crowdfund_contract.wasm + --wasm target/wasm32v1-none/release/soroban_token_contract.wasm )" echo "Contract deployed successfully with ID: $CROWDFUND_ID" echo "$CROWDFUND_ID" > .soroban-example-dapp/crowdfund_id -echo "Initialize the crowdfund contract" -deadline="$(($(date +"%s") + 86400))" -stellar contract invoke \ - $ARGS \ - --id "$CROWDFUND_ID" \ - -- \ - initialize \ - --recipient "$TOKEN_ADMIN_ADDRESS" \ - --deadline "$deadline" \ - --target_amount "1000000000" \ - --token "$TOKEN_ADDRESS" - echo "Done" ``` @@ -207,9 +195,7 @@ Aquí tienes un resumen de lo que hace el script `initialize.sh`: - Recoge el TOKEN_ADMIN_SECRET y el TOKEN_ADMIN_ADDRESS de la identidad recién generada - Guarda el TOKEN_ADMIN_SECRET y el TOKEN_ADMIN_ADDRESS en el directorio .soroban - Financia la cuenta del administrador de token usando Friendbot -- Despliega el contrato de activo de Stellar con `stellar contract asset deploy` y almacena el TOKEN_ID resultante -- Construye el contrato de crowdfunding con `make build` y lo despliega usando `stellar contract deploy`, almacenando el CROWDFUND_ID devuelto -- Inicializa el contrato de crowdfunding invocando la función de inicialización con los parámetros necesarios +- Desarrolla el contrato con `make build` y lo despliega usando `stellar contract deploy`, almacenando el CROWDFUND_ID devuelto - Imprime "Hecho" para significar el final del proceso de inicialización Al aprovechar la inicialización automatizada, puedes optimizar el proceso de configuración para tu Dapp Soroban, asegurando que esté correctamente desplegada e inicializada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/react.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/react.mdx index 67484ffec8..566ec0e2ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/react.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/react.mdx @@ -4,15 +4,13 @@ description: Conectar frontends de dapp a contratos y la billetera Freighter usa draft: true --- -import { Alert } from "@site/src/components/Alert"; - Esta sección explica cómo los frontends de tu dapp pueden interactuar con los contratos de ejemplo y acceder a datos de la cadena, además de conectarse a una billetera freighter. Esto se ilustrará utilizando bibliotecas proporcionadas por [`@soroban-react`](https://soroban-react.gitbook.io/index/), un marco simple y poderoso para desarrollar Dapps modernas usando React. `@soroban-react` fue creada y es mantenida por un increíble miembro de la comunidad! - +:::info Esta guía demostrará cómo se desarrolló un frontend de un [dapp de crowdfunding de ejemplo] con React. Aunque gran parte del código es específico para este proyecto, los principios demostrados deberían ser lo suficientemente educativos para ayudarte a comenzar. - +::: A continuación se muestra una lista de las bibliotecas utilizadas a lo largo del código del frontend y sus respectivas importaciones: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/state-archival.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/state-archival.mdx index aab1c57fa7..e42bfb9dbb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/state-archival.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/state-archival.mdx @@ -5,7 +5,7 @@ description: Aprender cómo implementar archivo de estado en tu dapp Al desarrollar aplicaciones descentralizadas en Stellar, el archivo de estado es parte de lo que necesitamos considerar debido a cómo se almacena la información en la red. Esta guía te ayudará a entender cómo trabajar con el archivo de estado en tu dapp. -Algunos términos de archivo del estado que utilizaremos en esta guía se describen en la [sección de archivo del estado](/docs/learn/fundamentals/contract-development/storage/state-archival#terms-and-semantics). +Algunos términos de archivo de estado que usaremos en esta guía se describen en la [sección de archivo de estado](../../../learn/fundamentals/contract-development/storage/state-archival.mdx#terms-and-semantics). ## Por qué gestionar el archivo de estado es importante para las aplicaciones @@ -261,7 +261,7 @@ async function performContractAction(contractId, method, ...args) { Para restaurar una instancia completa del contrato, es posible que necesites una función separada: -Aquí estaremos utilizando el [método `getLedgerEntries`](/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#requesting-a-contracts-wasm-code) para obtener el código WASM del contrato y también la [operación `restoreFootprint`](/docs/learn/fundamentals/transactions/list-of-operations#restore-footprint) para restaurar la instancia del contrato. +Aquí utilizaremos el [`método getLedgerEntries`](../../../data/apis/rpc/api-reference/methods/getLedgerEntries.mdx#2-request-the-contractcode-using-the-retrieved-ledgerkey) para obtener el código WASM del contrato y también la [`operación restoreFootprint`](../../../learn/fundamentals/transactions/list-of-operations.mdx#restore-footprint) para restaurar la instancia del contrato. ```javascript async function restoreContractInstance(contractId) { diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/working-with-contract-specs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/working-with-contract-specs.mdx index 2972ab6c00..1cad72339e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/working-with-contract-specs.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/dapps/working-with-contract-specs.mdx @@ -3,8 +3,6 @@ title: Trabajar con especificaciones de contrato en Java, Python y PHP description: Una guía para entender e interactuar con los contratos inteligentes de Soroban en diferentes lenguajes de programación --- -import { CodeExample } from "@site/src/components/CodeExample"; - ## Introducción Los contratos inteligentes de Soroban son herramientas poderosas para construir aplicaciones descentralizadas en la red Stellar. Para interactuar con estos contratos de manera efectiva, es crucial entender sus especificaciones y cómo utilizarlas en tu lenguaje de programación de elección. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/fees/analyzing-smart-contract-cost.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/fees/analyzing-smart-contract-cost.mdx index 4efc53775f..a58e3c61e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/fees/analyzing-smart-contract-cost.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/fees/analyzing-smart-contract-cost.mdx @@ -526,14 +526,13 @@ Para optimizar el tamaño de tu binario `wasm`, puedes: ### 1 Uso de herramientas integradas -Una forma de optimizar el tamaño de tu binario `wasm` es usar el comando `soroban optimize`. Este comando del [Stellar CLI](../../../tools/cli/stellar-cli.mdx) optimizará el tamaño de tu binario `wasm` eliminando código innecesario y reduciendo el tamaño del binario. +Una forma de optimizar el tamaño de tu binario `wasm` es usando `--optimize` al desarrollar tus contratos con el [Stellar CLI](../../../tools/cli/stellar-cli.mdx). Esta flag optimizará el tamaño de tu binario `wasm` eliminando código innecesario y reduciendo el tamaño del binario. ```bash -stellar contract optimize \ - --wasm target/wasm32v1-none/release/project.wasm +stellar contract build --optimize ``` -Otra forma de optimizar tu contrato inteligente es usar el comando `stellar contract invoke` con los flags `--cost` y `--sim-only`. Este comando te proporcionará un desglose detallado del costo de ejecutar tu contrato inteligente en la red Stellar. +Otra manera de optimizar tu contrato inteligente es usar el comando `stellar contract invoke` con la flag `--cost`. Este comando te proporcionará un desglose detallado del costo de ejecutar tu contrato inteligente en la red Stellar. ```bash stellar contract invoke \ @@ -541,7 +540,6 @@ stellar contract invoke \ --source-account alice \ --network testnet \ --cost \ - --sim-only \ -- \ increment ``` @@ -556,7 +554,7 @@ Realiza una revisión manual de tu contrato inteligente para identificar áreas Usa pruebas unitarias para medir el costo de gas de las funciones de tu contrato inteligente. Esto te ayudará a identificar funciones que consumen mucho gas y optimizarlas en consecuencia. -Además, usar el método de ayuda rpc [simulateTransaction](/docs/data/apis/rpc/api-reference/methods/simulateTransaction) puede darte una idea del costo de gas de las funciones de tu contrato. +Además, usar el método auxiliar rpc [simulateTransaction](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx) puede darte una idea del costo de gas de las funciones de tu contrato. ### 4 Herramientas de análisis estático @@ -569,25 +567,30 @@ Herramientas como [Clippy](https://doc.rust-lang.org/clippy/) (parte del compila #### Variables de Estado -- Costo: Las variables de estado se almacenan directamente en el almacenamiento de la blockchain. El costo está influenciado principalmente por la cantidad de datos almacenados (medidos en bytes) y la frecuencia de las operaciones de lectura y escritura. -- Consideraciones: Escribir datos en variables de estado normalmente implica costos de gas más altos en comparación con la lectura de datos. Las estructuras de datos complejas (por ejemplo, las matrices, mappings) o grandes cantidades de datos aumentan los costos de almacenamiento y el consumo de gas. Stellar cobra tarifas de gas por cada byte de datos almacenados y actualizados, por lo que una gestión eficiente de datos es crucial para la optimización de costos. +- **Costo**: Las variables de estado se almacenan directamente en el almacenamiento de la blockchain. El costo está influenciado principalmente por la cantidad de datos almacenados (medidos en bytes) y la frecuencia de las operaciones de lectura y escritura. + +- **Consideraciones**: Escribir datos en variables de estado generalmente implica costos de gas más altos en comparación con la lectura de datos. Las estructuras de datos complejas (por ejemplo, las matrices, mappings) o grandes cantidades de datos aumentan los costos de almacenamiento y el consumo de gas. Stellar cobra tarifas de gas por cada byte de datos almacenados y actualizados, por lo que una gestión eficiente de datos es crucial para la optimización de costos. #### Registros de Eventos -- Costo: Emitir eventos en contratos Rust no implica costos directos de almacenamiento ya que los eventos no se almacenan permanentemente en la blockchain. En su lugar, se incluyen en los registros de transacciones. -- Consideraciones: Emitir eventos consume gas, principalmente debido a los recursos computacionales requeridos para ejecutar la emisión del evento y generar los registros. Los eventos son útiles para aplicaciones off-chain y arquitecturas orientadas a eventos, pero no contribuyen directamente a los costos de almacenamiento on-chain. +- **Costo**: Emitir eventos en contratos Rust no conlleva costos directos de almacenamiento ya que los eventos no se guardan permanentemente en la blockchain. En su lugar, se incluyen en los registros de transacciones. + +- **Consideraciones**: Emitir eventos consume gas, principalmente debido a los recursos computacionales requeridos para ejecutar la emisión de eventos y la generación de registros. Los eventos son útiles para aplicaciones off-chain y arquitecturas orientadas a eventos, pero no contribuyen directamente a los costos de almacenamiento on-chain. #### Fuentes de Datos Externas -- Costo: Interactuar con fuentes de datos externas como oráculos implica tarifas de transacción por la obtención y procesamiento de datos. -- Consideraciones: Las llamadas a oráculos implican costos de gas para la ejecución del contrato, los cuales pueden variar según la complejidad y frecuencia de la obtención de datos. Los desarrolladores de contratos deben considerar los límites de gas y optimizar las interacciones con oráculos para minimizar costos garantizando una integración de datos confiable. +- **Costo**: Interactuar con fuentes de datos externas como oráculos implica tarifas de transacción para la recuperación y procesamiento de datos. + +- **Consideraciones**: Las llamadas a oráculos generan costos de gas para la ejecución del contrato, que pueden variar según la complejidad y frecuencia de la obtención de datos. Los desarrolladores de contratos deben considerar los límites de gas y optimizar las interacciones con oráculos para minimizar costos garantizando una integración de datos confiable. #### Datos y Constantes Inmutables -- Costo: Las constantes y variables inmutables generan costos de almacenamiento insignificantes, ya que generalmente se almacenan como parte del bytecode o los metadatos del contrato. -- Consideraciones: Las constantes y datos inmutables son cruciales para la configuración y parametrización del contrato, pero no afectan significativamente los costos de transacción o almacenamiento. Se definen previamente durante el despliegue del contrato y no cambian durante la ejecución del mismo, evitando costos adicionales de gas por actualizaciones de almacenamiento. +- **Costo**: Las constantes y las variables inmutables generan costos de almacenamiento insignificantes ya que generalmente se almacenan como parte del bytecode o metadatos del contrato. + +- **Consideraciones**: Las constantes y los datos inmutables son cruciales para la configuración y parametraje del contrato, pero no afectan significativamente los costos de transacción o almacenamiento. Se definen previamente durante el despliegue del contrato y no cambian durante la ejecución del mismo, evitando costos adicionales de gas por actualizaciones de almacenamiento. #### Almacenamiento Off-Chain y IPFS -- Costo: Almacenar datos fuera de la cadena utilizando soluciones como IPFS evita costos directos de almacenamiento on-chain, pero genera costos por la recuperación de datos y el uso de la red IPFS. -- Consideraciones: Los contratos solo almacenan el hash o referencia a los datos off-chain en la cadena, minimizando los costos de almacenamiento on-chain. Pueden aplicarse costos de gas al recuperar y procesar datos off-chain, dependiendo de la complejidad y frecuencia de acceso. Las soluciones de almacenamiento off-chain ofrecen escalabilidad y flexibilidad pero requieren una consideración cuidadosa de las tarifas de red y la disponibilidad de datos. +- **Costo**: Almacenar datos fuera de la cadena usando soluciones como IPFS evita costos directos de almacenamiento on-chain, pero implica costos por la recuperación de datos y el uso de la red IPFS. + +- **Consideraciones**: Los contratos almacenan solo el hash o referencia a los datos fuera de la cadena on-chain, minimizando los costos de almacenamiento on-chain. Pueden aplicarse costos de gas al recuperar y procesar datos off-chain, dependiendo de la complejidad y frecuencia de acceso. Las soluciones de almacenamiento off-chain ofrecen escalabilidad y flexibilidad pero requieren una consideración cuidadosa de las tarifas de red y la disponibilidad de datos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/differential-tests.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/differential-tests.mdx index d9fd6fea49..db4eba3b2a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/differential-tests.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/differential-tests.mdx @@ -9,7 +9,7 @@ Las pruebas diferenciales son la prueba de dos cosas para descubrir diferencias El objetivo es probar que las dos cosas se comportan de manera consistente y que no divergen en su comportamiento salvo por algunas diferencias esperadas. Las afirmaciones deben ser tan amplias como sea posible, probando ampliamente que todos los resultados observables no cambian, excepto por cualquier cambio esperado. -Esta estrategia es efectiva al desarrollar algo nuevo que debería comportarse como algo que ya existe. Eso podría ser una nueva versión de un contrato que tiene el mismo comportamiento que su versión anterior. O podría ser el mismo contrato con un SDK o dependencia actualizada. O podría ser una reorganización que espera no tener cambios funcionales. +Esta estrategia es efectiva al desarrollar algo nuevo que debería comportarse como algo que ya existe. Podría tratarse de una nueva versión de un contrato que mantiene el mismo comportamiento que su versión anterior. O podría ser el mismo contrato con un SDK o dependencia actualizada. O podría ser una reorganización que espera no tener cambios funcionales. Esta estrategia se puede utilizar en el contexto de pruebas unitarias e integradas, o en el contexto de pruebas de fuzz también. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/fork-testing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/fork-testing.mdx index 990fb56fe8..47c1130958 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/fork-testing.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/fork-testing.mdx @@ -17,7 +17,7 @@ El [Soroban Rust SDK] y el [Stellar CLI] se unen para hacer posible las pruebas El siguiente es un ejemplo de una prueba que incluye un contrato de dependencia en la prueba, en lugar de simularlo. La prueba está escrita para probar el [contrato increment-with-pause] y el [contrato pause]. El contrato tiene una función `increment` que aumenta el valor de un contador en uno en cada invocación. El contrato depende del contrato pause para controlar si la funcionalidad de incremento está pausada. -Las siguientes pruebas configuran el contrato `increment-with-pause`, utilizando una imagen del ledger que ya tiene el contrato de dependencia `pause` desplegado junto con los datos de su contrato. +Las siguientes pruebas configuran el contrato `increment-with-pause`, usando una imagen del ledger que ya tiene desplegado el contrato dependencia `pause` junto con sus datos de contrato. 1. Utiliza el comando [stellar snapshot create] para crear una imagen del contrato de pausa y sus datos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/integration-tests.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/integration-tests.mdx index 37f284afba..b505554961 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/integration-tests.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/integration-tests.mdx @@ -13,7 +13,7 @@ El [Soroban Rust SDK] facilita igualmente las pruebas de integración al proporc El siguiente es un ejemplo de una prueba que incluye un contrato de dependencia en la prueba, en lugar de simularlo. La prueba está escrita para probar el [increment-with-pause contract] y el [pause contract]. El contrato tiene una función `increment` que aumenta el valor de un contador en uno en cada invocación. El contrato depende del contrato de pausa para controlar si la funcionalidad de incremento está pausada. -Las siguientes pruebas configuran el contrato `increment-with-pause`, así como importan y registran el verdadero contrato de pausa utilizando su archivo wasm. +Las siguientes pruebas configuran el contrato `increment-with-pause`, además de importar y registrar el contrato real de pausa usando su archivo wasm. 1. Usa el comando [stellar contract fetch] para obtener el contrato de dependencia que ya está desplegado en testnet o mainnet. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/ledger-snapshot-testing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/ledger-snapshot-testing.mdx index 1d3596478f..792996328d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/ledger-snapshot-testing.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/ledger-snapshot-testing.mdx @@ -46,7 +46,7 @@ Dado que queremos escribir una prueba que lea datos almacenados en el ledger, o #### Crear contrato -Usa el [Stellar CLI](https://developers.stellar.org/docs/tools/cli/stellar-cli) para crear el contrato: +Usa el [Stellar CLI](../../../tools/cli/stellar-cli.mdx) para construir el contrato: ```bash stellar contract build @@ -83,7 +83,7 @@ Ahora tenemos una función de contrato inteligente desplegada y en funcionamient ## 2. Crear una imagen del ledger -Se puede crear una imagen del ledger usando el Stellar CLI. El comando CLI permite personalizar y limitar el alcance de la imagen, ya que probablemente no sea necesario crear una imagen de todas las entradas del ledger. Consulta la [documentación](https://developers.stellar.org/docs/tools/cli/stellar-cli#stellar-snapshot-create) para obtener detalles completos sobre cómo limitar la imagen. +Se puede crear una imagen del ledger usando el Stellar CLI. El comando CLI permite personalizar y limitar el alcance de la imagen, ya que probablemente no sea necesario crear una imagen de todas las entradas del ledger. Consulta la [documentación](../../../tools/cli/stellar-cli.mdx#stellar-snapshot-create) para obtener detalles completos sobre cómo limitar la instantánea. Para los ejemplos aquí usados, queremos limitar la imagen del ledger para incluir las entradas relacionadas con: @@ -244,13 +244,13 @@ Este ejemplo muestra que solo hay diferencias menores entre probar funciones de En este último ejemplo, queremos leer el balance de una cuenta. Puede ser el balance de una cuenta de usuario o de un contrato inteligente; cualquier cuenta que pueda tener un balance. En este ejemplo, verificamos el balance de la cuenta del usuario `alice`. -En este ejemplo, asumimos que `alice` ya tiene un balance en XLM, y dado que los ejemplos se basan en Testnet, la cuenta `alice` fue financiada por FriendBot si se siguió esta [guía](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup#configure-an-identity) al crear la cuenta. La dirección de `alice` se puede consultar ejecutando este comando: +En este ejemplo, asumimos que `alice` ya tiene un saldo en XLM, y dado que los ejemplos están basados en Testnet, la cuenta de `alice` fue financiada por FriendBot si se siguió esta [guía](../../../tools/cli/cookbook/stellar-keys.mdx) al crear la cuenta. La dirección de `alice` se puede consultar ejecutando este comando: ```bash stellar keys address alice ``` -Los tokens, como XLM, están envueltos en una interfaz de contrato llamada [Stellar Asset Contract (SAC)](https://developers.stellar.org/docs/tokens/stellar-asset-contract). Esta interfaz proporciona una forma conveniente de consultar el balance de una cuenta. El primer paso para obtener el balance de la cuenta es crear un cliente de contrato para los tokens XLM. +Los tokens, como XLM, están encapsulados en una interfaz de contrato llamada [Stellar Asset Contract (SAC)](../../../tokens/stellar-asset-contract.mdx). Esta interfaz proporciona una forma conveniente de consultar el balance de una cuenta. El primer paso para obtener el balance de la cuenta es crear un cliente de contrato para los tokens XLM. La dirección SAC para XLM es una dirección reservada y será la misma para todos los proyectos. USDC y otros activos tendrán otra dirección SAC, pero estas no cambian. Usamos la dirección SAC para definir un cliente usando `TokenClient`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/unit-tests.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/unit-tests.mdx index ea0420ddce..30eacaee97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/unit-tests.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/testing/unit-tests.mdx @@ -9,7 +9,7 @@ Las pruebas unitarias son pruebas pequeñas que prueban una pieza de funcionalid ## Cómo Escribir Pruebas Unitarias -El siguiente es un ejemplo de una prueba unitaria, escrita para probar el [increment contract]. El contrato tiene una función `increment`, que aumenta el valor de un contador en uno en cada invocación. La siguiente prueba invoca varias veces la función de ese contrato y comprueba que el valor aumenta en uno. +Lo siguiente es un ejemplo de una prueba unitaria, escrita para testear el [Increment Contract](https://github.com/stellar/soroban-examples/blob/main/increment/src/lib.rs). El contrato tiene una función `increment`, que aumenta el valor de un contador en uno en cada invocación. La siguiente prueba invoca varias veces la función de ese contrato y comprueba que el valor aumenta en uno. ```rust #![cfg(test)] @@ -71,4 +71,11 @@ El `Env` creado al principio de la prueba no es una simulación del Entorno Soro ::: -[increment contract]: https://github.com/stellar/soroban-examples/blob/main/increment/src/lib.rs +Es una prueba simple, pero completa. Se realiza una configuración completa del entorno, se usa y se desmantela en la prueba, y todo ocurre rápido. El framework de pruebas de Rust ejecuta todas las pruebas de un contrato en paralelo y cada una tendrá su propio entorno de contrato aislado. + +La mayoría de las pruebas, incluso las pruebas de integración y las pruebas fuzz, serán muy similares a esta prueba unitaria. Harán cuatro cosas: + +1. Crear un entorno, el `Env`. +2. Registrar el o los contratos que se probarán. +3. Invocar funciones usando un cliente. +4. Afirmar el resultado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/channel-accounts.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/channel-accounts.mdx index 1985d8c9aa..c8f969b00e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/channel-accounts.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/channel-accounts.mdx @@ -4,8 +4,6 @@ description: Crea cuentas canalizadas para enviar transacciones a la red a una a sidebar_position: 10 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Las cuentas canalizadas proporcionan un método para enviar transacciones a la red a una alta velocidad. Las transacciones de una cuenta siempre deben enviarse a la red con incrementos de un número de secuencia (a menos que se establezcan condiciones previas de número de secuencia mínimo). Esto puede causar problemas si envías transacciones a una alta velocidad, ya que pueden llegar a Stellar Core fuera de orden y serán rechazadas con un error de secuencia incorrecta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/claimable-balances.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/claimable-balances.mdx index 324e9d27af..45eacbd9d8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/claimable-balances.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/claimable-balances.mdx @@ -4,7 +4,6 @@ description: Divide un pago en dos partes creando un saldo reclamable. sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Details from "@theme/Details"; Los saldos reclamables fueron introducidos en [CAP-0023](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0023.md) y se usan para dividir un pago en dos partes. @@ -230,10 +229,10 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" + "github.com/stellar/go-stellar-sdk/xdr" ) func main() { @@ -446,7 +445,7 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/xdr" ) // Replace with your claimable balance ID @@ -599,9 +598,9 @@ import ( "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" ) // Replace with your claimable balance ID and claimant secret diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/clawbacks.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/clawbacks.mdx index b287176a4a..796c0cdea7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/clawbacks.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/clawbacks.mdx @@ -4,8 +4,6 @@ description: Usa las recuperaciones para quemar una cantidad específica de un a sidebar_position: 30 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Los clawbacks se introdujeron en [CAP-0035: Asset Clawback](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0035.md) y permiten que el emisor de un activo destruya una cantidad específica de un activo habilitado para clawback desde una trustline o un balance reclamable, eliminándolo efectivamente y quitándolo del saldo del receptor. Fueron diseñadas para permitir a los emisores de activos cumplir con regulaciones de valores, que en muchas jurisdicciones requieren que los emisores de activos (o agentes de transferencia designados) tengan la capacidad de revocar activos en caso de una transacción errónea o fraudulenta u otra acción regulatoria relacionada con una persona o activo específico. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/create-account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/create-account.mdx index 21af5d104f..9b7d399622 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/create-account.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/create-account.mdx @@ -6,9 +6,6 @@ description: Aprende sobre cómo crear cuentas Stellar, pares de llaves, financi # Crear una cuenta -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - _Antes de comenzar a trabajar con Stellar en código, considera revisar los siguientes ejemplos usando el [Stellar Lab](https://lab.stellar.org). El laboratorio te permite crear cuentas, financiar cuentas en la red de prueba Stellar, desarrollar transacciones, ejecutar cualquier operación e inspeccionar respuestas desde Horizon a través del Explorador de Endpoints. [Las cuentas](../../../learn/fundamentals/stellar-data-structures/accounts.mdx) son un componente fundamental de Stellar: contienen todos tus saldos, te permiten enviar y recibir pagos, y hacer ofertas para comprar y vender activos. Dado que prácticamente todo en Stellar está vinculado a una cuenta, lo primero que generalmente necesitas hacer al comenzar a desarrollar es crear una. Este tutorial para principiantes explica los tres bloques fundamentales que necesitarás: [generar claves](#create-a-keypair), [financiar una cuenta](#create-an-account) y [consultar saldos](#fetch-balances). @@ -279,11 +276,11 @@ import ( "strings" "time" - "github.com/stellar/go/amount" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/amount" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" + "github.com/stellar/go-stellar-sdk/xdr" "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" @@ -624,6 +621,96 @@ public final class main { } ``` +```rust +use std::{cell::RefCell, rc::Rc, time::Duration}; + +use soroban_client::{ + account::{Account, AccountBehavior}, + asset::{Asset, AssetBehavior}, + keypair::{Keypair, KeypairBehavior}, + network::{NetworkPassphrase, Networks}, + operation::{self, Operation}, + transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, + xdr, Options, Server, +}; + +const TESTNET_USDC_ISSUER: &str = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5"; + +#[tokio::main] +pub async fn main() -> Result<(), Box> { + let server_url = "https://soroban-testnet.stellar.org"; + let server = Server::new(server_url, Options::default()).expect("Cannot create server"); + + // + // Generate keypairs + // + let parent = Keypair::random()?; + println!("Secret: {}", parent.secret_key()?); + println!("Public: {}", parent.public_key()); + + // + // Fund a new account via friendbot + // + let account_data = server.request_airdrop(&parent.public_key()).await?; + println!("SUCCESS! You have a new account:\n{account_data:?}"); + + let child = Keypair::random()?; + let mut parent_account = + Account::new(&parent.public_key(), &account_data.sequence_number()).unwrap(); + + // + // Fund a new account via CreateAccount operation + // + let mut builder = TransactionBuilder::new(&mut parent_account, Networks::testnet(), None); + builder.fee(1000u32); + builder.add_operation( + Operation::new() + .create_account(&child.public_key(), operation::ONE * 5) + .unwrap(), + ); + + let mut tx = builder.build(); + tx.sign(&[parent]); + + let response = server.send_transaction(tx).await?; + let hash = response.hash; + println!("Tx hash: {}", hash); + + // + // Polling for transaction completion + // + server + .wait_transaction(&hash, Duration::from_secs(15)) + .map_err(|_| "Failed to create account") + .await?; + + // + // Fetch native and USDC balances for account + // + let account_id = child.xdr_account_id(); + let ledger_key = xdr::LedgerKey::Account(xdr::LedgerKeyAccount { account_id }); + let response = server.get_ledger_entries(vec![ledger_key]).await?; + if let xdr::LedgerEntryData::Account(account) = response.entries.unwrap()[0].to_data() { + // Convert the balance from stroops + let balance = account.balance / operation::ONE; + println!("XLM: {balance}"); + } + + let account_id = child.xdr_account_id(); + let asset = Asset::new("USDC", Some(TESTNET_USDC_ISSUER))?.into(); + let ledger_key = xdr::LedgerKey::Trustline(xdr::LedgerKeyTrustLine { account_id, asset }); + let response = server.get_ledger_entries(vec![ledger_key]).await?; + let entries = response.entries.unwrap_or_default(); + let usdc_balance = match entries.first().map(|e| e.to_data()) { + Some(xdr::LedgerEntryData::Trustline(t)) => t.balance, + _ => 0, + }; + println!("USDC trustline balance (raw): {}", usdc_balance); + + Ok(()) +} +``` + -Ahora que tienes una cuenta y puedes revisar los saldos de sus activos, puedes [comenzar a enviar y recibir pagos](send-and-receive-payments.mdx) o, si estás listo para concentrarte, puedes avanzar y [desarrollar un monedero](../../apps/wallet/overview.mdx) o [emitir un activo Stellar](../../../tokens/anatomy-of-an-asset.mdx). +Ahora que tienes una cuenta y verificas los saldos de sus activos, puedes [comenzar a enviar y recibir pagos](send-and-receive-payments.mdx) o, si estás listo para enfocarte, puedes avanzar y [desarrollar una billetera](../../apps/wallet/overview.mdx) o [emitir un activo Stellar](../../../tokens/anatomy-of-an-asset.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/fee-bump-transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/fee-bump-transactions.mdx index d9ce4203c6..caae8e9641 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/fee-bump-transactions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/fee-bump-transactions.mdx @@ -4,8 +4,6 @@ description: Usa transacciones fee-bump para pagar las comisiones de transacció sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Las transacciones de suplemento de tarifa fueron introducidas en [CAP-0015](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0015.md) y permiten que una cuenta pague las tarifas de una transacción existente sin necesidad de volver a firmar la transacción ni gestionar números de secuencia. Una transacción fee-bump está compuesta por dos partes: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/invoke-contract-tx-sdk.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/invoke-contract-tx-sdk.mdx index 5e4adfa2df..256446054d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/invoke-contract-tx-sdk.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/invoke-contract-tx-sdk.mdx @@ -366,7 +366,7 @@ stellar contract deploy --wasm ./target/wasm32v1-none/release/soroban_auth_contr Esto devolverá un ID de contrato; en el siguiente ejemplo usaremos `CBU3OHKZ2BHOHK5VMG3HBWIW3PBQHZLNMHNJUGM23W5NBFA75JMMWAVT`. ```rust -use std::{cell::RefCell, rc::Rc, time::Duration}; +use std::time::Duration; use soroban_client::{ account::{Account, AccountBehavior}, @@ -374,9 +374,7 @@ use soroban_client::{ contract::{ContractBehavior, Contracts}, keypair::{Keypair, KeypairBehavior}, network::{NetworkPassphrase, Networks}, - soroban_rpc::{ - GetTransactionResponse, SendTransactionResponse, SendTransactionStatus, TransactionStatus, - }, + soroban_rpc::TransactionStatus, transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, Options, Server, }; @@ -384,7 +382,7 @@ use soroban_client::{ #[tokio::main] pub async fn main() -> Result<(), Box> { let server_url = "https://soroban-testnet.stellar.org"; - let server = soroban_client::Server::new(server_url, Options::default())?; + let server = Server::new(server_url, Options::default())?; let source_keypair = Keypair::random()?; let source_public_key = &source_keypair.public_key(); @@ -392,15 +390,12 @@ pub async fn main() -> Result<(), Box> { // Get account information from server let account_data = server.request_airdrop(source_public_key).await?; - let source_account = Rc::new(RefCell::new(Account::new( - source_public_key, - &account_data.sequence_number(), - )?)); + let mut source_account = Account::new(source_public_key, &account_data.sequence_number())?; // Calling the increment method of the contract let contract_addr = "CBU3OHKZ2BHOHK5VMG3HBWIW3PBQHZLNMHNJUGM23W5NBFA75JMMWAVT"; let contract = Contracts::new(contract_addr).unwrap(); - let tx = TransactionBuilder::new(source_account, Networks::testnet(), None) + let tx = TransactionBuilder::new(&mut source_account, Networks::testnet(), None) .fee(1000u32) .add_operation(contract.call( "increment", @@ -430,67 +425,24 @@ pub async fn main() -> Result<(), Box> { let hash = &response.hash; println!(">> Tx hash: {hash}"); - let counter: u32 = if let Some(tx_result) = wait_success(&server, response).await { - // On success we can extract the returned value - let (_meta, ret_val) = tx_result.to_result_meta().expect("No result meta"); - ret_val - .expect("None returned value") - .try_into() - .expect("Return value is not u32") - } else { - return Err("Failed to create contract".into()); + let counter: u32 = match server.wait_transaction(hash, Duration::from_secs(15)).await { + Ok(tx_result) if tx_result.status == TransactionStatus::Success => { + // On success we can extract the returned value + let (_meta, ret_val) = tx_result.to_result_meta().expect("No result meta"); + ret_val + .expect("None returned value") + .try_into() + .expect("Return value is not u32") + } + _ => { + return Err("Failed to create contract".into()); + } }; println!(">> Counter: {counter}",); println!(); Ok(()) } - -// Polling the `get_transaction` until the transaction is found in Success or Failed -async fn wait_success( - server: &Server, - response: SendTransactionResponse, -) -> Option { - if response.status != SendTransactionStatus::Error { - let mut count = 0; - loop { - let response = server.get_transaction(&response.hash).await; - if let Ok(tx_result) = response { - match tx_result.status { - TransactionStatus::Success => { - if let Some(ledger) = tx_result.ledger { - println!(">> Confirmed in ledger: {}", ledger); - } - return Some(tx_result); - } - TransactionStatus::NotFound => { - count += 1; - - if count > 6 { - println!( - ">> Waiting for transaction confirmation... Latest ledger: {}", - tx_result.latest_ledger - ); - } - - tokio::time::sleep(Duration::from_secs(1)).await; - } - TransactionStatus::Failed => { - if let Some(result) = tx_result.to_result() { - eprintln!("Transaction failed with result: {:?}", result); - } else { - eprintln!("Transaction failed without result XDR"); - } - return None; - } - } - } else { - eprintln!("! Error getting transaction status: {:?}", response); - } - } - } - None -} ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx index a8d080cf34..70c3a5726d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/pooled-accounts-muxed-accounts-memos.mdx @@ -4,8 +4,6 @@ description: Usa cuentas muxed para diferenciar entre cuentas individuales dentr sidebar_position: 60 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Al desarrollar una aplicación o servicio en Stellar, una de las primeras decisiones que debes tomar es cómo manejar las cuentas de los usuarios. Puedes crear una cuenta Stellar para cada usuario, pero la mayoría de los servicios custodiados, incluyendo los exchanges de criptomonedas, optan por usar una única cuenta Stellar agrupada para gestionar transacciones en nombre de sus usuarios. En estos casos, la función de cuentas muxed puede mapear las transacciones a cuentas individuales a través de una base de datos interna de clientes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-c-accounts.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-c-accounts.mdx new file mode 100644 index 0000000000..be5c9fba9e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-c-accounts.mdx @@ -0,0 +1,218 @@ +--- +title: Enviar y recibir pagos de Cuentas de Contrato +description: Aprende a enviar pagos a y recibir pagos de Cuentas de Contrato en la red Stellar. +sidebar_position: 7 +--- + +import Details from "@theme/Details"; + +Los pagos entre Cuentas de Contrato (direcciones C) y Cuentas Clásicas (direcciones G) están admitidos a nivel de protocolo, pero existen diferencias en las implementaciones necesarias para admitirlas. Esta guía cubrirá implementaciones para aplicaciones que usan cuentas clásicas G y desean admitir transacciones con Cuentas de Contrato. + +## Recibir pagos de Cuentas de Contrato (de C a G) + +Si un remitente está usando una Cuenta de Contrato y envía un [token SAC](../../../tokens/stellar-asset-contract.mdx) (como XLM, USDC, etc.), la transacción será recibida normalmente por la cuenta G ya que está soportada a nivel de protocolo. + +### Recibir pagos de Cuentas de Contrato que requieren un memo + +Entidades como exchange y emisores de activos suelen usar cuentas omnibus, utilizando una dirección de recepción compartida y un memo identificador único, como: + +- **Cuenta:** `GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7` +- **ID de Memo:** `123456789` + +Las transacciones que involucran Cuentas de Contrato utilizan invocaciones de contrato para ejecutar una función 'transfer' en el contrato del activo. Este tipo de transacción no permite usar el campo 'memo'; en cambio, la aplicación emisora lo codificará en la dirección, generando una dirección multiplexada única que incluye la cuenta receptora (GBLVHX…) y el id proporcionado en el campo muxed id (123456789). + +Para admitir depósitos provenientes de Cuentas de Contrato, no es necesario cambiar la información mostrada a los clientes ni las cuentas de depósito usadas por el exchange. Las billeteras seguirán usando la cuenta G y el memo proporcionado para enviar un pago a la cuenta G del exchange incluyendo el memo con el ID único. + +Esa es la principal diferencia entre recibir de clientes usando cuentas G o de Contrato: en lugar de mirar el campo memo para identificar la cuenta individual, observarás el ID multiplexado. Todo lo demás permanece igual. + +#### Ejemplo usando Horizon + +**Recibiendo de una dirección G** + +Usando el endpoint `accounts/{acc_id}/transactions` de Horizon ([ejemplo](https://horizon-testnet.stellar.org/accounts/GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7/transactions)) + +El campo memo estará presente en la respuesta. + +**Ejemplo de respuesta desde una dirección G:** + +```json +{ + "memo": "123456789", + "memo_bytes": "MTIzNDU2Nzg5", + "source_account": "GCNG5JXJY3LNRMXCX23RIGKTURQACTSV5LL6NKL535BYRGOGWUX6J45Y", + "memo_type": "text" +} +``` + +**Recibir desde una Cuenta de Contrato** + +Usando el endpoint `accounts/{acc_id}/payments` de Horizon ([ejemplo](https://horizon-testnet.stellar.org/accounts/GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7/payments)) + +Después de que se procesa la transacción, este detalle de pago estará presente en el endpoint '/payments', bajo una sección llamada 'asset_balance_changes', que mostrará el ID codificado y la dirección G subyacente por separado. + +Es importante destacar que la sección 'asset_balance_changes' solo soporta activos Stellar y transacciones que usan la función `transfer` en el [Contrato de Activos Stellar (SAC)](../../../tokens/stellar-asset-contract.mdx). + +**Respuesta de ejemplo desde una Cuenta de Contrato:** + +```json +{ + "asset_balance_changes": [ + { + "asset_type": "native", + "type": "transfer", + "from": "CBP4GFAK4GDKCMVLNIHRZPEAPT7CFYTBKICOXCVMP2FEN3QFKCRZ27KS", + "to": "GBLVHX33XGOBDOXK7ERDL34NVH6WW7VTT2OBAHPJ7G3D423HBG5NOMY7", + "amount": "1.0000000", + "destination_muxed_id": "123456789" + } + ] +} +``` + +Para un ejemplo de código detallado, consulta la sección 'Monitoreo de Pagos -> Usando la API de Horizon' de [los ejemplos de este repositorio](https://github.com/fazzatti/c-address-payment-examples#monitoring-payments). + +#### Ejemplo usando RPC + +Desde el lanzamiento de los Eventos de Activos Unificados ([CAP-67](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md)) en el Protocolo 23, varias transacciones que involucran activos Stellar emiten eventos estandarizados que pueden ser ingeridos tanto por la API de Horizon como por el Stellar RPC. Si los fondos se envían a través de una operación 'payment' o invocando la función 'transfer' del contrato de activos, se emite el mismo tipo de evento para ambos casos. + +Para monitorear estos pagos, se usa el método '[getEvents](../../../data/apis/rpc/api-reference/methods/getEvents.mdx)' del RPC de Stellar para transmitir eventos emitidos por el Contrato de Activos Stellar. Se puede usar un filtro para especificar el activo objetivo (ID del contrato SAC) y las cuentas. + +**Desde una dirección G** + +Cuando el receptor es una dirección G normal, la parte valor del evento es simplemente la cantidad recibida. + +```json +{ + "inSuccessfulContractCall": true, + "topicJson": [ + { + "symbol": "transfer" + }, + { + "address": "GD6MYLASTCZ3H4UFLH2YSIASHJNBFUCKC5YHGU44VCH2BGHN3WJQX6LG" + }, + { + "address": "GA4PDUF3BLBSK47UTNY44AIZAP5EPHW2UIJRKB5HN76HHC55IWKSIHFD" + }, + { + "string": "native" + } + ], + "valueJson": { + "i128": "10000000" + } +} +``` + +**Desde una Cuenta de Contrato** + +Cuando la transacción se envía usando una cuenta muxed, la parte valor del evento se desglosa en un objeto que contiene la cantidad y el ID único codificado en la dirección. + +```json +{ + "inSuccessfulContractCall": true, + "topicJson": [ + { + "symbol": "transfer" + }, + { + "address": "GD6MYLASTCZ3H4UFLH2YSIASHJNBFUCKC5YHGU44VCH2BGHN3WJQX6LG" + }, + { + "address": "GA4PDUF3BLBSK47UTNY44AIZAP5EPHW2UIJRKB5HN76HHC55IWKSIHFD" + }, + { + "string": "native" + } + ], + "valueJson": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "10000000" + } + }, + { + "key": { + "symbol": "to_muxed_id" + }, + "val": { + "u64": "123456789" + } + } + ] + } +} +``` + +Para un ejemplo de código detallado, consulta la sección ‘_Monitoreo de Pagos \-\> Uso del Stellar RPC_’ de [los ejemplos de este repositorio](https://github.com/fazzatti/c-address-payment-examples#using-the-stellar-rpc). + +### Envío de pagos desde Cuentas de Contrato a un destinatario que requiere un memo + +Si un remitente está usando una Cuenta de Contrato y está enviando un [token SAC](../../../tokens/stellar-asset-contract.mdx) (como XLM, USDC, etc.) a un destinatario que requiere un memo (por ejemplo, un exchange), debe crear una dirección muxed que incluya la cuenta receptora (GBLVHX…) y la id de memo proporcionada en el campo de id muxed (123456789). En la interfaz de usuario, la dirección de memo resultante no necesita mostrarse al usuario, debe usarse directamente en la transacción. + +Si la parte receptora ya proporciona una dirección M, debe utilizarse directamente, sin necesitar un campo de memo. Como este es el valor proporcionado por el usuario, debe usarse en la transacción y mostrarse al usuario. + +## Envío de pagos a Cuentas de Contrato (de G a C) + +### Enviar un ‘transfer’ mediante Stellar RPC + +Este método es más sencillo pero requiere el uso de un RPC e implica un flujo de transacciones algo diferente al de una operación nativa tradicional. Para un ejemplo de código detallado, consulta la sección ‘_Enviando pagos a través del SAC \-\> Uso del Stellar RPC_’ de [los ejemplos de este repositorio](https://github.com/fazzatti/c-address-payment-examples#sending-payments-through-the-sac). + +**Ensambla la operación y la transacción** + +Para realizar un ‘transfer’ a través de un SAC, es necesario ensamblar una operación ‘_InvokeHostFunctionOp_’ con argumentos similares a una operación de ‘payment’, junto con el identificador del contrato y el nombre de la función objetivo (‘transfer’). + +Esto puede verse en detalle en la función ‘[assembleTransferOperation](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/assemble-transfer-operation.ts)’ del demo. Aunque el ejemplo muestra este proceso con mayor detalle, es posible usar el [js-stellar-sdk](https://github.com/stellar/js-stellar-sdk) y su cliente de Contrato de manera más simple. + +Luego la transacción se desarrolla añadiendo esta operación y configurando los parámetros adicionales como en cualquier otra transacción ‘payment’. + +**Simular la transacción** + +Después de construir la transacción, se utiliza el método RPC ‘simulateTransaction’ para simular la ejecución de esta transacción contra el estado actual de la red, identificar si se espera que tenga éxito y, además, proporcionar varios parámetros adicionales sobre esta ejecución. + +Este proceso es completamente manejado por el SDK en un paso muy simple usando la función ‘_prepareTransaction_’ del cliente del servidor RPC. Automáticamente simula y proporciona un objeto de transacción actualizado. Consulta este proceso en detalle [en el demo](https://github.com/fazzatti/c-address-payment-examples/blob/0e1c021e5afbefd5946878d53934b62cf5a8bb68/src/core/rpc-transaction.ts#L43). + +**Firmar** + +Cuando la misma cuenta se usa como ‘remitente’ de los fondos y también como ‘origen’ de la transacción, el paso de la firma será exactamente el mismo. Una vez que se recibe el objeto de transacción actualizado del paso anterior, solo debes firmarlo con la cuenta fuente/remitente y estará listo. + +Cuando la cuenta ‘fuente’ de la transacción difiere de la cuenta ‘remitente’, será necesaria una entrada firmada adicional para autorizar explícitamente la invocación ‘transfer’. Consulta la [documentación del Marco de Autorización Soroban](../../../learn/fundamentals/contract-development/authorization.mdx#soroban-authorization-framework) para más detalles. + +**Enviar la transacción para procesamiento** + +Cuando una transacción se envía para procesamiento a través del RPC de Stellar, a diferencia de la API Horizon, se resolverá inmediatamente confirmando su envío pero no su procesamiento. Es necesario consultar el estado de la transacción periódicamente hasta obtener una confirmación de que fue procesada exitosamente o una actualización del estatus en caso de falla. + +### Envío de un ‘transfer’ vía API Horizon + +Al enviar un ‘transfer’ vía API Horizon, este método introduce algunos pasos adicionales en comparación con el uso de un RPC. Para un ejemplo de código detallado, consulta la sección ‘_Enviando pagos a través del SAC \-\> Uso de la API Horizon_’ de [los ejemplos de este repositorio](https://github.com/fazzatti/c-address-payment-examples#using-the-horizon-api-1). + +**Ensambla la operación y la transacción** + +Este proceso es casi el mismo que se describe en la sección anterior ‘[Enviar un ‘transfer’ mediante Stellar RPC](#sending-a-transfer-via-stellar-rpc)’ con algunas modificaciones menores. Dado que la API de Horizon **no** provee un endpoint para simular la ejecución de una transacción, esto significa que cuando se arma la transacción necesitamos asegurarnos también de que contiene: + +- Las **entradas de autorización Soroban** que cumplen con los requisitos de autorización de los contratos inteligentes. +- El objeto **Soroban data**, que detalla la huella, los recursos y la tarifa de recursos esperada para esta invocación de contrato. + +Estos normalmente se completan automáticamente basados en la salida de la simulación y simplemente firmando y agregando las entradas de autorización generadas por el RPC. Aquí, necesitamos incluirlos manualmente. + +Las **entradas de autenticación** pueden predecirse y armarse fácilmente según la configuración. Asumiendo que la cuenta ‘remitente’ es la misma que la cuenta ‘fuente’ de la transacción, se necesita agregar una credencial de cuenta fuente a la operación, indicando que esta invocación usará la misma firma del sobre para autorizar el ‘transfer’. Consulta este proceso en detalle en la función [‘assembleSourceAuthEntry’](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/assemble-source-auth.ts) del demo. + +Una vez que las entradas de autenticación están armadas y firmadas (cuando no son entradas ‘source-account’), deben incluirse en la operación, en el parámetro ‘auth’. + +Por otro lado, el proceso para el **Soroban Data** puede ser un poco más difícil de ejecutar manualmente. Considerando que todos los contratos SAC usan la misma implementación nativa, podemos esperar que todas las invocaciones ‘transfer’ sean muy similares. + +La cantidad de recursos consumidos no debería variar mucho salvo algunos casos excepcionales como transacciones que involucran entradas archivadas o una autorización personalizada para una billetera inteligente como remitente. Consulta este proceso de armado manual del Soroban Data en la función [’getSorobanData’](https://github.com/fazzatti/c-address-payment-examples/blob/main/src/core/get-sorobandata.ts) del demo. + +Una vez armado el **Soroban Data**, se incluye en el **Constructor de Transacciones**. + +**Firmar** + +Después de construir la transacción, asumiendo que las ‘entradas de autorización’ del paso anterior fueron configuradas correctamente, la transacción puede firmarse normalmente por la cuenta origen. + +**Enviar la transacción para procesamiento** + +Este paso es el mismo que cualquier transacción enviada a través de la API Horizon. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-payments.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-payments.mdx index 3ae08aafe0..788fe7a623 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-payments.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/send-and-receive-payments.mdx @@ -4,8 +4,6 @@ description: Aprende a enviar pagos y estar atento a los pagos recibidos en la r sidebar_position: 7 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; import Details from "@theme/Details"; ## Resumen de pagos @@ -25,11 +23,11 @@ El enfoque que debes tomar depende del caso de uso: Para aprender más sobre las diferencias entre activos Stellar y tokens de contrato, consulta la descripción general de [Tokens](../../../tokens/README.mdx). - +:::info En los siguientes ejemplos de código, se omite la comprobación adecuada de errores por brevedad. Sin embargo, debes _siempre_ validar tus resultados, ya que hay muchas formas en que las solicitudes pueden fallar. - +::: ## Ejemplo de uso de Pagos @@ -312,9 +310,9 @@ import ( "strings" "time" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" sdk "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" ) @@ -739,8 +737,8 @@ import ( "strings" "time" - "github.com/stellar/go/strkey" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/strkey" + "github.com/stellar/go-stellar-sdk/xdr" sdk "github.com/stellar/stellar-rpc/client" "github.com/stellar/stellar-rpc/protocol" ) @@ -1086,7 +1084,7 @@ java -cp ".:$JAR_FILE" SendPaymentExample mkdir -p payments_example/sender cd payments_example go mod init payments_example -go get github.com/stellar/go@latest +go get github.com/stellar/go-stellar-sdk@latest go get github.com/stellar/stellar-rpc@latest # save sender.go code to sender/sender.go file go build -o sender sender/sender.go diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/simulateTransaction-Deep-Dive.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/simulateTransaction-Deep-Dive.mdx index e8adfcea30..5919fd3a9e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/simulateTransaction-Deep-Dive.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/simulateTransaction-Deep-Dive.mdx @@ -30,7 +30,7 @@ interface SimulateTransactionParams { } ``` -**SimulateTransactionResult** es el resultado devuelto de la llamada. ¡Incluye [muchas cosas útiles](https://developers.stellar.org/docs/data/rpc/api-reference/methods/simulateTransaction)! +**SimulateTransactionResult** es el resultado devuelto de la llamada. ¡Incluye [muchas cosas útiles](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx)! ## Cosas para las que se usa `simulateTransaction`: @@ -373,11 +373,11 @@ Los contratos inteligentes de Soroban en Stellar utilizan un modelo de tarifas d 5. **Tamaño de eventos y valor de retorno**: Tamaño de los eventos producidos por el contrato y el valor de retorno de la función de contrato de nivel superior. 6. **Alquiler de espacio de ledger**: Pago por extensiones de TTL de entradas de ledger y pagos de alquiler por el aumento del tamaño de las entradas de ledger. -Las tarifas se calculan en función del consumo de recursos declarado en la transacción. Las tarifas reembolsables se cobran antes de la ejecución y se reembolsan en función del uso real, mientras que las tarifas no reembolsables se calculan a partir de instrucciones de CPU, bytes leídos, bytes escritos y tamaño de la transacción. [Consulta este documento para una comprensión más profunda de tarifas y mediciones.](https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering) +Las tarifas se calculan en función del consumo de recursos declarado en la transacción. Las tarifas reembolsables se cobran antes de la ejecución y se reembolsan en función del uso real, mientras que las tarifas no reembolsables se calculan a partir de instrucciones de CPU, bytes leídos, bytes escritos y tamaño de la transacción. [Consulta este documento para una comprensión más profunda de las tarifas y el medidor.](../../../learn/fundamentals/fees-resource-limits-metering.mdx) ## Manejo de Errores -El mecanismo de simulación de transacciones proporciona una estimación del consumo de CPU y memoria de una invocación de contrato durante una transacción. También resalta [errores potenciales y limitaciones de recursos](https://developers.stellar.org/docs/learn/encyclopedia/errors-and-debugging/debugging-errors#1-simulate-transaction) de la invocación antes de la presentación real. +El mecanismo de simulación de transacciones proporciona una estimación del consumo de CPU y memoria de una invocación de contrato durante una transacción. También resalta [errores potenciales y limitaciones de recursos](../../../learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx#1-transaction-simulation) de la invocación antes del envío real. ## Código de backend y flujo de trabajo @@ -405,7 +405,7 @@ Estas funciones están definidas en [`rs-soroban-env`](https://github.com/stella Para más información y ejemplos, consulta el código y otra documentación: -- [Documentación de openRpc](https://developers.stellar.org/network/soroban-rpc/api-reference/methods/simulateTransaction) +- [Documentación openRpc](../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx) - [Especificación json de openRpc](https://github.com/stellar/stellar-docs/tree/main/openrpc) - [preflight.go](https://github.com/stellar/stellar-rpc/blob/release/v22.1.2/cmd/stellar-rpc/internal/preflight/preflight.go) - [Código de ejemplo de Soroban](https://github.com/stellar/soroban-examples) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/sponsored-reserves.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/sponsored-reserves.mdx index 37add16492..0cba350f1f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/sponsored-reserves.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/sponsored-reserves.mdx @@ -4,7 +4,6 @@ description: Utiliza las reservas patrocinadas para pagar las reservas base en n sidebar_position: 50 --- -import { CodeExample } from "@site/src/components/CodeExample"; import Details from "@theme/Details"; Las reservas patrocinadas fueron introducidas en [CAP-0033](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0033.md) y permiten que una cuenta (cuenta patrocinadora) pague las reservas base para otra cuenta (cuenta patrocinada). Mientras exista esta relación, los requerimientos de reservas base que normalmente se acumularían en la cuenta patrocinada ahora se acumulan en la cuenta patrocinadora. @@ -137,9 +136,9 @@ import ( "strings" "time" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" sdk "github.com/stellar/stellar-rpc/client" protocol "github.com/stellar/stellar-rpc/protocol" ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/upload-wasm-bytecode.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/upload-wasm-bytecode.mdx new file mode 100644 index 0000000000..b97b6f1403 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/guides/transactions/upload-wasm-bytecode.mdx @@ -0,0 +1,392 @@ +--- +title: Subir código byte de WebAssembly (Wasm) usando código +description: Sube el Wasm del contrato usando js-stellar-sdk. +--- + + + Instalar código byte de WebAssembly (Wasm) usando código + + + + + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Instalar código byte de WebAssembly (Wasm) usando código + +Este proceso sube el código del contrato a la Stellar Testnet en una transacción, el blob Wasm subido es una [fuente del contrato](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#contract-source), que se puede considerar como la 'clase' de un contrato. Se pueden desplegar múltiples [instancias de un contrato](../conventions/deploy-contract.mdx) que comparten la misma fuente, pero tienen su propio estado. + +## Prerrequisitos + +Antes de comenzar, asegúrate de tener instalado lo siguiente para compilar un contrato inteligente: + +1. [Rust](https://www.rust-lang.org/) y Cargo (para compilar contratos inteligentes) +2. La CLI de Stellar + +## Inicializar y desarrollar un contrato Rust de ejemplo + +```bash +stellar contract init hello-world +cd hello-world + +# use rust compiler to compile Rust project into a WebAssembly (Wasm) dynamic library (cdylib). +stellar contract build +# cargo rustc --manifest-path=contracts/hello_world/Cargo.toml --crate-type=cdylib --target=wasm32v1-none --release +``` + +Estamos inicializando el contrato `hello_world` por defecto en [soroban_examples](https://github.com/stellar/soroban-examples) en el directorio `hello-world`. Puedes usar la opción `-w` para crear con otro ejemplo como `account`. + +Después de desarrollar el contrato para producción, el archivo .wasm generado está en la ruta `hello-word/target/wasm32v1-none/release/hello_world.wasm` + +## Subir Wasm a la blockchain Stellar + +Podemos utilizar uno de los [SDKs del cliente](../../../tools/sdks/client-sdks.mdx), e instalar las dependencias necesarias para el lenguaje de programación que elijas: + +- SDK de JavaScript: [Node.js](https://nodejs.org/en) y npm +- SDK de Python: [pip](https://pip.pypa.io/en/stable/installation/) + +Crea un nuevo directorio para tu proyecto y navega dentro de él: + +```bash +mkdir install-wasm +cd install-wasm +``` + +### Ejecutar el script de instalación + +Se pueden usar diferentes lenguajes de programación para subir el archivo `.wasm`, su hash SHA256 se usa para desplegar el contrato. + + + + +Esta guía te llevará a través de la instalación del Wasm del contrato usando el SDK de JavaScript: [js-stellar-sdk](https://github.com/stellar/js-stellar-sdk). + +Crea un nuevo proyecto Node.js con un archivo JavaScript e instala las dependencias necesarias: + +```bash +touch index.js +npm init es6 -y +npm install @stellar/stellar-sdk fs +``` + +Ejecuta el script con `node index.js`, lee el archivo Wasm, obtiene detalles de la cuenta y sube el contrato en una transacción: + +```javascript +// Import necessary modules in your JavaScript file: +import * as StellarSDK from "@stellar/stellar-sdk"; +import fs from "fs"; + +async function uploadWasm(filePath) { + // reads the compiled Wasm file to buffer + const bytecode = fs.readFileSync(filePath); + + // retrieves account details from the network + const account = await server.getAccount(sourceKeypair.publicKey()); + + // installs the bytecode with a `uploadContractWasm` Stellar operation wrapped in a transaction sent to the network + const operation = StellarSDK.Operation.uploadContractWasm({ wasm: bytecode }); + return await buildAndSendTransaction(account, operation); +} + +// constructs a transaction, signs it, and submits it to the network, handling any necessary retries for transaction confirmation. +async function buildAndSendTransaction(account, operations) { + const transaction = new StellarSDK.TransactionBuilder(account, { + fee: StellarSDK.BASE_FEE, + networkPassphrase: StellarSDK.Networks.TESTNET, + }) + .addOperation(operations) + .setTimeout(30) + .build(); + + const tx = await server.prepareTransaction(transaction); + tx.sign(sourceKeypair); + + console.log("Submitting transaction..."); + let response = await server.sendTransaction(tx); + const hash = response.hash; + console.log(`Transaction hash: ${hash}`); + console.log("Awaiting confirmation..."); + + while (true) { + response = await server.getTransaction(hash); + if (response.status !== "NOT_FOUND") { + break; + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + if (response.status === "SUCCESS") { + console.log("Transaction successful."); + return response; + } else { + console.log("Transaction failed."); + throw new Error("Transaction failed"); + } +} + +// Upload contract to the testnet +const server = new StellarSDK.rpc.Server( + "https://soroban-testnet.stellar.org:443", +); +// Replace `Your_Secret_Key` +const sourceKeypair = StellarSDK.Keypair.fromSecret("Your_Secret_Key"); +// Adjust this path as necessary +const wasmFilePath = "../target/wasm32v1-none/release/hello_world.wasm"; + +try { + let uploadResponse = await uploadWasm(wasmFilePath); + const byteArray = uploadResponse.returnValue.bytes(); + const wasmHash = byteArray.toString("hex"); + console.log(`Wasm hash: ${wasmHash}`); +} catch (error) { + console.error(error); +} +``` + + + +Esta guía te llevará a través de la instalación del Wasm del contrato usando el SDK de Python: [py-stellar-base](https://stellar-sdk.readthedocs.io/en/soroban/). + +Crea un nuevo script en Python e instala las dependencias necesarias: + +```bash +touch install.py +pip install stellar-sdk +``` + +Ejecuta el script con `python3 install.py`, lee el archivo Wasm, obtiene detalles de la cuenta y sube el contrato en una transacción: + +```py +import asyncio +import time +from stellar_sdk import Keypair, Network, SorobanServer, TransactionBuilder, xdr as stellar_xdr +from stellar_sdk.exceptions import PrepareTransactionException +from stellar_sdk.soroban_rpc import GetTransactionStatus +import hashlib + + +def print_wasm_hash(wasm_bytes): + # Create a SHA256 hash object + sha256_hash = hashlib.sha256() + + # Update the hash object with the WASM bytes + sha256_hash.update(wasm_bytes) + + # Get the digest and convert it to a stellar_sdk.xdr.Hash object + hash_bytes = sha256_hash.digest() + xdr_hash = stellar_xdr.Hash(hash_bytes) + hash_hex_str = xdr_hash.hash.hex() + print(f"Wasm Hash: {hash_hex_str}") + + +async def upload_wasm(file_path): + # Read the compiled Wasm file + with open(file_path, 'rb') as file: + wasm_bytes = file.read() + + # Retrieve account details from the network + account = server.load_account(source_keypair.public_key) + + # print wasm hash for later deployment + print_wasm_hash(wasm_bytes) + + # Install the bytes with an 'uploadContractWasm' Stellar operation + return await build_and_send_transaction(account, wasm_bytes) + + +async def build_and_send_transaction(account, bytes): + transaction = ( + TransactionBuilder( + source_account=account, + network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE, + ) + .append_upload_contract_wasm_op(bytes) + .set_timeout(30) + .build() + ) + + print("Preparing transaction...") + try: + tx = server.prepare_transaction(transaction) + except PrepareTransactionException as e: + print(f"Got exception: {e}") + return None + + tx.sign(source_keypair) + + print("Submitting transaction...") + response = server.send_transaction(tx) + hash = response.hash + print(f"Transaction hash: {hash}") + print("Awaiting confirmation...") + + while True: + response = server.get_transaction(hash) + if response.status != GetTransactionStatus.NOT_FOUND: + break + time.sleep(1) + + if response.status == GetTransactionStatus.SUCCESS: + print("Transaction successful.") + return response + else: + print("Transaction failed.") + raise Exception("Transaction failed") + +# Upload contract to the testnet +server = SorobanServer("https://soroban-testnet.stellar.org:443") +# Replace 'Your_Secret_Key' with your actual secret key +source_keypair = Keypair.from_secret("Your_Secret_Key") +# Adjust this path as necessary +wasm_file_path = "../target/wasm32v1-none/release/hello_world.wasm" + + +async def main(): + try: + await upload_wasm(wasm_file_path) + except Exception as error: + print(f"Error: {error}") + +# Run the main function +asyncio.run(main()) +``` + + + + +Esta guía te llevará a través de la subida del Wasm del contrato usando el SDK de Rust: [rs-soroban-client](https://github.com/rahul-soshte/rs-soroban-client). + +Crea un nuevo proyecto Cargo e instala las dependencias necesarias: + +```bash +cargo init +cargo add soroban_client +cargo add tokio -F macros,full +``` + +Copia el código abajo en `src/main.rs` y luego ejecuta el programa con `cargo run`, lee el archivo Wasm, obtiene detalles de la cuenta y sube el contrato en una transacción: + +```rust +use std::time::Duration; + +use soroban_client::{ + account::{Account, AccountBehavior}, + keypair::{Keypair, KeypairBehavior}, + network::{NetworkPassphrase, Networks}, + operation::Operation, + soroban_rpc::TransactionStatus, + transaction::{TransactionBehavior, TransactionBuilder, TransactionBuilderBehavior}, + Options, Server, +}; + +#[tokio::main] +pub async fn main() -> Result<(), Box> { + let server_url = "https://soroban-testnet.stellar.org"; + let server = Server::new(server_url, Options::default())?; + + // Adjust this path as necessary + let wasm_file_path = "../target/wasm32v1-none/release/hello_world.wasm"; + + // Read the wasm file + let wasm_bytes = std::fs::read(wasm_file_path)?; + + // Build the xdr::HostFunction::UploadContractWasm operation + let upload_wasm_op = Operation::new() + .upload_wasm(&wasm_bytes, None) + .expect("Cannot create upload_wasm operation"); + + // Replace Your_Secret_Key with your actual secret key + let source_keypair = Keypair::from_secret("Your_Secret_Key")?; + let source_public_key = &source_keypair.public_key(); + + // Get account information from server + let account_data = server.get_account(source_public_key).await?; + + // Build the Account to use in the transaction + let mut source_account = Account::new(source_public_key, &account_data.sequence_number())?; + + // Build the operation + let tx = TransactionBuilder::new(&mut source_account, Networks::testnet(), None) + .fee(1000u32) + .add_operation(upload_wasm_op) + .build(); + + let mut ptx = server.prepare_transaction(&tx).await?; + ptx.sign(&[source_keypair]); + + println!("> Uploading WASM executable"); + let response = server.send_transaction(ptx).await?; + + let hash = &response.hash; + println!(">> Tx hash: {hash}"); + let wasm_hash = match server.wait_transaction(hash, Duration::from_secs(15)).await { + Ok(tx_result) if tx_result.status == TransactionStatus::Success => { + let (_meta, ret_val) = tx_result.to_result_meta().expect("No meta found"); + if let Some(scval) = ret_val { + let bytes: Vec = scval.try_into().expect("Cannot convert ScVal to Vec"); + *bytes.last_chunk::<32>().expect("Not 32 bytes") + } else { + return Err(">> None return value".into()); + } + } + _ => { + println!(">> Failed to upload the WASM executable"); + return Err(">> Failed to upload the wasm".into()); + } + }; + let hex_wasm_hash: String = wasm_hash.iter().map(|b| format!("{:02x}", b)).collect(); + println!(">> Wasm hash: {hex_wasm_hash}"); + println!(); + + Ok(()) +} +``` + + + + +Reemplaza `"Your_Secret_Key"` con tu clave secreta real. + +```bash +stellar keys generate --global hello --network testnet +stellar keys show hello +``` + +La CLI de Stellar se puede usar para generar identidades, por ejemplo `hello`, y mostrar su clave secreta. + +:::tip + +Asegúrate de manejar las claves secretas y privadas de forma segura en entornos de producción y nunca las expongas en tus repositorios de código. + +::: + +```bash +Submitting transaction... +Transaction hash: cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f +Awaiting confirmation... +Transaction successful. +Wasm hash: 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db +``` + +El hash de la transacción de carga devuelto puede verse con herramientas en línea: [stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f](https://stellar.expert/explorer/testnet/tx/cef7a63667fe5b0ddcde5562d90e0a40bc04c69616916d1d7fa74a8571bbd82f) + +[Los contratos cargados se almacenan en entradas ledger ContractCodeEntry.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0046-02.md#uploading-wasm-sources-using-invokehostfunctionop) Estas entradas están indexadas por el hash del Wasm usado para cargarlos. + +Puedes usar el hash del Wasm para desplegar con la CLI de Stellar: + +```bash +stellar contract deploy \ + --source-account hello \ + --network testnet \ + --wasm-hash 275405755441e4be59555bb5c5fd81e84ed21659015d8f3594796c1cf3f380db +# CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW +``` + +Visualiza el contrato desplegado usando el identificador devuelto con herramientas en línea: [stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW](https://stellar.expert/explorer/testnet/contract/CC6NAQE3ZHRQV3NPQB3F3NYEFBAMEABA4KQTM6A2V5V7PBR5H3UEU3MW) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/security-docs/threat-modeling/threat-modeling-how-to.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/security-docs/threat-modeling/threat-modeling-how-to.mdx index 5d03c253e9..3ebd97cf67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/security-docs/threat-modeling/threat-modeling-how-to.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/security-docs/threat-modeling/threat-modeling-how-to.mdx @@ -52,22 +52,18 @@ Para cada incidencia identificada en el modelo STRIDE, piensa en las formas en q El objetivo de esta sección es entender si el análisis realizado durante las otras secciones fue lo suficientemente profundo y amplio como para proporcionar valor. Algunas preguntas a hacer y responder aquí podrían incluir: -#### ¿Se ha hecho referencia al diagrama de flujo de datos desde que fue creado? +- **¿Se ha consultado el diagrama de flujo de datos desde que fue creado?** + - Si es así, felicidades, has creado una herramienta reutilizable que puede seguir agregando valor. + - Si no, puede que sea necesario más detalle o una mejor organización. El diagrama de flujo de datos debe ser una herramienta útil que se consulte regularmente. -- Si es así, ¡felicidades, has creado una herramienta reutilizable que puede seguir aportando valor. -- Si no, puede que sea necesario más detalle o mejor organización. El diagrama de flujo de datos debe ser una herramienta útil que se consulte regularmente. +- **¿El modelo STRIDE descubrió alguna nueva incidencia o preocupación de diseño que no se haya abordado o considerado previamente?** + - Si es así, ¡excelente! El modelo STRIDE debe ayudar a orientar el pensamiento hacia incidencias de seguridad que quizá no se pensaron durante la fase inicial de diseño. + - Si no, asegúrate de tener al menos una incidencia para cada amenaza. Presta especial atención a los límites de confianza y a los procesos que manejan datos sensibles o realizan acciones particularmente poderosas. -#### ¿El modelo STRIDE descubrió algún problema o preocupación de diseño nuevo que no se hubiera tratado o pensado antes? +- **¿Las medidas identificadas en la sección “¿Qué vamos a hacer al respecto?” abordaron adecuadamente las incidencias identificadas?** + - Si es así, ¡excelente! El ejercicio de modelado de amenazas ha ayudado a desarrollar una aplicación más segura. + - Si no, querrás proporcionar mayor detalle y reflexión sobre cómo responder a las incidencias identificadas. -- Si es así, ¡excelente! El modelo STRIDE debería ayudar a orientar el pensamiento hacia cuestiones de seguridad que podrían no haberse considerado durante la fase inicial de diseño. -- Si no, asegúrate de tener al menos un problema para cada amenaza. Presta especial atención a los límites de confianza y a los procesos que manejan datos sensibles o que realizan acciones especialmente potentes. - -#### ¿Los tratamientos identificados en la sección «¿Qué vamos a hacer al respecto?» abordaron adecuadamente los problemas identificados? - -- Si es así, ¡excelente! El ejercicio de modelado de amenazas ha ayudado a construir una aplicación más segura. -- Si no, deberías proporcionar más detalles y reflexión sobre cómo responder a los problemas identificados. - -#### ¿Se han encontrado problemas adicionales después del modelo de amenazas? - -- Si es así, ¡excelente! El modelo de amenazas es una herramienta en vivo que debe rehacerse cada vez que se produzcan cambios significativos en la arquitectura. Durante la fase de diseño de estos cambios o adiciones, asegúrate de analizar el sistema con los cambios recién diseñados para identificar nuevas incidencias potenciales en los cambios nuevos y en la interfaz con el sistema antiguo. -- Si no, continúa refinando tu modelo de amenazas y diseño a medida que se obtiene nueva información sobre el sistema. El modelo de amenazas es una herramienta en vivo que puede seguir proporcionando beneficios a medida que se aprende nueva información sobre el sistema. +- **¿Se han encontrado incidencias adicionales después del modelo de amenazas?** + - Si es así, ¡excelente! El modelo de amenazas es una herramienta en vivo que debe rehacerse cada vez que haya cambios significativos en la arquitectura. Durante la fase de diseño de estos cambios o incorporaciones, asegúrate de analizar el sistema con los cambios recién diseñados para identificar nuevas posibles incidencias tanto en los nuevos cambios como en la interfaz con el sistema antiguo. + - Si no, continúa refinando tu modelo de amenazas y diseño conforme se conozca nueva información sobre el sistema. El modelo de amenazas es una herramienta en vivo que puede seguir aportando beneficios conforme se conoce nueva información sobre el sistema. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/auth.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/auth.mdx index b2304b8549..98ff027663 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/auth.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/auth.mdx @@ -130,7 +130,7 @@ pub enum DataKey { } ``` -`Address` es un identificador universal de Soroban que puede representar una cuenta Stellar, un contrato o un 'contrato de cuenta' (un contrato que define un esquema de autenticación personalizado y políticas de autorización). Los contratos no necesitan distinguir entre estas representaciones internas. `Address` se puede usar cada vez que se necesite representar alguna identidad de red, como distinguir entre contadores para diferentes usuarios en este ejemplo. +`Address` es un identificador universal de Soroban que puede representar una cuenta Stellar, un contrato o una cuenta de contrato (un contrato que define un esquema de autenticación personalizado y políticas de autorización). Los contratos no necesitan distinguir entre estas representaciones internas. `Address` se puede usar cada vez que se necesite representar alguna identidad de red, como distinguir entre contadores para diferentes usuarios en este ejemplo. :::tip Las claves de enumeración como `DataKey` son útiles para organizar el almacenamiento del contrato. @@ -491,4 +491,4 @@ Los ejemplos de [Timelock](../example-contracts/timelock.mdx) y [Single Offer](. El ejemplo de [Atomic Swap](../example-contracts/atomic-swap.mdx) demuestra autorización multi-partes donde múltiples usuarios firman sus partes de la invocación del contrato. -El ejemplo de [Custom Account](../example-contracts/custom-account.mdx) demuestra un contrato de cuenta que define un esquema de autenticación personalizado y políticas de autorización definidas por el usuario. +El ejemplo de [Simple Account](../example-contracts/simple-account.mdx) demuestra una implementación mínima de cuenta de contrato y cómo funciona `__check_auth` de inicio a fin. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/bls-signature.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/bls-signature.mdx index f375fa11f0..3aa4128f97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/bls-signature.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/bls-signature.mdx @@ -1,7 +1,7 @@ --- title: Firma BLS -description: Un contrato de cuenta personalizado con verificación de firma BLS. -sidebar_position: 50 +description: Una cuenta de contrato con verificación de firma BLS. +sidebar_position: 17 --- @@ -9,11 +9,11 @@ sidebar_position: 50 @@ -21,11 +21,11 @@ import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import { getPlatform } from "@site/src/helpers/getPlatform"; -El [ejemplo de firma BLS] ilustra cómo implementar la verificación de firmas BLS dentro de un contrato de cuenta personalizada. +El [ejemplo de firma BLS] muestra cómo implementar la verificación de firmas BLS dentro de una cuenta de contrato. -Este ejemplo se basa en el [ejemplo de cuenta]. Aunque el objetivo principal es ilustrar el uso práctico de las funcionalidades de BLS12-381 en un contexto relevante. +Este ejemplo se basa en el [ejemplo de cuenta compleja]. Aunque el objetivo principal es ilustrar el uso práctico de las funcionalidades de BLS12-381 en un contexto relevante. -Es bueno tener un entendimiento de cómo funciona un contrato de cuenta personalizado, pero no es requisito. +Es bueno comprender cómo funciona una cuenta de contrato, por lo que primero recorre el [ejemplo de cuenta simple], aunque no es obligatorio. [![Open in Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] @@ -34,7 +34,8 @@ Es bueno tener un entendimiento de cómo funciona un contrato de cuenta personal [open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web [open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples [Ejemplo de firma BLS]: https://github.com/stellar/soroban-examples/tree/v23.0.0/bls_signature -[ejemplo de cuenta]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account +[Ejemplo de cuenta compleja]: ./complex-account.mdx +[Ejemplo de cuenta simple]: ./simple-account.mdx ## Contexto sobre la firma BLS @@ -330,7 +331,7 @@ fn test() { } ``` -La mayor parte de lo que hay aquí es necesario para crear el cliente del contrato y asegurar la invocación de su interfaz de cuenta personalizada para la autorización de la firma. Después de la configuración, llamar a `env.try_invoke_contract_check_auth` en el cliente invocará la lógica de `__check_auth` que hemos definido en nuestro contrato. +La mayoría de lo que aquí se presenta es necesario para crear el cliente del contrato y asegurar la invocación de su implementación `CustomAccountInterface` para la autorización mediante firma. Después de la configuración, llamar a `env.try_invoke_contract_check_auth` en el cliente invocará la lógica de `__check_auth` que hemos definido en nuestro contrato. La invocación no retornará nada en caso de éxito, y causará pánico en caso de fallo. `env.cost_estimate().budget().print()` al final muestra el presupuesto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/complex-account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/complex-account.mdx new file mode 100644 index 0000000000..da8747c39a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/complex-account.mdx @@ -0,0 +1,455 @@ +--- +title: Cuenta Compleja +description: Implementa una cuenta de contrato con firmas múltiples y políticas de autorización personalizadas. +sidebar_position: 16 +--- + + + + {`Implementa una cuenta de contrato con firmas múltiples y políticas de autorización personalizadas.`} + + + + + + +Comienza con el [ejemplo de Cuenta Simple](./simple-account.mdx) para aprender lo básico de un solo firmante. Esta Cuenta Compleja extiende esa base con firmas múltiples y políticas de autorización personalizables. Cada vez que se utiliza una `Address` que apunta a esta instancia de contrato, la lógica definida aquí se ejecuta dentro del marco de autenticación de Soroban. + +Las cuentas de contrato son exclusivas de Soroban y no pueden usarse para realizar otras operaciones de Stellar. + +:::danger + +Implementar una cuenta de contrato requiere un muy buen entendimiento de autenticación y autorización, y requiere pruebas y revisiones rigurosas. El ejemplo aquí no es un contrato de cuenta completamente desarrollado, úsalo solo como referencia de API. + +::: + +:::caution + +Aunque las cuentas de contrato son compatibles con el protocolo Stellar y el SDK de Soroban, el soporte completo por parte del cliente (como la simulación de transacciones) todavía está en desarrollo. + +::: + +[![Abrir en Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] + +[![Abrir en Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)][open-in-code-anywhere] + +[open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web +[open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples +[ejemplo de cuenta de contrato]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account + +## Ejecutar el Ejemplo + +Primero sigue el proceso de [configuración] para preparar tu entorno de desarrollo, luego clona la etiqueta `v23.0.0` del repositorio `soroban-examples`: + +[configuración]: ../getting-started/setup.mdx + +```sh +git clone -b v23.0.0 https://github.com/stellar/soroban-examples +``` + +O, salta la configuración del entorno de desarrollo y abre este ejemplo en [GitHub Codespaces][open-in-github-codespaces] o en [Code Anywhere][open-in-code-anywhere]. + +Para ejecutar las pruebas del ejemplo usa `cargo test`. + +```sh +cargo test -p soroban-account-contract +``` + +Deberías ver la salida: + +``` +running 1 test +test test::test_token_auth ... ok +``` + +## Cómo Funciona + +Abre el archivo `account/src/lib.rs` para seguir el ejemplo. + +Los contratos de cuenta implementan una función especial llamada `__check_auth` que toma la carga de firma, las firmas y el contexto de autorización. La función debe generar un error si la autenticación es rechazada; de lo contrario, se aprobará la autorización. + +Este contrato de ejemplo usa claves ed25519 para la verificación de firmas y soporta múltiples firmantes con el mismo peso. También implementa una política que permite establecer límites de gasto por token. El token puede gastarse más allá del límite solo si se proporcionan todas las firmas. + +Por ejemplo, el usuario puede inicializar este contrato con 2 llaves e introducir un límite de gasto de 100 USDC. De este modo, pueden usar una sola llave para firmar sus invocaciones al contrato y estar seguros de que, incluso si firman una transacción maliciosa, no gastarán más de 100 USDC. + +### Inicialización + +```rust title="account/src/lib.rs" +#[contract] +struct AccountContract; + +#[contracttype] +#[derive(Clone)] +enum DataKey { + SignerCnt, + Signer(BytesN<32>), + SpendLimit(Address), +} + +... + +#[contractimpl] +impl AccountContract { + // Initialize the contract with a list of ed25519 public key ('signers'). + pub fn __constructor(env: Env, signers: Vec>) { + // In reality this would need some additional validation on signers + // (deduplication etc.). + for signer in signers.iter() { + env.storage().instance().set(&DataKey::Signer(signer), &()); + } + env.storage() + .instance() + .set(&DataKey::SignerCnt, &signers.len()); + } + + ... +} +``` + +Este contrato de cuenta necesita trabajar explícitamente con las claves públicas. Aquí inicializamos el contrato con llaves ed25519. + +Usamos el constructor para asegurar que la instancia del contrato se cree e inicialice de manera atómica (sin constructor existe el riesgo de que alguien adelante la inicialización del contrato y establezca sus propias claves públicas). + +### Modificación de política + +```rust +#[contractimpl] +impl AccountContract { + ... + + // Adds a limit on any token transfers that aren't signed by every signer. + // For the sake of simplicity of the example the limit is only applied on + // a per-authorization basis; the 'real' limits should likely be time-based + // instead. + pub fn add_limit(env: Env, token: Address, limit: i128) { + // The current contract address is the account contract address and has + // the same semantics for `require_auth` call as any other account + // contract address. + // Note, that if a contract *invokes* another contract, then it would + // authorize the call on its own behalf and that wouldn't require any + // user-side verification. + env.current_contract_address().require_auth(); + env.storage() + .instance() + .set(&DataKey::SpendLimit(token), &limit); + } +} +``` + +Esta función permite a los usuarios establecer y modificar el límite de gasto por token descrito más arriba. El truco aquí es que `require_auth` puede usarse para la `current_contract_address()`, es decir, el contrato de cuenta puede usarse para verificar la autorización de sus propias funciones administrativas. De esta forma no es necesario escribir lógica duplicada de autorización y autenticación. + +### `__check_auth` + +```rust +#[contracttype] +#[derive(Clone)] +pub struct AccSignature { + pub public_key: BytesN<32>, + pub signature: BytesN<64>, +} + +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum AccError { + NotEnoughSigners = 1, + NegativeAmount = 2, + BadSignatureOrder = 3, + UnknownSigner = 4, +} + +... + +#[contractimpl] +impl CustomAccountInterface for AccountContract { + type Signature = Vec; + type Error = AccError; + + // This is the 'entry point' of the account contract and every account + // contract has to implement it. `require_auth` calls for the Address of + // this contract will result in calling this `__check_auth` function with + // the appropriate arguments. + // + // This should return `()` if authentication and authorization checks have + // been passed and return an error (or panic) otherwise. + // + // `__check_auth` takes the payload that needed to be signed, arbitrarily + // typed signatures (`Vec` contract type here) and authorization + // context that contains all the invocations that this call tries to verify. + // + // `__check_auth` has to authenticate the signatures. It also may use + // `auth_context` to implement additional authorization policies (like token + // spend limits here). + // + // Soroban host guarantees that `__check_auth` is only being called during + // `require_auth` verification and hence this may mutate its own state + // without the need for additional authorization (for example, this could + // store per-time-period token spend limits instead of just enforcing the + // limit per contract call). + // + // Note, that `__check_auth` function shouldn't call `require_auth` on the + // contract's own address in order to avoid infinite recursion. + #[allow(non_snake_case)] + fn __check_auth( + env: Env, + signature_payload: Hash<32>, + signatures: Self::Signature, + auth_context: Vec, + ) -> Result<(), AccError> { + // Perform authentication. + authenticate(&env, &signature_payload, &signatures)?; + + let tot_signers: u32 = env + .storage() + .instance() + .get::<_, u32>(&DataKey::SignerCnt) + .unwrap(); + let all_signed = tot_signers == signatures.len(); + + let curr_contract = env.current_contract_address(); + + // This is a map for tracking the token spend limits per token. This + // makes sure that if e.g. multiple `transfer` calls are being authorized + // for the same token we still respect the limit for the total + // transferred amount (and not the 'per-call' limits). + let mut spend_left_per_token = Map::::new(&env); + // Verify the authorization policy. + for context in auth_context.iter() { + verify_authorization_policy( + &env, + &context, + &curr_contract, + all_signed, + &mut spend_left_per_token, + )?; + } + Ok(()) + } +} +``` + +`__check_auth` es una función especial que implementan los contratos de cuenta. Será llamada por el entorno de Soroban cada vez que se invoque `require_auth` o `require_auth_for_args` para la dirección del contrato de la cuenta. + +Aquí se implementa en dos pasos. Primero, se realiza la autenticación usando la carga de firma y un vector de firmas. Luego, se aplica la política de autorización usando el vector `auth_context`. Este vector contiene todas las llamadas de contrato que están siendo autorizadas por las firmas proporcionadas. + +`__check_auth` es una función reservada que solo puede ser llamada por el entorno de Soroban en respuesta a una llamada a `require_auth`. Cualquier llamada directa a `__check_auth` fallará. Esto hace que sea seguro escribir en el almacenamiento del contrato de cuenta desde `__check_auth`, ya que se garantiza que no será llamado en contextos inesperados. En este ejemplo es posible persistir los límites de gasto sin preocuparse de que sean agotados mediante un actor malicioso que llame directamente a `__check_auth`. + +### Autenticación + +```rust +fn authenticate( + env: &Env, + signature_payload: &Hash<32>, + signatures: &Vec, +) -> Result<(), AccError> { + for i in 0..signatures.len() { + let signature = signatures.get_unchecked(i); + if i > 0 { + let prev_signature = signatures.get_unchecked(i - 1); + if prev_signature.public_key >= signature.public_key { + return Err(AccError::BadSignatureOrder); + } + } + if !env + .storage() + .instance() + .has(&DataKey::Signer(signature.public_key.clone())) + { + return Err(AccError::UnknownSigner); + } + env.crypto().ed25519_verify( + &signature.public_key, + &signature_payload.clone().into(), + &signature.signature, + ); + } + Ok(()) +} +``` + +La autenticación aquí simplemente verifica que las firmas proporcionadas son válidas dado el payload y que pertenecen a los firmantes de este contrato de cuenta. + +### Política de autorización + +```rust +fn verify_authorization_policy( + env: &Env, + context: &Context, + curr_contract: &Address, + all_signed: bool, + spend_left_per_token: &mut Map, +) -> Result<(), AccError> { + // There are no limitations when every signers signs the transaction. + if all_signed { + return Ok(()); + } + let contract_context = match context { + Context::Contract(c) => { + // Allow modifying this contract only if every signer has signed for it. + if &c.contract == curr_contract { + return Err(AccError::NotEnoughSigners); + } + c + } + // Allow creating new contracts only if every signer has signed for it. + Context::CreateContractHostFn(_) | Context::CreateContractWithCtorHostFn(_) => { + return Err(AccError::NotEnoughSigners); + } + }; + + ... +} +``` + +Verificamos la política por cada `Context`. Es decir, por cada llamada a `require_auth` para la dirección de esta cuenta. La política del contrato de cuenta exige que cada firmante haya firmado la llamada al método. + +```rust +fn verify_authorization_policy( + env: &Env, + context: &Context, + curr_contract: &Address, + all_signed: bool, + spend_left_per_token: &mut Map, +) -> Result<(), AccError> { + ... + + // Besides the checks above we're only interested in functions that spend tokens. + if contract_context.fn_name != TRANSFER_FN + && contract_context.fn_name != APPROVE_FN + && contract_context.fn_name != BURN_FN + { + return Ok(()); + } + + let spend_left: Option = + if let Some(spend_left) = spend_left_per_token.get(contract_context.contract.clone()) { + Some(spend_left) + } else if let Some(limit_left) = env + .storage() + .instance() + .get::<_, i128>(&DataKey::SpendLimit(contract_context.contract.clone())) + { + Some(limit_left) + } else { + None + }; + + // 'None' means that the contract is outside of the policy. + if let Some(spend_left) = spend_left { + // 'amount' is the third argument in both `approve` and `transfer`. + // If the contract has a different signature, it's safer to panic + // here, as it's expected to have the standard interface. + let spent: i128 = contract_context + .args + .get(2) + .unwrap() + .try_into_val(env) + .unwrap(); + if spent < 0 { + return Err(AccError::NegativeAmount); + } + if !all_signed && spent > spend_left { + return Err(AccError::NotEnoughSigners); + } + spend_left_per_token.set(contract_context.contract.clone(), spend_left - spent); + } + Ok(()) +} +``` + +Luego verificamos los nombres estándar de funciones de token y comprobamos que para estas funciones no se excedan los límites de gasto. + +### Pruebas + +Abre el archivo [`account/src/test.rs`] para seguir el ejemplo. + +[`account/src/test.rs`]: https://github.com/stellar/soroban-examples/tree/v23.0.0/account/src/test.rs + +Consulta otros ejemplos para obtener información general sobre la configuración de las pruebas. + +Aquí solo observamos algunos puntos específicos de los contratos de cuenta. + +```rust +fn sign(e: &Env, signer: &Keypair, payload: &BytesN<32>) -> Val { + AccSignature { + public_key: signer_public_key(e, signer), + signature: signer + .sign(payload.to_array().as_slice()) + .to_bytes() + .into_val(e), + } + .into_val(e) +} +``` + +A diferencia de la mayoría de los contratos que pueden usar simplemente `Address`, los contratos de cuenta manejan la verificación de firmas y por ello necesitan firmar realmente los payloads. + +```rust +let payload = BytesN::random(&env); +let token = Address::generate(&env); +// `__check_auth` can't be called directly, hence we need to use +// `try_invoke_contract_check_auth` testing utility that emulates being +// called by the Soroban host during a `require_auth` call. +env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + vec![&env, sign(&env, &signers[0], &payload)].into(), + &vec![ + &env, + token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1000), + ], +) +.unwrap(); +``` + +`__check_auth` no puede llamarse directamente como funciones regulares de contrato, por lo que necesitamos usar la utilidad de prueba `try_invoke_contract_check_auth` que simula ser llamada por el host Soroban durante una llamada a `require_auth`. + +```rust +// Add a spend limit of 1000 per 1 signer. +account_contract.add_limit(&token, &1000); +// Verify that this call needs to be authorized. +assert_eq!( + env.auths(), + std::vec![( + account_contract.address.clone(), + AuthorizedInvocation { + function: AuthorizedFunction::Contract(( + account_contract.address.clone(), + symbol_short!("add_limit"), + (token.clone(), 1000_i128).into_val(&env), + )), + sub_invocations: std::vec![] + } + )] +); +``` + +Afirmar el error específico del contrato en `try_invoke_contract_check_auth` permite verificar el código exacto del error y asegura que la verificación haya fallado por no tener suficientes firmantes, y no por otra razón. + +Es recomendable que el contrato de cuenta tenga códigos de error detallados y verificar que se devuelvan cuando se esperan. + +```rust +// 1 signer no longer can perform the token operation that transfers more +// than 1000 units. +assert_eq!( + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + vec![&env, sign(&env, &signers[0], &payload)].into(), + &vec![ + &env, + token_auth_context(&env, &token, Symbol::new(&env, "transfer"), 1001) + ], + ) + .err() + .unwrap() + .unwrap(), + AccError::NotEnoughSigners +); +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/deployer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/deployer.mdx index 766fac4a69..a9c4ababd4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/deployer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/deployer.mdx @@ -348,7 +348,7 @@ El comando imprime el hash en formato hexadecimal. Debería verse algo así como También necesitamos desplegar el contrato `Desplegador`: ```sh -stellar contract deploy --wasm deployer/target/wasm32v1-none/release/soroban_deployer_contract.wasm --id 1 +stellar contract deploy --wasm deployer/target/wasm32v1-none/release/soroban_deployer_contract.wasm --alias 1 ``` Esto devolverá la dirección del desplegador: `CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/non-fungible-token.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/non-fungible-token.mdx index 944d521f57..00ef67e4b7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/non-fungible-token.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/non-fungible-token.mdx @@ -16,7 +16,7 @@ sidebar_position: 142 # Token No Fungible -[Código Fuente](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non-fungible) +[Código Fuente](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non_fungible) [![Abrir en Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] @@ -26,7 +26,7 @@ En el mundo de los activos digitales, no todos los tokens son iguales. Esto es i ## Resumen -El módulo [non-fungible](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non-fungible) ofrece tres variantes diferentes de NFT que difieren en cómo se manejan ciertas características como el seguimiento de la propiedad, la creación y destrucción de tokens: +El módulo [non-fungible](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/non_fungible) ofrece tres variantes diferentes de NFT que se diferencian en cómo se manejan ciertas funciones como el seguimiento de la propiedad, la creación y destrucción de tokens: 1. **Base**: Variante de contrato que implementa la lógica base para la interfaz NonFungibleToken. Adecuada para la mayoría de los casos de uso. 2. **Consecutiva**: Variante de contrato para la creación optimizada de lotes de tokens. Se basa en la variante base y sobrescribe las funciones necesarias de la variante `Base`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/simple-account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/simple-account.mdx new file mode 100644 index 0000000000..be2dc34906 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/simple-account.mdx @@ -0,0 +1,175 @@ +--- +title: Cuenta Simple +sidebar_label: Cuenta Simple +description: Una cuenta de contrato mínima asegurada por una sola clave pública ed25519. +sidebar_position: 15 +--- + + + Cuenta Simple + + + + + +Este ejemplo implementa la cuenta de contrato más pequeña posible [contract account](../../../learn/glossary.mdx#contract-account): cada llamada `require_auth` delega en una clave pública ed25519. Muestra cómo almacenar esa clave, ejecutar `__check_auth` y mostrar fallos de autorización. Usa esto como base antes de pasar al [Ejemplo de Cuenta Compleja](./complex-account.mdx) para firmas múltiples o aplicación de políticas. + +:::danger + +Implementar una cuenta de contrato requiere un muy buen entendimiento de la autenticación y autorización y exige pruebas rigurosas y revisión. El ejemplo aquí _no_ es un contrato de cuenta completo: úsalo solo como referencia de la API. + +::: + +:::caution + +Aunque las cuentas de contrato son compatibles con el protocolo Stellar y el SDK Soroban, el soporte completo del cliente (como simulación de transacciones) aún está en desarrollo. + +::: + +[![Abrir en Codespaces](https://github.com/codespaces/badge.svg)][open-in-github-codespaces] + +[![Abrir en Codeanywhere](https://codeanywhere.com/img/open-in-codeanywhere-btn.svg)][open-in-code-anywhere] + +[open-in-github-codespaces]: https://github.com/codespaces/new?repo=stellar/soroban-examples&editor=web +[open-in-code-anywhere]: https://app.codeanywhere.com/#https://github.com/stellar/soroban-examples + +## Ejecutar el Ejemplo + +1. Completa la lista de verificación de [Configuración] para instalar Stellar CLI, el objetivo Rust y las variables de entorno necesarias. +2. Clona el repositorio `soroban-examples` en la etiqueta `v23.0.0`: + +```sh +git clone -b v23.0.0 https://github.com/stellar/soroban-examples +``` + +3. Si prefieres no instalar nada localmente, lanza el repositorio en [GitHub Codespaces][open-in-github-codespaces] o [Codeanywhere][open-in-code-anywhere]. + +Ejecuta las pruebas desde el directorio `simple_account`: + +```sh +cd simple_account +cargo test +``` + +Salida esperada: + +``` +running 1 test +test test::test_account ... ok +``` + +[setup]: ../getting-started/setup.mdx + +## Cómo Funciona + +Abre `simple_account/src/lib.rs`. El contrato mantiene un único estado: la clave pública ed25519 del propietario. + +### Inicializar al propietario + +```rust title="simple_account/src/lib.rs" +#[contracttype] +#[derive(Clone)] +pub enum DataKey { + Owner, +} + +#[contractimpl] +impl SimpleAccount { + pub fn init(env: Env, public_key: BytesN<32>) { + if env.storage().instance().has(&DataKey::Owner) { + panic!("owner is already set"); + } + env.storage().instance().set(&DataKey::Owner, &public_key); + } +``` + +Llama a `init` una vez para guardar la clave pública del propietario. Llamadas posteriores causan un pánico para evitar reemplazar la clave. + +### Implementar `__check_auth` + +```rust title="simple_account/src/lib.rs" + #[allow(non_snake_case)] + pub fn __check_auth( + env: Env, + signature_payload: BytesN<32>, + signature: BytesN<64>, + _auth_context: Vec, + ) { + let public_key: BytesN<32> = env + .storage() + .instance() + .get(&DataKey::Owner) + .unwrap(); + env.crypto() + .ed25519_verify(&public_key, &signature_payload.into(), &signature); + } +} +``` + +`__check_auth` se ejecuta cada vez que otro contrato invoca `require_auth` en esta dirección de contrato. La implementación carga la clave almacenada, verifica la firma y provoca un pánico en caso de fallo para que la llamada upstream de `require_auth` sea rechazada. Cuando necesites múltiples claves o lógica de políticas, sigue el mismo patrón mostrado en la Cuenta Compleja. + +## Pruebas + +Abre `simple_account/src/test.rs`. `__check_auth` no está expuesto como un punto de entrada regular, así que las pruebas llaman a `env.try_invoke_contract_check_auth` para emular el host de Soroban y ejecutar la misma ruta que Soroban usa durante `require_auth`. + +```rust title="simple_account/src/test.rs" +#[test] +fn test_account() { + let env = Env::default(); + let account_contract = SimpleAccountClient::new(&env, &env.register(SimpleAccount, ())); + + let signer = Keypair::generate(&mut thread_rng()); + account_contract.init(&signer.public.to_bytes().into_val(&env)); + + let payload = BytesN::random(&env); + env.try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + sign(&env, &signer, &payload), + &vec![&env], + ) + .unwrap(); + + assert!(env + .try_invoke_contract_check_auth::( + &account_contract.address, + &payload, + BytesN::<64>::random(&env).into(), + &vec![&env], + ) + .is_err()); +} +``` + +`try_invoke_contract_check_auth` simula la ruta del host para `require_auth`, permitiendo probar tanto el caso de éxito como un caso de fallo con bytes aleatorios. + +Sigue la misma estructura para cualquier cuenta: + +- crea un par de claves y guarda el firmante esperado (por ejemplo, con `init`) +- llama a `try_invoke_contract_check_auth` con una firma válida y verifica que tenga éxito +- llámalo de nuevo con una firma o carga inválida y verifica que falle + +## Compilar el Contrato + +Para producir el ejecutable Wasm, ejecuta: + +```sh +stellar contract build +# add --package soroban-simple-account-contract when building inside the soroban-examples workspace +``` + +El archivo compilado aparece en `target/wasm32v1-none/release/simple_account.wasm` (el nombre exacto depende del nombre de tu crate). + +## Lecturas Adicionales + +- [Ejemplo de cuenta compleja] – añade soporte para multisig y límites de gasto. +- [Contrato de firma BLS](./bls-signature.mdx) – demuestra esquemas de firma personalizados dentro de `__check_auth`. + +[Ejemplo de cuenta compleja]: ./complex-account.mdx +[ejemplo de cuenta simple]: https://github.com/stellar/soroban-examples/tree/v23.0.0/simple_account diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/storage.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/storage.mdx index cbc7526277..e2c3f93f50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/storage.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/example-contracts/storage.mdx @@ -118,7 +118,7 @@ Si no hay ningún valor almacenado actualmente, se devolverá el valor dado a `u Los valores almacenados como datos del contrato y recuperados son transmitidos desde [el entorno] y se expanden al tipo especificado. En este caso, un `u32`. Si el valor puede ser expandido, el tipo devuelto será un `u32`. De lo contrario, si un desarrollador lo convierte a ser algún otro tipo, se produciría un pánico en el unwrap. -[el entorno]: https://developers.stellar.org/docs/learn/encyclopedia/contract-development/environment-concepts +[el entorno]: ../../../learn/fundamentals/contract-development/environment-concepts.mdx ```rust env.storage() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-increment-contract.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-increment-contract.mdx index 927489c3fa..17534794e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-increment-contract.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-increment-contract.mdx @@ -35,7 +35,7 @@ Si el contrato aún no ha sido desarrollada, ejecuta el comando de construcción stellar contract upload \ --network testnet \ --source-account alice \ - --wasm target/wasm32v1-none/release/soroban_increment_contract.wasm + --wasm target/wasm32v1-none/release/increment.wasm ``` @@ -46,7 +46,7 @@ stellar contract upload \ stellar contract upload ` --network testnet ` --source-account alice ` - --wasm target/wasm32v1-none/release/soroban_increment_contract.wasm + --wasm target/wasm32v1-none/release/increment.wasm ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-to-testnet.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-to-testnet.mdx index a03dc25a30..3cf338f183 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-to-testnet.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/deploy-to-testnet.mdx @@ -78,7 +78,7 @@ Esto devuelve el id del contrato, comenzando con una `C`. En este ejemplo, vamos :::tip -Usamos el flag `--alias` en este comando de despliegue que creará un archivo `.stellar/contract-ids/hello_world.json` que mapea el alias `hello_world` con el id del contrato y la red. Esto nos permite referirnos a este contrato por su alias en lugar del id del contrato. +Usamos el flag `--alias` en este comando de despliegue, que creará un archivo `~/.config/stellar/contract-ids/hello_world.json` que asigna el alias `hello_world` al ID del contrato y a la red. Esto nos permite referirnos a este contrato por su alias en lugar del id del contrato. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/hello-world-frontend.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/hello-world-frontend.mdx index 80e91103f1..fd8c07b85e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/hello-world-frontend.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/hello-world-frontend.mdx @@ -55,12 +55,6 @@ extra-escape └── tsconfig.json ``` -Como ya hemos desplegado estos contratos con alias, podemos reutilizar los archivos de ID de contrato generados copiándolos del directorio `soroban-hello-world/.stellar` en este proyecto: - -```sh -cp -R ../.stellar/ .stellar -``` - ## Generar un paquete NPM para el contrato Hello World Antes de abrir los nuevos archivos de frontend, generemos un paquete NPM para el contrato Hello World. Esta es nuestra forma sugerida de interactuar con contratos desde frontends. Estas bibliotecas generadas funcionan con cualquier proyecto JavaScript (no con una interfaz específica como React) y facilitan trabajar con algunos de los aspectos más complejos de los contratos inteligentes en Stellar, como la codificación de [XDR](../../../learn/fundamentals/contract-development/types/fully-typed-contracts.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/setup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/setup.mdx index 3f992a4a1f..e4216845f4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/setup.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/getting-started/setup.mdx @@ -58,6 +58,20 @@ Para otros métodos de instalación de [Rust], consulta: https://www.rust-lang.o +Los contratos inteligentes Stellar requieren **Rust toolchain v1.84.0 o superior**, ya que el objetivo `wasm32v1-none` solo está disponible en versiones recientes. + +Para comprobar tu versión: + +```sh +rustc --version +``` + +Si necesitas actualizar: + +```sh +rustup update stable +``` + ## Instalar el objetivo You'll need a "target" for which your smart contract will be compiled. Para Rust `v1.84.0` o superior, instala el target `wasm32v1-none`. @@ -66,6 +80,12 @@ You'll need a "target" for which your smart contract will be compiled. Para Rust rustup target add wasm32v1-none ``` +:::note + +Cuando instalas Rust, el objetivo de WebAssembly se instala por cada toolchain. Si actualizas tu versión de Rust, deberás reinstalar el objetivo `wasm32v1-none` para la nueva toolchain. + +::: + Puedes aprender más sobre los detalles que aporta este target en nuestra página dedicada al [dialecto Stellar Rust](../../../learn/fundamentals/contract-development/rust-dialect.mdx#limited-webassembly-features). Esta página describe el subconjunto de funcionalidades de Rust que tienes disponibles dentro del entorno de contratos inteligentes de Stellar. ## Configurar un editor @@ -95,6 +115,12 @@ There are a few ways to install the [latest release](https://github.com/stellar/ +Instalar usando script (macOS, Linux): + +```sh +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Install with Homebrew (macOS, Linux): ```sh @@ -108,6 +134,12 @@ Install with cargo from source: +Instalar usando script (macOS, Linux): + +```sh +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Instalar con Homebrew (macOS, Linux): ```sh diff --git a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/overview.mdx index c3fa6a28b4..166a6a9bcf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/build/smart-contracts/overview.mdx @@ -45,7 +45,7 @@ La herramienta CLI del SDK de Soroban proporciona una interfaz orientada a desar - Versionado - Desplegando -También incluye una implementación completa del entorno host de contratos que es idéntica al que se ejecuta en la cadena, llamado [modo de prueba local](/docs/learn/fundamentals/contract-development/errors-and-debugging/debugging#local-testing-mode). Con esta capacidad, los contratos pueden ejecutarse localmente en la estación de trabajo de un desarrollador y pueden ser probados y depurados directamente con un depurador local dentro de un IDE estándar, así como con un arnés de pruebas nativas para pruebas unitarias de retroalimentación rápida y pruebas de fuzz o de propiedades de alta velocidad. +También incluye una implementación completa del entorno host del contrato que es idéntica al que se ejecuta en la cadena, llamado [modo de prueba local](../../learn/fundamentals/contract-development/errors-and-debugging/debugging.mdx#local-testing-mode). Con esta capacidad, los contratos pueden ejecutarse localmente en la estación de trabajo de un desarrollador y pueden ser probados y depurados directamente con un depurador local dentro de un IDE estándar, así como con un arnés de pruebas nativas para pruebas unitarias de retroalimentación rápida y pruebas de fuzz o de propiedades de alta velocidad. ## Entorno host diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/CONTRIBUTING.md b/i18n/es/docusaurus-plugin-content-docs/current/data/CONTRIBUTING.md new file mode 100644 index 0000000000..1888ecb09b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# DETÉN LO QUE ESTÁS HACIENDO + +Si estás aquí para hacer algunas correcciones en la documentación de la API de Stellar (¡antes que nada, gracias!), probablemente no quieras estar en esta ubicación. La mayor parte de la documentación de la API ubicada aquí ha sido generada por los archivos `.yml` contenidos en el directorio `/openapi`. A menos que estés trabajando en algo que esté _fuera_ del directorio `/api/resources`, probablemente quieras revisar `/openapi` en lugar de aquí. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/README.mdx index 6ef64e399e..677fb2b629 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/README.mdx @@ -1,5 +1,6 @@ --- title: Resumen de Datos +sidebar_position: 0 --- Hay varias productos para elegir al interactuar con la red Stellar, y cada uno está optimizado para diferentes patrones de acceso, por lo que es importante elegir la herramienta adecuada según tu caso de uso específico. Estas herramientas permiten a los usuarios consultar datos de la red, enviar transacciones e interactuar con contratos inteligentes sin necesidad de entender los detalles de bajo nivel de Stellar Core. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/analyst-guide/creating-visualizations.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/analyst-guide/creating-visualizations.mdx index e6603c1959..ff19daf19e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/analyst-guide/creating-visualizations.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/analyst-guide/creating-visualizations.mdx @@ -29,13 +29,13 @@ Al final del tutorial, habrás creado dos gráficos que ayudarán a visualizar l -Como puedes ver, las entradas de datos de contratos persistentes representan aproximadamente el 25% de todas las entradas de datos de contratos, siendo el resto temporales. También hay muchas más entradas de datos de contrato temporales que han caducado. Esto es esperado porque las entradas temporales no pueden ser reemplazadas, mientras que las persistentes pueden ser reemplazadas/restauradas. Para más información, puedes leer sobre [Archivado de Estado y el Ciclo de Vida de Datos de Contrato](https://developers.stellar.org/docs/learn/encyclopedia/storage/state-archival#contract-data-type-descriptions). +Como puedes ver, las entradas de datos de contratos persistentes representan aproximadamente el 25% de todas las entradas de datos de contratos, siendo el resto temporales. También hay muchas más entradas de datos de contrato temporales que han caducado. Esto es esperado porque las entradas temporales no pueden ser reemplazadas, mientras que las persistentes pueden ser reemplazadas/restauradas. Para obtener más información, puedes leer sobre [Archivo de estado y el ciclo de vida de los datos del contrato](../../../../learn/fundamentals/contract-development/storage/state-archival.mdx#contract-data-type-descriptions). ## Condiciones Previas 1. Asegúrate de que te has conectado a Hubble siguiendo las instrucciones en la página de [Conexión](../developer-guide/connecting-to-bigquery/README.mdx) 2. Tienes acceso a [Google Looker Studio](https://cloud.google.com/looker-studio?hl=en) -3. Has leído y comprendes las [Prácticas Recomendadas](https://developers.stellar.org/docs/data/hubble/analyst-guide/optimizing-queries#best-practices) generales para consultar datos de BigQuery +3. Has leído y entiendes las [prácticas recomendadas](./optimizing-queries.mdx#best-practices) generales para consultar datos en BigQuery ## Crear un Informe en Looker Studio diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx index c440eaaa94..056d62c408 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/accounts.mdx @@ -24,7 +24,7 @@ description: "" | buying_liabilities | La suma de todas las ofertas de compra que posee esta cuenta solo para XLM | flotante | | Sí | La tabla `accounts` solo informa saldos monetarios para XLM. Cualquier otra clase de activo se informa en la tabla `trust_lines`. Para las ofertas de compra, la cuenta debe poseer la cantidad de activo para completar la transacción | | selling_liabilities | La suma de todas las ofertas de venta que posee esta cuenta solo para XLM | flotante | | Sí | La tabla `accounts` solo informa saldos monetarios para XLM. Cualquier otra clase de activo se informa en la tabla `trust_lines`. | | sequence_number | El número de secuencia actual de la cuenta. El número de secuencia controla las operaciones aplicadas a una cuenta. Las operaciones deben enviar un número de secuencia único que se incremente en 1 para aplicar la operación a la cuenta y evitar colisiones dentro de un ledger. | entero | | Sí | | -| num_subentries | El número total de entradas de ledger vinculadas a esta cuenta. Las entradas de ledger incluyen: trustlines, ofertas, firmantes y entradas de datos. (Los saldos reclamables se cuentan bajo entradas patrocinadas, no subentradas). Cualquier trustline, oferta, firmante o entrada de datos recién creada incrementará el número de subentradas en 1. Las cuentas pueden tener hasta 1,000 subentradas | entero | | Sí | Cada entrada en un ledger ocupa espacio, lo cual es costoso almacenar en la blockchain. Por cada entrada, se requiere que una cuenta mantenga un [saldo mínimo de XLM](https://developers.stellar.org/docs/learn/glossary#minimum-balance). La reserva se calcula con (2 + num_subentries - num_sponsoring + num_sponsored) \* 0.5XLM | +| num_subentries | El número total de entradas de ledger vinculadas a esta cuenta. Las entradas de ledger incluyen: trustlines, ofertas, firmantes y entradas de datos. (Los saldos reclamables se cuentan bajo entradas patrocinadas, no subentradas). Cualquier trustline, oferta, firmante o entrada de datos recién creada incrementará el número de subentradas en 1. Las cuentas pueden tener hasta 1,000 subentradas | entero | | Sí | Cada entrada en un ledger ocupa espacio, lo cual es costoso almacenar en la blockchain. Para cada entrada, se requiere que una cuenta mantenga un [saldo mínimo de XLM](../../../../../../learn/glossary.mdx#minimum-balance). La reserva se calcula con (2 + num_subentries - num_sponsoring + num_sponsored) \* 0.5XLM | | inflation_destination | Obsoleto: La dirección de la cuenta que recibe el pago de inflación cuando se distribuye en la red. | cadena | | Sí | La inflación fue descontinuada en 2019 por voto de los validadores. | | flags | Indica la habilitación y deshabilitación de ciertos privilegios del emisor del activo | entero |
  • 0 - Ninguno, por defecto
  • 1 - Autenticación requerida (todas las trustlines por defecto no son confiables y requieren confianza manual)
  • 2 - Autenticación revocable (permite revocar trustlines si la cuenta ya no confía en el activo)
  • 4 - Autenticación inmutable (todas las flags de autenticación son de solo lectura cuando están activadas)
  • 8 - Autenticación de recuperación habilitada (el activo puede ser recuperado del usuario)
| Sí | Las flags se establecen en las cuentas emisoras para un activo. Cuando las cuentas de usuario confían en un activo, las flags aplicadas al activo se originan en esta cuenta | | home_domain | El dominio que aloja el archivo stellar.toml de esta cuenta | cadena | | Sí | Solo aplica a cuentas emisoras de activos. El archivo stellar.toml contiene metadatos sobre el emisor del activo que ayudan a identificar quién es el emisor e infunden confianza en el activo | @@ -41,8 +41,8 @@ description: "" | batch_run_date | La fecha de inicio para el intervalo del batch. Cuando se combina con la fecha en batch_id, representa el intervalo de ledgers procesados. La fecha de ejecución del batch puede considerarse como un proxy de closed_at para un ledger. | fecha y hora | | Sí | La tabla está particionada por batch_run_date. Se recomienda siempre incluir batch_run_date en el filtro si es posible para ayudar a reducir el costo de la consulta. | | batch_insert_ts | La marca de tiempo en UTC cuando un lote de registros fue insertado en la base de datos. Este campo puede ayudar a identificar si un batch se ejecutó en tiempo real o como parte de una reposición | marca de tiempo | | Sí | | | sponsor | La dirección de la cuenta del patrocinador que está pagando las reservas para esta cuenta. | cadena | | No | | -| num_sponsored | El número de reservas patrocinadas para esta cuenta (es decir, otra cuenta está pagando el saldo mínimo). Las entradas patrocinadas no incurren en ningún requisito de reserva para la cuenta propietaria de la entrada. | entero | | No | Por defecto es 0 Las cuentas, ofertas, trustlines, datos y firmantes pueden estar opcionalmente patrocinados. Los saldos reclamables deben ser patrocinados. Consulta más información sobre patrocinio [aquí](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves). | -| num_sponsoring | El número de reservas patrocinadas por esta cuenta. Las entradas patrocinadas por esta cuenta incurren en un requerimiento de reserva. | entero | | No | Por defecto es 0 Las cuentas, ofertas, trustlines, datos y firmantes pueden estar opcionalmente patrocinados. Los saldos reclamables deben ser patrocinados. Consulta más información sobre patrocinio [aquí](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves). | +| num_sponsored | El número de reservas patrocinadas para esta cuenta (es decir, otra cuenta está pagando el saldo mínimo). Las entradas patrocinadas no incurren en ningún requisito de reserva para la cuenta propietaria de la entrada. | entero | | No | Por defecto es 0 Las cuentas, ofertas, trustlines, datos y firmantes pueden estar opcionalmente patrocinados. Los saldos reclamables deben ser patrocinados. Consulta más información sobre el patrocinio [aquí](../../../../../../build/guides/transactions/sponsored-reserves.mdx). | +| num_sponsoring | El número de reservas patrocinadas por esta cuenta. Las entradas patrocinadas por esta cuenta incurren en un requerimiento de reserva. | entero | | No | Por defecto es 0 Las cuentas, ofertas, trustlines, datos y firmantes pueden estar opcionalmente patrocinados. Los saldos reclamables deben ser patrocinados. Consulta más información sobre el patrocinio [aquí](../../../../../../build/guides/transactions/sponsored-reserves.mdx). | | sequence_ledger | El número de ledger de 32 bits sin signo de la antigüedad del número de secuencia | entero | | No | Refleja la última vez que una cuenta tocó su número de secuencia. Ten en cuenta que incluso si la operación de Incrementar Secuencia no tiene efecto, por ejemplo no incrementa el número de secuencia, aún cuenta como un "toque" | | sequence_time | La marca de tiempo UNIX de la antigüedad del número de secuencia | marca de tiempo | | No | Refleja la última vez que una cuenta tocó su número de secuencia. Ten en cuenta que incluso si la operación de Incrementar Secuencia no tiene efecto, por ejemplo no incrementa el número de secuencia, aún cuenta como un "toque" | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx index 9bcb9e2ccc..3cdeb063db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-operations.mdx @@ -148,7 +148,7 @@ description: "" | batch_insert_ts | La marca de tiempo en UTC cuando un batch de registros fue insertado en la base de datos. Este campo puede ayudar a identificar si un batch se ejecutó en tiempo real o como parte de un backfill | timestamp | | Sí | | | closed_at | Marca de tiempo en UTC cuando este ledger cerró y se comprometió en la red. Se espera que los ledgers cierren aproximadamente cada 5 segundos | timestamp | | Sí | Estamos planeando reparticionar esta tabla sobre closed_at | | operation_result_code | El código de resultado devuelto cuando se aplica una operación. Este código es útil para entender operaciones fallidas | cadena |
  • OperationResultCodeOpInner
  • OperationResultCodeOpBadAuth
  • OperationResultCodeOpNoAccount
  • OperationResultCodeOpNotSupported
  • OperationResultCodeOpTooManySubentries
  • OperationResultCodeOpExceededWorkLimit
  • OperationResultCodeOpTooManySponsoring
| Sí | Este campo se llenará en una fecha futura | -| operation_trace_code | El código de traza devuelto cuando una operación es aplicada a la red Stellar. Este código es útil para entender fallos sutiles por tipo de operación. Este código proporciona el detalle más bajo respecto a por qué una transacción falla | cadena |
  • InvokeHostFunctionResultCodeInvokeHostFunctionSuccess
  • Malformed
  • Trapped
  • ResourceLimitExceeded
  • EntryArchived
  • InsufficientRefundableFee
  • ExtendFootprintTtlResultCodeExtendFootprintTtlSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
  • RestoreFootprintResultCodeRestoreFootprintSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
| Sí | Consulta la [documentación](https://pkg.go.dev/github.com/stellar/go/xdr#OperationResultTr) de XDR para más detalles | +| operation_trace_code | El código de traza devuelto cuando una operación es aplicada a la red Stellar. Este código es útil para entender fallos sutiles por tipo de operación. Este código proporciona el detalle más bajo respecto a por qué una transacción falla | cadena |
  • InvokeHostFunctionResultCodeInvokeHostFunctionSuccess
  • Malformed
  • Trapped
  • ResourceLimitExceeded
  • EntryArchived
  • InsufficientRefundableFee
  • ExtendFootprintTtlResultCodeExtendFootprintTtlSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
  • RestoreFootprintResultCodeRestoreFootprintSuccess
  • Malformed
  • ResourceLimitExceeded
  • InsufficientRefundableFee
| Sí | Consulta la [documentación](https://pkg.go.dev/github.com/stellar/go-stellar-sdk/xdr#OperationResultTr) de XDR para más detalles | | details_json | Registro que contiene detalles basados en el tipo de operación ejecutada. Cada operación devolverá sus propios detalles relevantes, con el resto de los detalles como nulos | json | | | | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx index b07276d0a0..7358086996 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/history-transactions.mdx @@ -54,7 +54,7 @@ description: "" | soroban_resources_read_bytes | Número de bytes leídos por la transacción Soroban | entero | | No | | | soroban_resources_write_bytes | Número de bytes escritos por la transacción Soroban | entero | | No | | | closed_at | Marca de tiempo en UTC cuando este ledger se cerró y se comprometió a la red. Se espera que los ledgers cierren aproximadamente cada 5 segundos | marca de tiempo | | Sí | Planeamos reparticionar la tabla por closed_at | -| transaction_result_code | El código de resultado detallado que explica por qué una transacción falló. Este código es útil solo para transacciones fallidas. La lista completa de valores de dominio se puede encontrar [aquí](https://pkg.go.dev/github.com/stellar/go/xdr#TransactionResultCode) | cadena |
  • TransactionResultCodeTxFeeBumpInnerSuccess
  • TransactionResultCodeTxSuccess
  • TransactionResultCodeTxFailed
  • TransactionResultCodeTxTooEarly
  • TransactionResultCodeTxTooLate
  • TransactionResultCodeTxMissingOperation
  • TransactionResultCodeTxBadSeq
  • TransactionResultCodeTxBadAuth
  • TransactionResultCodeTxInsufficientBalance
  • TransactionResultCodeTxNoAccount
  • TransactionResultCodeTxInsufficientFee
  • TransactionResultCodeTxBadAuthExtra
  • TransactionResultCodeTxInternalError
  • TransactionResultCodeTxNotSupported
  • TransactionResultCodeTxFeeBumpInnerFailed
  • TransactionResultCodeTxBadSponsorship
  • TransactionResultCodeTxBadMinSeqAgeOrGap
  • TransactionResultCodeTxMalformed
  • TransactionResultCodeTxSorobanInvalid
| Sí | | +| transaction_result_code | El código de resultado detallado que explica por qué una transacción falló. Este código es útil solo para transacciones fallidas. La lista completa de valores de dominio se puede encontrar [aquí](https://pkg.go.dev/github.com/stellar/go-stellar-sdk/xdr#TransactionResultCode) | cadena |
  • TransactionResultCodeTxFeeBumpInnerSuccess
  • TransactionResultCodeTxSuccess
  • TransactionResultCodeTxFailed
  • TransactionResultCodeTxTooEarly
  • TransactionResultCodeTxTooLate
  • TransactionResultCodeTxMissingOperation
  • TransactionResultCodeTxBadSeq
  • TransactionResultCodeTxBadAuth
  • TransactionResultCodeTxInsufficientBalance
  • TransactionResultCodeTxNoAccount
  • TransactionResultCodeTxInsufficientFee
  • TransactionResultCodeTxBadAuthExtra
  • TransactionResultCodeTxInternalError
  • TransactionResultCodeTxNotSupported
  • TransactionResultCodeTxFeeBumpInnerFailed
  • TransactionResultCodeTxBadSponsorship
  • TransactionResultCodeTxBadMinSeqAgeOrGap
  • TransactionResultCodeTxMalformed
  • TransactionResultCodeTxSorobanInvalid
| Sí | | | inclusion_fee_bid | La puja máxima que el remitente está dispuesto a pagar por la inclusión de la transacción. Esta tarifa se usa para priorizar las transacciones que se incluyen en el ledger. | entero | | No | | | inclusion_fee_charged | La tarifa cobrada para que la transacción sea incluida en el ledger. Esta es una tarifa fija para todo el ledger que comienza en un mínimo de 100 stroops. La tarifa aumenta según la demanda | entero | | No | | | resource_fee_refund | La cantidad de la tarifa de recurso reembolsada al remitente de la transacción. Las tarifas reembolsables se calculan a partir de renta, eventos y valores de retorno. Las tarifas reembolsables se cargan de la cuenta origen antes de que la transacción se ejecute y luego se reembolsan según el uso real. | entero | | No | | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx index 3b504db462..37a873bb6b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/data-catalog/data-dictionary/bronze/liquidity-pools.mdx @@ -19,7 +19,7 @@ description: "" | Nombre | Descripción | Tipo de Datos | Valores de Dominio | ¿Requerido? | Notas | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| liquidity_pool_id | Identificador único para un pool de liquidez. No puede haber pools duplicados para el mismo par de activos. Una vez creado un pool para el par de activos, no se puede crear otro. | string | | Sí | Hay una buena introducción sobre AMM [aquí](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools) | +| liquidity_pool_id | Identificador único para un pool de liquidez. No puede haber pools duplicados para el mismo par de activos. Una vez creado un pool para el par de activos, no se puede crear otro. | string | | Sí | Hay una buena introducción sobre AMMs [aquí](../../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx#liquidity-pools) | | type | El mecanismo que calcula el precio y la división de participaciones para el pool. Con el despliegue inicial del AMM, el único tipo de pool de liquidez permitido es un pool de producto constante | string | constant_product | Sí | Para más información sobre cálculos de precio y depósito, lee [Cap-38.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0038.md) | | fee | El número de puntos base cobrados como porcentaje del intercambio para completar la transacción. Las comisiones ganadas en todas las operaciones se reparten entre los accionistas del pool y se distribuyen como incentivo para mantener fondos en los pools | integer | 30 | Sí | Las comisiones se distribuyen inmediatamente a las cuentas a medida que se completa la transacción. No hay un calendario para la distribución de comisiones | | trustline_count | Número total de cuentas con trustlines autorizadas al pool. Para crear una trustline, una cuenta debe confiar en ambos activos base antes de confiar en un pool con el par de activos | integer | | Sí | Si el emisor de A o B revoca la autorización de la trustline, la cuenta se retirará automáticamente de todos los pools de liquidez que contengan ese activo y esas trustlines del pool serán eliminadas. | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/developer-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/developer-guide/README.mdx index 629fa1bc8b..d942e309ef 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/developer-guide/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/analytics/hubble/developer-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Guía del desarrollador sidebar_position: 15 +sidebar_key: guía-del-desarrollador-hubble --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/README.mdx index 467451df46..2de4d2300a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/README.mdx @@ -17,7 +17,7 @@ Horizon proporciona una API HTTP para datos en la red Stellar. Recoge y vuelve a Horizon se puede acceder a través de cURL, un navegador o uno de los [Stellar SDKs](../../../tools/sdks/README.mdx). Para reducir la complejidad de tu proyecto, te recomendamos usar un SDK en vez de hacer llamadas directas a la API. -Esta guía describe cómo administrar una instancia de producción de Horizon (consulta el [Blog de los desarrolladores](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) para algunos antecedentes sobre las mejoras de rendimiento y arquitectónicas de esta importante actualización de versión). Para información sobre el desarrollo en la base de código de Horizon, consulta la [Guía de Desarrollo](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). +Esta guía describe cómo administrar una instancia de producción de Horizon (consulta el [Blog de los desarrolladores](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) para algunos antecedentes sobre las mejoras de rendimiento y arquitectónicas de esta importante actualización de versión). Para obtener información sobre el desarrollo en el código base de Horizon, consulta la [Guía de Desarrollo](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). Antes de comenzar, vale la pena reiterar el sentimiento expresado en la documentación de [Core Node](../../../validators/README.mdx): **no respaldamos correr Horizon respaldado por una instancia de Stellar Core independiente**, y especialmente no por un Stellar Core _validante_. Estas son dos preocupaciones separadas, y desacoplarlas es importante tanto para la confiabilidad como para el rendimiento. Horizon en cambio gestiona su propia versión reducida de Stellar Core optimizada para su propio subconjunto de necesidades (nos referiremos a esto como una instancia de "Core cautivo"). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/README.mdx index bc4d06dc02..11d2baf146 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Guía de administración sidebar_position: 15 +sidebar_key: horizon-admin-guide --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/configuring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/configuring.mdx index abe9a65840..59b94007c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/configuring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/configuring.mdx @@ -3,8 +3,6 @@ title: Configurar sidebar_position: 30 --- -import { Alert } from "@site/src/components/Alert"; - ## Requisitos previos - Has identificado el método de [instalación](./installing.mdx) para el sistema host: @@ -108,26 +106,29 @@ Este parámetro de configuración es opcional, determina la ventana deslizante m El binario `stellar-horizon` busca variables de entorno del proceso para la configuración. Dependiendo de cómo se instaló Horizon, el método que realices para configurar el entorno de proceso variará: -- Bare-metal - - Sin gestor de paquetes: usa variables de entorno de o/s para pasar configuraciones. Hay muchas herramientas que puedes usar para gestionarlas, como [direnv](http://direnv.net/) o [dotenv](https://github.com/bkeepers/dotenv). - - [Gestor de paquetes](./installing.mdx#package-manager): el wrapper proporcionado `stellar-horizon-cmd` iniciará un nuevo proceso y creará variables de entorno en el proceso desde `/etc/default/stellar-horizon` y luego lanzará el 'stellar-horizon'. Para establecer configuraciones, edita el archivo en `/etc/default/stellar-horizon`. - - Este script invoca Horizon con el usuario `stellar`, así que asegúrate de que - los permisos para el usuario estén configurados adecuadamente. El directorio de trabajo actual - debe ser escribible para este usuario y el usuario debe poder - ejecutar los binarios `stellar-horizon` y `stellar-core`; etc. - -- Contenerizado - - Sin Helm: pasa todos los parámetros de configuración a la imagen de docker de Horizon como [variables de entorno de docker](https://docs.docker.com/engine/reference/commandline/run/#env). - - Helm: pasa todos los parámetros de configuración en el [comando de instalación de Helm](https://helm.sh/docs/helm/helm_install/) como un archivo de valores. +### Bare-metal + +- Sin gestor de paquetes: usa variables de entorno de o/s para pasar configuraciones. Hay muchas herramientas que puedes usar para gestionarlas, como [direnv](http://direnv.net/) o [dotenv](https://github.com/bkeepers/dotenv). +- [Gestor de paquetes](./installing.mdx#package-manager): el wrapper proporcionado `stellar-horizon-cmd` iniciará un nuevo proceso y creará variables de entorno en el proceso desde `/etc/default/stellar-horizon` y luego lanzará el 'stellar-horizon'. Para establecer configuraciones, edita el archivo en `/etc/default/stellar-horizon`. + + :::info + + Este script invoca Horizon con el usuario `stellar`, así que asegúrate de que los permisos para el usuario estén configurados en consecuencia. El directorio de trabajo actual debe ser escribible para este usuario y el usuario debe poder ejecutar los binarios `stellar-horizon` y `stellar-core`; etc. + + ::: + +### En contenedores + +- No Helm: pasa todos los parámetros de configuración a la imagen docker de horizon como [variables de entorno de docker](https://docs.docker.com/engine/reference/commandline/run/#env). +- Helm: pasa todos los parámetros de configuración en el [comando de instalación de Helm](https://helm.sh/docs/helm/helm_install/) mediante un archivo de valores. -## Inicializar Base de Datos de Horizon +## Inicializar la base de datos de Horizon -Antes de ejecutar el servidor de Horizon por primera vez, debes inicializar la base de datos de Horizon. Esta base de datos se utilizará para toda la información producida por Horizon, más notablemente información histórica sobre transacciones que han ocurrido en la red Stellar. +Antes de ejecutar el servidor de Horizon por primera vez, debes inicializar la base de datos de Horizon. Esta base de datos se usará para toda la información que genera Horizon, especialmente la información histórica sobre las transacciones que han ocurrido en la red Stellar. -Para preparar una base de datos para el uso de Horizon, primero asegúrate de que esté en blanco. Es más fácil crear una nueva base de datos en tu servidor PostgreSQL específicamente para el uso de Horizon. Recomendamos crear un nuevo usuario (rol) en postgres dedicado a la base de datos de Horizon y asignar ese usuario (rol) como el propietario de esta base de datos. +Para preparar una base de datos para el uso de Horizon, primero asegúrate de que esté vacía. Lo más sencillo es crear una base de datos nueva en tu servidor PostgreSQL específicamente para el uso de Horizon. Recomendamos crear un nuevo usuario(rol) en postgres dedicado a la base de datos de Horizon y asignar ese usuario(rol) como propietario de esta base de datos. -Para ilustrar un ejemplo usando `psql`, primero inicia sesión en el servidor de base de datos usando la herramienta de línea de comandos `psql` como superusuario, y luego crea el nuevo usuario (rol) y base de datos para Horizon: +Para ilustrar un ejemplo usando `psql`, primero inicia sesión en el servidor de bases de datos con la herramienta de línea de comandos `psql` como superusuario, y luego crea el nuevo usuario(rol) y la base de datos para Horizon: ``` postgres=# @@ -139,31 +140,31 @@ CREATE DATABASE postgres=# ``` -Además, puedes establecer una contraseña en tu nuevo usuario de postgres `horizon` con `ALTER USER`. +Además, puedes establecer una contraseña para tu nuevo usuario postgres `horizon` con `ALTER USER`. -Una vez completado, puedes componer el valor completo del parámetro de configuración para el acceso a la base de datos `DATABASE_URL="dbname=horizon user=horizon password= host="`. +Una vez completado, puedes componer el valor completo del parámetro de configuración para el acceso a db `DATABASE_URL="dbname=horizon user=horizon password= host="`. -A continuación, ejecuta el binario de Horizon para instalar el esquema en la base de datos vacía desde la línea de comandos. En este ejemplo, supongamos que el shell actual no tiene `DATABASE_URL` en el entorno aún, así que expórtalo primero en el shell: +A continuación, ejecuta el binario de Horizon para instalar el esquema en la base de datos vacía desde la línea de comandos. En este ejemplo, supongamos que la shell actual no tiene `DATABASE_URL` en el entorno aún, así que primero asígnalo a la shell: ``` $ export DATABASE_URL="dbname=horizon user=horizon password= host=" $ stellar-horizon db init ``` -### Configuraciones Opcionales de Postgres +### Configuraciones opcionales de Postgres -Basado en observaciones de rendimiento a lo largo del tiempo, recomendamos configuraciones adicionales de Postgres (postgresql.conf), pero estas no son requeridas: +Basándonos en observaciones de rendimiento a lo largo del tiempo, recomendamos configuraciones adicionales para Postgres (postgresql.conf), aunque no son obligatorias: -- Establece `random_page_cost=1` si estás usando almacenamiento SSD. Con esta configuración, el Planificador de Consultas hará un mejor uso de los índices, especialmente para consultas `JOIN`. Hemos notado una enorme mejora en la velocidad de algunas consultas con esta configuración. +- Establece `random_page_cost=1` si usas almacenamiento SSD. Con esta configuración, el Planificador de Consultas hará un mejor uso de los índices, especialmente para consultas `JOIN`. Hemos notado una gran mejora en la velocidad de algunas consultas con esta configuración. -\_ Para mejorar la disponibilidad de los servidores de ingestión, api y envío de transacciones, se recomienda establecer los siguientes valores: +\_ Para mejorar la disponibilidad de los servidores de ingestión, api y envío de transacciones se recomienda establecer los siguientes valores: - `tcp_keepalives_idle`: 10 segundos - `tcp_keepalives_interval`: 1 segundo - `tcp_keepalives_count`: 5 -Con la configuración anterior, si no hay consultas de un cliente dado durante 10 segundos, PostgreSQL comenzará a enviar paquetes TCP keepalive. Se reintentará 5 veces cada segundo. Si no hay respuesta del cliente después de ese tiempo, se cerrará la conexión. +Con la configuración anterior, si no hay consultas de un cliente dado durante 10 segundos, Postgres debe comenzar a enviar paquetes TCP keepalive. Intentará 5 veces cada segundo. Si no hay respuesta del cliente después de ese tiempo, se cerrará la conexión. -## Próximo Paso +## Siguiente paso -¡Después de completar la configuración, ahora estás listo para proceder a [Ejecutar Horizon](./running.mdx)! +Después de completar la configuración, ahora estás listo para proceder a [Ejecutar Horizon](./running.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion-filtering.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion-filtering.mdx index ac6859386e..176d33d648 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion-filtering.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion-filtering.mdx @@ -41,10 +41,10 @@ El filtrado está habilitado por defecto sin ninguna regla de filtrado definida. - habilitar el puerto de administración de Horizon con el parámetro de configuración ambiental `ADMIN_PORT=XXXXX`, esto te permitirá acceder al puerto. - definir listas blancas de filtrado. enviar solicitudes a la API HTTP de Admin para ver y actualizar las reglas de filtrado: - Consulta la [Documentación de la API Administrativa de Horizon](https://github.com/stellar/go/blob/master/services/horizon/internal/httpx/static/admin_oapi.yml) que también se publica en instancias en ejecución de Horizon como un documento Open API 3.0 en el puerto administrativo cuando está habilitado en `http://localhost:/`. Puedes pegar el contenido de esa URL en cualquier herramienta OAPI como [Swagger](https://editor.swagger.io/) que generará un explorador visual de los puntos finales de la API. En el editor de Swagger también puedes cargar directamente la publicación de Horizon admin.oapi.yml como una URL, elige `Archivo->Importar URL`: + Consulta la [Documentación del API de administración de Horizon](https://github.com/stellar/stellar-horizon/blob/main/internal/httpx/static/admin_oapi.yml) que también está publicada en las instancias de Horizon en ejecución como documento Open API 3.0 en el Puerto de Administración cuando está habilitado en `http://localhost:/`. Puedes pegar el contenido de esa URL en cualquier herramienta OAPI como [Swagger](https://editor.swagger.io/) que generará un explorador visual de los puntos finales de la API. En el editor de Swagger también puedes cargar directamente la publicación de Horizon admin.oapi.yml como una URL, elige `Archivo->Importar URL`: ``` - https://raw.githubusercontent.com/stellar/go/master/services/horizon/internal/httpx/static/admin_oapi.yml + https://raw.githubusercontent.com/stellar/stellar-horizon/main/internal/httpx/static/admin_oapi.yml ``` Sigue los detalles y ejemplos de las cargas útiles de solicitud/respuesta para leer y actualizar las reglas de filtrado para estos puntos finales: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion.mdx index 62bf673486..6d6b8ea0f1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/ingestion.mdx @@ -3,8 +3,6 @@ title: Ingestión sidebar_position: 45 --- -import { CodeExample } from "@site/src/components/CodeExample"; - La API de Horizon proporciona la mayor parte de su utilidad a través de datos ingeridos, y tu servidor Horizon puede configurarse para escuchar e ingresar los resultados de transacciones de la red Stellar. La ingestion permite el acceso a la API tanto al estado actual (por ejemplo, el saldo de alguien) como al estado histórico (por ejemplo, el historial de transacciones de alguien). ## Tipos de Ingestión diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/installing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/installing.mdx index 33c92619c2..4378faf8fb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/installing.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/installing.mdx @@ -3,21 +3,19 @@ title: Instalando sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Para instalar Horizon en entornos de producción o no de desarrollo, recomendamos lo siguiente según la infraestructura de destino: ### Bare-Metal - Si el host es Debian Linux, instala los binarios precompilados [desde los repositorios](#package-manager) utilizando un gestor de paquetes. -- Para cualquier otro host, descarga [binarios de versiones precompiladas](#prebuilt-releases) de Stellar Horizon y Core para la arquitectura de objetivo del host y sistema operativo o [compila desde la fuente](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md#building-horizon). +- Para cualquier otro host, descarga los [binarios precompilados de la versión](#prebuilt-releases) de Stellar Horizon y Core para la arquitectura del host y sistema operativo objetivo o [compílalos desde el código fuente](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). ### Containerizado - No Orquestado: si el entorno de despliegue objetivo no incluye un orquestador de contenedores como Kubernetes, esto significa que tienes la intención de ejecutar la imagen de versión de Horizon desde [dockerhub.com/stellar/stellar-horizon](https://hub.docker.com/r/stellar/stellar-horizon) como un contenedor directamente con el daemon de Docker en el host. Elige la etiqueta de la imagen de Horizon para la versión específica y luego extrae la imagen usando `docker pull stellar/stellar-horizon:` para obtenerla localmente en el host. - Orquestado: cuando el entorno objetivo tiene orquestación de contenedores, como un clúster de Kubernetes, recomendamos usar el [Chart de Helm de Horizon](https://github.com/stellar/helm-charts/tree/main/charts/horizon) para gestionar el ciclo de vida de instalación y despliegue de la imagen de Horizon como contenedor(es) en el clúster. -Para instalar Horizon en entornos de desarrollo, consulta el [README de Horizon](https://github.com/stellar/go/blob/master/services/horizon/README.md#try-it-out) del repositorio del código fuente para las opciones disponibles. +Para instalar Horizon en entornos de desarrollo, consulta el [README de Horizon](https://github.com/stellar/stellar-horizon) en el repositorio del código fuente para conocer las opciones disponibles. ### Notas sobre la Instalación @@ -38,7 +36,7 @@ sudo apt install stellar-horizon stellar-core #### Versiones Precompiladas -Consulta la lista de [versiones de Horizon](https://github.com/stellar/go/releases) y [versiones de Core](https://github.com/stellar/stellar-core/releases). Copia los binarios al PATH del host. +Consulta la lista de [versiones de Horizon](https://github.com/stellar/stellar-horizon/releases) y [versiones de Core](https://github.com/stellar/stellar-core/releases). Copia los binarios al PATH del host. #### Verificar Instalaciones Bare-Metal diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/monitoring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/monitoring.mdx index ef7cb5f16f..85ba30cdec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/monitoring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/monitoring.mdx @@ -3,8 +3,6 @@ title: Monitoreo sidebar_position: 60 --- -import { CodeExample } from "@site/src/components/CodeExample"; - ## Métricas Las métricas se emiten desde Horizon a través de HTTP en [el formato de exposición de texto basado en de facto](https://github.com/prometheus/docs/blob/main/content/docs/instrumenting/exposition_formats.md#text-based-format). Las métricas se publican en la ruta _privada_ `/metrics` del puerto de administración de Horizon, que es un servicio opcional que debe ser iniciado y se vinculará por el proceso de Horizon en la red de bucle local de la máquina anfitriona (localhost o 127.0.0.1). Para habilitar el puerto de administración, añade el parámetro de configuración del entorno `ADMIN_PORT=XXXXX`, el endpoint de métricas será accesible en la máquina anfitriona como `localhost:/metrics`. Puedes verificar esto apuntando cualquier navegador que pueda acceder a esta dirección, mostrará todas las claves de métricas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/overview.mdx index 571930363a..ab5befc0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/overview.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 Horizon es un componente central de la plataforma Stellar: proporciona una API HTTP para los datos en la red Stellar. Ingiere y vuelve a servir los datos producidos por la red Stellar en una forma que es más fácil de consumir por la aplicación promedio en comparación con las representaciones de datos orientadas al rendimiento utilizadas por Stellar Core. -Esta guía describe cómo administrar una instancia de Horizon en producción (consulta el [Blog de Desarrolladores](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) para obtener información de fondo sobre las mejoras de rendimiento y arquitectónicas de este importante aumento de versión). Para información sobre el desarrollo en la base de código de Horizon, consulta la [Guía de Desarrollo](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). +Esta guía describe cómo administrar una instancia de Horizon en producción (consulta el [Blog de Desarrolladores](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) para obtener información de fondo sobre las mejoras de rendimiento y arquitectónicas de este importante aumento de versión). Para obtener información sobre cómo desarrollar en la base de código de Horizon, consulta la [Guía de Desarrollo](https://github.com/stellar/stellar-horizon/blob/main/internal/docs/DEVELOPING.md). Antes de comenzar, vale la pena reiterar el sentimiento expuesto en la guía [Ejecutar un Nodo Core](../../../../validators/README.mdx): **no recomendamos ejecutar Horizon respaldado por una instancia independiente de Stellar Core**, y especialmente no por un Stellar Core _validador_. Estas son dos preocupaciones separadas, y desacoplarlas es importante tanto para la confiabilidad como para el rendimiento. Horizon, en cambio, gestiona su propia versión reducida de Stellar Core optimizada para su propio subconjunto de necesidades (nos referiremos a esto como una instancia de "Captive Core"). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/running.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/running.mdx index ec3fbf896a..8350c1c7c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/running.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/running.mdx @@ -3,8 +3,6 @@ title: Ejecutando sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Una vez que hayas [establecido la base de datos de Horizon](./configuring.mdx#initialize-horizon-database) y hayas [identificado la configuración de tiempo de ejecución de Horizon por host](./configuring.mdx#prerequisites), estás listo para ejecutar Horizon. ## Instalación en bare-metal diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/scaling.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/scaling.mdx index b44b477ca5..1c1a3a7bcf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/scaling.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/scaling.mdx @@ -42,7 +42,7 @@ Horizon te permite configurar de manera independiente los diferentes [roles](./c - Cada "rol" que juega Horizon puede escalarse de forma independiente - Las instancias de API son significativamente más ligeras desde la perspectiva de los requisitos de hardware, ya que no necesitan ejecutar el núcleo cautivo - Las instancias de API pueden escalarse horizontalmente o escalarse dinámicamente, en función de las necesidades específicas de tus usuarios finales -- La ingestión y su rendimiento están aislados de la actividad de la API, por lo que los picos en la actividad del usuario no pueden degradarlo y causar un retraso en la ingestión. La salud de la ingestión es crítica, ya que las degradaciones en el rendimiento pueden resultar en retrasos con respecto al último ledger cerrado, dejando a tus usuarios finales sin conocer el estado actual de la red, y sin poder enviar nuevas transacciones con éxito +- La ingestión y su rendimiento están aislados de la actividad de la API, por lo que los picos en la actividad del usuario no pueden degradarla ni causar retrasos en la ingestión. La salud de la ingestión es crítica, ya que las degradaciones en el rendimiento pueden resultar en retrasos con respecto al último ledger cerrado, dejando a tus usuarios finales sin conocer el estado actual de la red, y sin poder enviar nuevas transacciones con éxito El rol de la API de Horizon requiere solo permisos de solo lectura a una base de datos para todas las acciones que realiza. Sin embargo, las instancias de API necesitarán delegar todas las solicitudes de envío de transacciones a una instancia que ejecute el núcleo cautivo. Se podrían agregar más réplicas de base de datos si es necesario para admitir más solicitudes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/upgrading.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/upgrading.mdx index 8a6e4f51e5..a326e470eb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/upgrading.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/admin-guide/upgrading.mdx @@ -3,9 +3,6 @@ title: Actualizar sidebar_position: 80 --- -import { Alert } from "@site/src/components/Alert"; -import { CodeExample } from "@site/src/components/CodeExample"; - Aquí describiremos los pasos recomendados para actualizar una instalación de Horizon 2.x. ### Requisitos previos @@ -43,7 +40,7 @@ Aquí describiremos los pasos recomendados para actualizar una instalación de H ### Determina la versión objetivo para la actualización -Ahora que sabes tu versión actual de Horizon, visita [Horizon Releases](https://github.com/stellar/go/releases) y elige la próxima versión mayor respecto a tu versión actual para actualizar. Sigue los pasos [recomendados por GitHub para comparar versiones](https://docs.github.com/en/repositories/releasing-projects-on-github/comparing-releases), haz clic en el menú desplegable `Comparar` de la versión elegida, y luego selecciona tu versión actual y GH mostrará las diferencias entre versiones, selecciona la pestaña `Archivos cambiados`, y ve a `services/horizon/CHANGELOG.md`, destacará las nuevas notas de publicación sobre los cambios que han ocurrido entre tu versión actual y la nueva versión seleccionada. Revisa esto y busca cualquier sección de `Cambios Críticos`, `Reconstrucción de Estado` y `Migración de Esquema de DB` para considerarlo, ya que estas últimas también mencionarán el tiempo esperado para que se aplique la reconstrucción del estado o la migración de la base de datos respectivamente. +Ahora que sabes la versión actual de Horizon que tienes, visita [Horizon Releases](https://github.com/stellar/stellar-horizon/releases) y elige la siguiente versión mayor a la que tienes para actualizar. Sigue los pasos [recomendados por GitHub para comparar versiones](https://docs.github.com/en/repositories/releasing-projects-on-github/comparing-releases), haz clic en el menú desplegable `Comparar` de la versión elegida, y luego selecciona tu versión actual y GH mostrará las diferencias entre versiones, selecciona la pestaña `Archivos cambiados`, y ve a `services/horizon/CHANGELOG.md`, destacará las nuevas notas de publicación sobre los cambios que han ocurrido entre tu versión actual y la nueva versión seleccionada. Revisa esto y busca cualquier sección de `Cambios Críticos`, `Reconstrucción de Estado` y `Migración de Esquema de DB` para considerarlo, ya que estas últimas también mencionarán el tiempo esperado para que se aplique la reconstrucción del estado o la migración de la base de datos respectivamente. ### Instalar la nueva versión diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/README.mdx index eb80c8e9a5..aae7952326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/README.mdx @@ -1,6 +1,7 @@ --- title: Referencia de API sidebar_position: 20 +sidebar_key: horizon-api-reference --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx index 063e7b5c30..962878af1c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/README.mdx @@ -3,8 +3,6 @@ title: Estadísticas de tarifas sidebar_position: 50 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Las estadísticas de tarifas se utilizan para predecir qué tarifa establecer para una transacción antes de enviarla a la red. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx index 86d1ec3903..81c2e971b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/fee-stats/object.mdx @@ -3,9 +3,6 @@ title: El objeto de estadísticas de tarifas sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve estadísticas de tarifas, utiliza el siguiente formato. Nota: El `fee_charged` representa la tarifa real pagada por la transacción, mientras que `max_fee` representa la oferta máxima que el creador de la transacción estaba dispuesto a pagar por la transacción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/README.mdx index 17612cf013..1acb436039 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/README.mdx @@ -3,8 +3,6 @@ title: Ordenar Libros sidebar_position: 10 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Un libro de órdenes es una colección de ofertas para un par específico de activos. El [último ledger](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/object.mdx index 936f1c5ebe..519f0f32f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/order-books/object.mdx @@ -3,9 +3,6 @@ title: El Objeto del Libro de Órdenes sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre un libro de órdenes, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/README.mdx index 4d5245c13e..1f7a5e5d7d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/README.mdx @@ -3,8 +3,6 @@ title: Rutas sidebar_position: 20 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Las rutas proporcionan información sobre pagos de ruta potenciales. Una ruta se puede usar para completar los campos necesarios para una operación de pago de ruta. El [ledger más reciente](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/object.mdx index f7ffa61160..0422d7129d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/paths/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Ruta sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre una ruta, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx index f13c684938..33f0701652 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/README.mdx @@ -3,8 +3,6 @@ title: Agregaciones de Comercio sidebar_position: 40 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Una agregación de comercio representa estadísticas agregadas sobre un par de activos (base y contrapartida) para un período de tiempo específico. Las agregaciones de comercio son útiles para los desarrolladores de clientes de comercio y proporcionan datos históricos de comercio. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx index ce500ce74f..83e3f2fa80 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/aggregations/trade-aggregations/object.mdx @@ -3,9 +3,6 @@ title: El objeto de agregación de operaciones sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre una agregación de operaciones, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/error-handling.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/error-handling.mdx index 656929eab3..d4f41bddfb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/error-handling.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/error-handling.mdx @@ -2,8 +2,6 @@ title: Manejo de Errores --- -import { CodeExample } from "@site/src/components/CodeExample"; - Es importante anticipar errores que tus usuarios pueden encontrar mientras desarrollas en Stellar. En muchos tutoriales a lo largo de nuestra documentación para desarrolladores, omitimos el código de manejo de errores para centrarnos en el ejemplo. En esta sección, haremos lo contrario y hablaremos específicamente sobre los errores. Al final de esta sección, deberías ser capaz de categorizar errores y entender la mejor manera de manejarlos en tu aplicación. Muchísimas acciones interactúan con la red Stellar a través de la API de Horizon, y estas acciones posibles se dividen en dos categorías principales: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx index e917f4f28c..f7fe6d8eec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/before-history.mdx @@ -3,9 +3,6 @@ title: Antes de la historia sidebar_position: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Un servidor Horizon puede configurarse para conservar solo una parte del historial de la red estelar almacenado en su base de datos. El error `before_history` devuelve un [código de error `410`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410) y ocurre cuando un cliente solicita una pieza de información (como una página de transacciones o una sola operación) que el servidor puede identificar positivamente como fuera del rango de historial grabado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx index d867c9d33d..a8d012ec7a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/stale-history.mdx @@ -3,9 +3,6 @@ title: Historia Obsoleta sidebar_position: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Un servidor Horizon puede estar configurado para rechazar solicitudes históricas cuando se sabe que la historia está más desactualizada que el umbral configurado. En tales casos, ocurre el error `stale_history` y devuelve un [código de error `503`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503). Para resolver este error (si eres el operador de la instancia de Horizon), asegúrate de que el sistema de ingestión esté funcionando correctamente e importando nuevos ledgers. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx index 25039b002f..eb6415309b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/timeout.mdx @@ -3,9 +3,6 @@ title: Tiempo de espera sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - El error `timeout` devuelve un [código de error `504`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/504) y ocurre cuando: - Horizon no ha recibido una confirmación del servidor Stellar Core de que la transacción que estás intentando enviar a la red fue incluida en un ledger de manera oportuna, o diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx index f9131ebda5..60b788f28d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-failed.mdx @@ -3,9 +3,6 @@ title: Transacción fallida sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - El error `transaction_failed` devuelve un [código de error `400`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) y ocurre cuando un cliente envía una transacción que estaba bien formada pero no fue incluida en el ledger debido a otra falla. Por ejemplo, una transacción puede fallar si: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx index 2a34a7c826..abf8f008e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/horizon-specific/transaction-malformed.mdx @@ -3,9 +3,6 @@ title: Transacción Malformada sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - El error `transaction_malformed` devuelve un [código de error `400`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) y ocurre cuando un cliente envía una transacción malformada. Hay muchas maneras en las que una transacción podría estar malformada, incluyendo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx index 44d26af549..b1fc8edd45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/http-status-codes/standard.mdx @@ -3,9 +3,6 @@ title: Códigos de Estado Estándar sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estas respuestas son códigos de protocolo de Internet que describen problemas básicos con una transacción enviada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/response.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/response.mdx index cbfee4b61b..e03543eea9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/response.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/response.mdx @@ -3,9 +3,6 @@ title: Respuesta de error sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando ocurre un error, Horizon responde con un documento JSON que contiene los atributos a continuación. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx index 8503702e89..495ed62fab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Fusión de Cuenta sidebar_position: 110 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o error (400) específicos para la operación de `Fusión de Cuenta`. Aprende más sobre la [operación de `Fusión de Cuenta`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#account-merge). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx index 86761b4b04..47bcad79cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx @@ -3,9 +3,6 @@ title: Permitir códigos de resultado de confianza sidebar_position: 100 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos para la operación `Permitir confianza`. Obtén más información sobre la operación [`Permitir confianza`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#allow-trust). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx index bc6b1d1b8a..79ef67b6de 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx @@ -3,9 +3,6 @@ title: Códigos de resultado de aumento de secuencia sidebar_position: 130 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos de la operación `Aumentar Secuencia`. Obtén más información sobre la operación [`Aumentar Secuencia`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#bump-sequence). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx index bdedb6bcf4..9eebe9c364 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Cambio de Confianza sidebar_position: 90 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos de la operación de `Cambio de Confianza`. Aprende más sobre la [operación de `Cambio de Confianza`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#change-trust) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx index e48ae890eb..98006f7342 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de la Cuenta sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos para la operación `Crear Cuenta`, que a menudo falla porque la nueva cuenta no cumple con la reserva mínima. Aprende más sobre la operación [`Crear Cuenta`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#create-account). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx index d691a08725..5193d7b2ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx @@ -3,9 +3,6 @@ title: Crear Códigos de Resultado de Oferta de Venta Pasiva sidebar_position: 70 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos de la operación `Crear Oferta de Venta Pasiva`. Conoce más sobre la [operación `Crear Oferta de Venta Pasiva`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#create-passive-sell-offer). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx index 37b2a97264..4552b9c165 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx @@ -3,9 +3,6 @@ title: Gestionar los códigos de resultado de la oferta de compra sidebar_position: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos para la operación de `Gestionar oferta de compra`. Obtén más información sobre la [operación `Gestionar oferta de compra`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-buy-offer). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx index 51196ecf46..208f9c9744 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx @@ -3,9 +3,6 @@ title: Administrar Códigos de Resultado de Datos sidebar_position: 120 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos para la operación de `Administrar Datos`. Aprende más sobre la operación de [`Administrar Datos`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-data). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx index 3e9318fa0c..7e9f85e8be 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de la Oferta de Venta Administrada sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fallo (400) específicos de la operación `Administrar Oferta de Venta`. Aprende más sobre la operación [`Administrar Oferta de Venta`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-sell-offer). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx index cb2c380afb..cf8962e055 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Recepción Estricta de Pago por Ruta sidebar_position: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos de la operación `Recepción Estricta de Pago por Ruta`. Aprender más sobre la operación [`Recepción Estricta de Pago por Ruta`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#path-payment-strict-receive). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx index fa8fa4afa0..563c62a451 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Envío Estricto de Pago por Ruta sidebar_position: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fallo (400) específicos de la operación `Envío Estricto de Pago por Ruta`. Conoce más sobre la operación [`Envío Estricto de Pago por Ruta`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#path-payment-strict-send). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx index 6d0c6fb8b2..ea2800f6df 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Pago sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fracaso (400) específicos de la operación `Payment`, que a menudo falla porque la cuenta receptora no confía en el emisor del activo que se envía. Obtén más información sobre la operación [`Payment`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#payment). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx index fd16abcbb8..74b441ca63 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado para Establecer Opciones sidebar_position: 80 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son códigos de resultado que comunican éxito (200) o fallo (400) específicos para la operación `Establecer Opciones`. Aprende más sobre la [operación `Establecer Opciones`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#set-options). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operations.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operations.mdx index a75c4506aa..0856c4a6d3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operations.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/operations.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de la Operación sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son los Códigos de Resultado que comunican éxito (200) o fracaso (400) a nivel de operación: sin cuenta de origen, demasiadas subentradas, etc. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx index e34b4c632b..468966e6f0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/errors/result-codes/transactions.mdx @@ -3,9 +3,6 @@ title: Códigos de Resultado de Transacción sidebar_position: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Estos son los Códigos de Resultado que comunican éxito (200) o fracaso (400) a nivel de transacción: números de secuencia erróneos, saldos insuficientes, tarifas insuficientes, etc. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/README.mdx index 5885e33caa..f0de831509 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/README.mdx @@ -3,8 +3,6 @@ title: Cuentas order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Los usuarios interactúan con la red Stellar a través de cuentas. Todo lo demás en el ledger—activos, ofertas, líneas de confianza, etc.—pertenece a las cuentas, y las cuentas deben autorizar todos los cambios en el ledger a través de transacciones firmadas. El [ledger más reciente](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/object.mdx index 4f14dd61d5..4ab2ccf4ff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/accounts/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Cuenta order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre una cuenta, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/README.mdx index 9670144550..dcb9db0a84 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/README.mdx @@ -3,8 +3,6 @@ title: Activos order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Los activos son representaciones de valor emitidas en la red Stellar. Un activo consiste en un tipo, un código y un emisor. El [último ledger](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/object.mdx index e8dad2e184..14dcf89c96 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/assets/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Activo order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre un activo, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx index 2438ae004d..3d5454b1d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/README.mdx @@ -3,8 +3,6 @@ title: Saldos reclamables order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Un saldo reclamable representa la transferencia de propiedad de una cierta cantidad de un activo. Los saldos reclamables proporcionan un mecanismo para configurar un pago que puede ser reclamado en el futuro. Esto te permite hacer pagos a cuentas que actualmente no pueden aceptarlos. El [último ledger](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx index 5b8ead377d..9aee952804 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/claimablebalances/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Saldo Reclamable order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre un saldo reclamable, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/README.mdx index 5e5e4ececd..799ef93e17 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/README.mdx @@ -3,8 +3,6 @@ title: Efectos order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Los efectos representan cambios específicos que ocurren en el ledger como resultado de operaciones exitosas, pero no se reflejan necesariamente directamente en el ledger o en la historia, como lo hacen las transacciones y operaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/types.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/types.mdx index f5807b08b4..7738497fa2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/types.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/effects/types.mdx @@ -3,9 +3,6 @@ title: Tipos de Efecto order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Hay ocho grupos de tipos de efecto. Cada tipo de efecto tiene su propio conjunto de atributos. ### Efectos de Cuenta diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/README.mdx index acc8fc895a..a3524133e6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/README.mdx @@ -3,8 +3,6 @@ title: Libros de contabilidad order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Cada libro de contabilidad almacena el estado de la red en un momento dado y contiene todos los cambios: transacciones, operaciones, efectos, etc. - a ese estado. Aprende más sobre los [libros de contabilidad](../../../../../../learn/glossary.mdx#ledger). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/object.mdx index 04c370bebc..cfe0d7e442 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/ledgers/object.mdx @@ -3,9 +3,6 @@ title: El objeto Ledger order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre un ledger, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx index c770966ff9..fd85de0f31 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/liquiditypools/README.mdx @@ -3,8 +3,6 @@ title: Fondos de Liquidez order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Los Fondos de Liquidez proporcionan una forma simple y no interactiva de intercambiar grandes cantidades de capital y permiten altos volúmenes de negociación. El [ledger más reciente](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/README.mdx index fa5c77c1cd..c32ffb058b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/README.mdx @@ -3,8 +3,6 @@ title: Ofertas order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Las ofertas son declaraciones sobre cuánto de un activo una cuenta desea comprar o vender. El [último ledger](../../structure/consistency.mdx) conocido por Horizon se incluye como un encabezado HTTP en la respuesta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/object.mdx index bff4d3e35d..a0af9dbaf8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/offers/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Oferta order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre una oferta, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/README.mdx index 540f12de2d..900bfee5f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/README.mdx @@ -3,8 +3,6 @@ title: Operaciones order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Las operaciones son objetos que representan un cambio deseado en el ledger: pagos, ofertas para intercambiar divisas, cambios realizados en las opciones de la cuenta, etc. Las operaciones se envían a la red Stellar agrupadas en una Transacción. Cada una de las operaciones de Stellar tiene un objeto de operación único. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/README.mdx index ed23f484f5..3e6d9eec47 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/README.mdx @@ -3,9 +3,6 @@ title: El Objeto de Operación order: 0 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cada una de las operaciones de Stellar tiene formas de respuesta únicas. A continuación se presentan los atributos que son comunes en los objetos de operación individuales. Consulta los [errores genéricos de Operación](../../../errors/result-codes/operations.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx index 6fbc3279a0..7d862db755 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/account-merge.mdx @@ -3,9 +3,6 @@ title: Objeto de Fusión de Cuenta order: 110 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Elimina la cuenta origen del Stellar y transfiere los lumens de la cuenta origen a otra cuenta. Consulta los [errores de `Fusión de Cuenta`](../../../errors/result-codes/operation-specific/account-merge.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx index d4bb208733..f8ee82c848 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/allow-trust.mdx @@ -3,9 +3,6 @@ title: Permitir Objeto de Confianza order: 100 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Actualiza el indicador “autorizado” de una línea de confianza existente. Esto debe ser llamado por el emisor del activo. Consulta los [errores de `Permitir Confianza`](../../../errors/result-codes/operation-specific/allow-trust.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx index 6d95af71df..b75e3c1ea3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/begin-sponsoring-future-reserves.mdx @@ -3,9 +3,6 @@ title: Comenzar a patrocinar reservas futuras order: 160 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Iniciar un patrocinio. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx index 1f2b81d090..750e211bad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/bump-sequence.mdx @@ -3,9 +3,6 @@ title: Incrementar objeto de secuencia order: 130 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Incrementa el número de secuencia de la cuenta de origen, permitiéndole invalidar cualquier transacción con un número de secuencia menor. Consulta los [`errores de Incrementar Secuencia`](../../../errors/result-codes/operation-specific/bump-sequence.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx index 175738a4e5..24e31910df 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/buy-offer.mdx @@ -3,9 +3,6 @@ title: Gestionar objeto de oferta de compra order: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea, actualiza o elimina una oferta de compra para intercambiar activos. Una oferta de compra especifica una cierta cantidad del activo comprado que debe ser vendida a cambio de la cantidad mínima del activo vendido. Consulta los [`errores de Gestionar Oferta de Compra`](../../../errors/result-codes/operation-specific/manage-buy-offer.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx index 7bfbc9ccf4..c9002b51c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/change-trust.mdx @@ -3,9 +3,6 @@ title: Cambiar Objeto de Confianza order: 90 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea, actualiza o elimina una línea de confianza de la cuenta de origen a un activo emitido de otra cuenta. Consulta los [`errores de Cambiar Confianza`](../../../errors/result-codes/operation-specific/change-trust.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx index 2de9578a66..fd74329428 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/claim-claimable-balance.mdx @@ -3,9 +3,6 @@ title: Reclamar saldo reclamable order: 150 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Reclama un saldo reclamable. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx index 1a01fecc07..4c57f492d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-account.mdx @@ -3,9 +3,6 @@ title: Crear objeto de cuenta order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea y financia una nueva cuenta con el saldo inicial especificado. Consulta los [`errores de crear cuentas`](../../../errors/result-codes/operation-specific/create-account.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx index 4c83e5f718..252b74d5df 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/create-claimable-balance.mdx @@ -3,9 +3,6 @@ title: Crear saldo reclamable order: 140 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea un nuevo saldo reclamable. @@ -42,10 +39,10 @@ Crea un nuevo saldo reclamable. - El valor también es un predicado. Esta cláusula de la condición se cumple si el valor _no_ se cumple. - absBefore - cadena (opcional) - - Una cadena formateada en ISO 8601 personalizada que representa una fecha límite para cuando se puede reclamar el saldo reclamable. Si el saldo es reclamado antes de la fecha, entonces esta cláusula de la condición se cumple. El formato de esta cadena de fecha es una extensión personalizada sobre el formato ISO 8601. Permite que los años estén fuera del rango 0000-9999. Las fechas se derivan de un valor de época Unix en el rango de un entero de 64 bits con signo. Esto significa que la fecha expresa un rango de calendario mucho más amplio de 292277026596 años en el futuro y -292471206707 años en el pasado. Este formato de extensión personalizada agregará un prefijo `'+'` a los valores que superen el año 9999 en el futuro y para los años que son anteriores al año 0 (A.C según el calendario gregoriano) se agregará un prefijo `'-'`.\ - Aquí hay ejemplos de valores de cadenas de fecha que son posibles:\ - `'2022-02-10T15:30:22Z'`\ - `'+39121901036-03-29T15:30:22Z'`\ + - Una cadena formateada en ISO 8601 personalizada que representa una fecha límite para cuando se puede reclamar el saldo reclamable. Si el saldo es reclamado antes de la fecha, entonces esta cláusula de la condición se cumple. El formato de esta cadena de fecha es una extensión personalizada sobre el formato ISO 8601. Permite que los años estén fuera del rango 0000-9999. Las fechas se derivan de un valor de época Unix en el rango de un entero de 64 bits con signo. Esto significa que la fecha expresa un rango de calendario mucho más amplio de 292277026596 años en el futuro y -292471206707 años en el pasado. Este formato de extensión personalizada agregará un prefijo `'+'` a los valores que superen el año 9999 en el futuro y para los años que son anteriores al año 0 (A.C según el calendario gregoriano) se agregará un prefijo `'-'`. \ + Aquí hay ejemplos de valores de cadenas de fechas que son posibles: \ + `'2022-02-10T15:30:22Z'` \ + `'+39121901036-03-29T15:30:22Z'` \ `'-7025-12-23T00:00:00Z'` - absBeforeEpoch - cadena (opcional) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx index 069195ee06..d4f44bf613 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/end-sponsoring-future-reserves.mdx @@ -3,9 +3,6 @@ title: Finalizar el patrocinio de reservas futuras order: 170 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Finalizar un patrocinio. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx index 1fba6d9bfe..9e5e20a134 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx @@ -3,9 +3,6 @@ title: Extender el objeto TTL de huella order: 230 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Extiende](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#extend-footprint-ttl) el TTL para un conjunto dado de entradas de ledger. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx index bbea6d69b8..e696e848f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/invoke-host-function.mdx @@ -3,9 +3,6 @@ title: Invocar objeto de función de host order: 220 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Invoca](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#invoke-host-function) una función de contrato inteligente Soroban. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx index bfb06d7a16..4cd73e1402 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx @@ -3,9 +3,6 @@ title: Objeto de Depósito en Fondos de Liquidez order: 200 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Depositar reservas de activos en un fondo de liquidez. Consulta la [operación `Depósito en Fondo de Liquidez`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#liquidity-pool-deposit) para parámetros, errores, etc. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx index f1a2bb831f..669c1366a6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx @@ -3,9 +3,6 @@ title: Objeto de Retirada de Fondos de Liquidez order: 210 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Retira reservas de activos de un fondo de liquidez al canjear acciones del fondo. Consulta la operación [`Retirada de Fondos de Liquidez`](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#liquidity-pool-withdraw) para parámetros, errores, etc. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx index 604493f395..ba56083bf1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx @@ -3,9 +3,6 @@ title: Gestionar Objeto de Datos order: 120 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Establecer, modificar o eliminar una entrada de datos (par de nombre/valor) para una cuenta. Consulta los [errores de `Gestionar Datos`](../../../errors/result-codes/operation-specific/manage-data.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx index 926ea8c293..7ef4cb35ea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/passive-sell-offer.mdx @@ -3,9 +3,6 @@ title: Crear Objeto de Oferta de Venta Pasiva order: 70 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea una oferta que no consumirá una contraoferta que iguale exactamente esta oferta. Esto es útil para ofertas destinadas a ser intercambios 1:1 para pagos de ruta. Utiliza Gestionar Oferta de Venta para gestionar esta oferta después de usar esta operación para crearla. Consulta los [`errores de Crear Oferta de Venta Pasiva`](../../../errors/result-codes/operation-specific/create-passive-sell-offer.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx index ad95e43098..341a337b54 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-receive.mdx @@ -3,9 +3,6 @@ title: Objeto de Pago por Ruta Estricto Recibir order: 30 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Envía un pago de una cuenta a otra a través de un camino en los libros de órdenes, comenzando como un activo y terminando como otro. Los pagos por ruta que son `Recibir Estricto` designan la cantidad de pago en el activo recibido. Consulta los [errores de `Pago por Ruta Estricto Recibir`](../../../errors/result-codes/operation-specific/path-payment-strict-receive.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx index cdba60b0ba..d3760f38f7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/path-payment-strict-send.mdx @@ -3,9 +3,6 @@ title: Objeto de envío estricto de pago de rutas order: 40 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Envía un pago de una cuenta a otra a través de la ruta a través de los libros de órdenes, comenzando como un activo y terminando como otro. Los pagos de rutas que son `Envío Estricto` designan la cantidad del pago en el activo enviado. Consulta los [errores de `Envío Estricto de Pago de Rutas`](../../../errors/result-codes/operation-specific/path-payment-strict-send.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx index f596dd0a26..3d45c5ebd8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/restore-footprint.mdx @@ -3,9 +3,6 @@ title: Restaurar objeto de huella order: 240 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - [Restaura](../../../../../../../learn/fundamentals/transactions/list-of-operations.mdx#restore-footprint) entradas archivadas y las hace accesibles. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx index 67f00b540f..ba6eb7bd74 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/revoke-sponsorship.mdx @@ -3,9 +3,6 @@ title: Revocar Patrocino order: 190 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Revocar el patrocinio de una entrada del ledger. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx index 1a21abf881..6f16427725 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/sell-offer.mdx @@ -3,9 +3,6 @@ title: Gestionar objeto de oferta de venta order: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Crea, actualiza o elimina una oferta de venta para intercambiar activos. Una oferta de venta especifica una cierta cantidad del activo en venta que debe ser vendida a cambio de la máxima cantidad del activo en compra. Consulta los [`errores de gestionar oferta de venta`](../../../errors/result-codes/operation-specific/manage-sell-offer.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx index 34becfb16d..1c86c71189 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/operations/object/set-options.mdx @@ -3,9 +3,6 @@ title: Configurar el objeto de opciones order: 80 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Establece las banderas de una cuenta, el destino de inflación, los firmantes y el dominio principal. Consulta los [errores de `Configurar opciones`](../../../errors/result-codes/operation-specific/set-options.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/README.mdx index 07e36eefa3..43247cf1ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/README.mdx @@ -3,8 +3,6 @@ title: Pagos order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Los pagos son objetos que representan la transferencia de saldo de una dirección a otra. Los pagos se envían a la red Stellar agrupados en una transacción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/object.mdx index 542eee8316..b39b411d3e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/payments/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Pago order: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Envía una cantidad en un activo específico a una cuenta de destino. Consulta los [`Payment` errores](../../errors/result-codes/operation-specific/payment.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/README.mdx index 06b2a2fd7b..c11c0bbcb1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/README.mdx @@ -3,13 +3,11 @@ title: Comerciar order: 0 --- -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Cuando una oferta se cumple total o parcialmente, ocurre un comercio. Los comercios también pueden ser causados por pagos de ruta exitosos, ya que los pagos de ruta implican cumplir ofertas. Un comercio ocurre entre dos partes—`base` y `contraparte`. Cuál es cuál es arbitrario o determinado por la consulta que llama. -Aprende más sobre [comercios](/docs/learn/glossary/#decentralized-exchange). +Aprende más sobre [operaciones](../../../../../../learn/glossary.mdx#decentralized-exchange) con intercambio descentralizado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/object.mdx index b3e95cf63c..30823bea4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/trades/object.mdx @@ -3,9 +3,6 @@ title: El Objeto de Comercio order: 10 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre un comercio, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/README.mdx index ab9b39a6fb..084b9aa233 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/README.mdx @@ -9,8 +9,6 @@ El meta de transacción `result_meta_xdr` será eliminado de la API Horizon aloj ::: -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - Las transacciones son comandos que modifican el estado del ledger y consisten en una o más operaciones. Obtén más información sobre [transacciones](../../../../../../learn/glossary.mdx#transaction). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/object.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/object.mdx index 77dad0c970..44bf12a1ea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/object.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/resources/transactions/object.mdx @@ -9,9 +9,6 @@ La meta de transacción `result_meta_xdr` será eliminada de la API de Horizon h ::: -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Cuando Horizon devuelve información sobre una transacción, utiliza el siguiente formato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/README.mdx index 6dda855e9b..9c847e5f72 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/README.mdx @@ -3,6 +3,7 @@ title: Referencia de la API de Horizon sidebar_position: 20 sidebar_label: Estructura description: Horizon es una API para interactuar con la red Stellar. +sidebar_key: horizon-api-structure --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/README.mdx index e88ca41423..76a34bad29 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/README.mdx @@ -3,10 +3,6 @@ title: Paginación position: 60 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Para hacer posible explorar los millones de registros de recursos como transacciones y operaciones, Horizon paginación los datos que devuelve para puntos finales basados en colecciones. Cada transacción, operación, ledger, etc. se devuelve como un registro, y un grupo de registros se llama colección. Los registros se devuelven como una matriz bajo el atributo `_embedded`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx index 69e373eeb8..cc2da2d69a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/pagination/page-arguments.mdx @@ -3,18 +3,15 @@ title: Argumentos de la Página sidebar_position: 20 --- -import { Endpoint } from "@site/src/components/Endpoint"; -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import { CodeExample } from "@site/src/components/CodeExample"; +import { MethodTable } from "@site/src/components/MethodTable"; - + | | | | --- | ------------------------------------------------------------------ | | GET | `/{endpoint}?cursor={paging_token}&order={asc,desc}&limit={1-200}` | - + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/response-format.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/response-format.mdx index fd05688ab3..62565c4d50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/response-format.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/response-format.mdx @@ -3,9 +3,6 @@ title: Formato de respuesta sidebar_position: 20 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - Horizon entrega respuestas como objetos JSON formateados según [HAL](https://en.wikipedia.org/wiki/Hypertext_Application_Language). El formato HAL hace que Horizon sea más explorables, paginando respuestas y conectando recursos padres e hijos. Consumir este formato es sencillo usando una de las muchas [bibliotecas de código abierto disponibles](https://github.com/mikekelly/hal_specification/wiki/Libraries) para la mayoría de los lenguajes de programación principales. HAL es solo JSON con dos nombres de atributos reservados: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/xdr.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/xdr.mdx index 1ebdebd357..27502ec75a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/xdr.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/api-reference/structure/xdr.mdx @@ -3,9 +3,6 @@ title: XDR sidebar_position: 50 --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - En la red Stellar, las transacciones se codifican utilizando un protocolo estándar llamado [Representación de Datos Externos](https://en.wikipedia.org/wiki/External_Data_Representation) (XDR). En Horizon, solo encontrarás XDR al [publicar](../submit-a-transaction.api.mdx) y [obtener](../retrieve-a-transaction.api.mdx) transacciones y en el encabezado del [ledger](../resources/ledgers/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/providers.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/providers.mdx index 038da19f4d..f088dea605 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/providers.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/horizon/providers.mdx @@ -13,16 +13,16 @@ Varios proveedores de infraestructura han puesto a disposición servicios de Hor Estos proveedores permiten el acceso a las redes Futurenet, Testnet y Mainnet. -| Proveedor | Futurenet | Testnet | Mainnet | Historial completo | -| ----------------------------------------------------------- | --------- | ------- | ------- | ------------------ | -| [Blockdaemon\*†](https://www.blockdaemon.com/apply/soroban) | ❌ | ✅ | ✅ | ✅ | -| [Validation Cloud](https://app.validationcloud.io/) | ❌ | ✅ | ✅ | ❌ | -| [QuickNode](https://www.quicknode.com/docs/stellar) | ❌ | ✅ | ✅ | ❌ | -| [Ankr](https://www.ankr.com/rpc/advanced-api/) | ❌ | ✅ | ✅ | ❌ | -| [Obsrvr](https://www.withObsrvr.com/) | ❌ | ✅ | ✅ | ❌ | -| [Nodies](https://nodies.org) | ❌ | ✅ | ✅ | ❌ | - -†_Blockdaemon proporciona datos históricos completos para Horizon. Validation Cloud soporta 1 año_ +| Proveedor | Futurenet | Testnet | Mainnet | Historial completo | +| ---------------------------------------------------------- | --------- | ------- | ------- | ------------------ | +| [Blockdaemon\*](https://www.blockdaemon.com/apply/soroban) | ❌ | ✅ | ✅ | ✅ | +| [Validation Cloud\*](https://app.validationcloud.io/) | ❌ | ✅ | ✅ | ✅ | +| [QuickNode](https://www.quicknode.com/docs/stellar) | ❌ | ✅ | ✅ | ❌ | +| [Ankr](https://www.ankr.com/rpc/advanced-api/) | ❌ | ✅ | ✅ | ❌ | +| [Obsrvr](https://www.withObsrvr.com/) | ❌ | ✅ | ✅ | ❌ | +| [Nodies](https://nodies.org) | ❌ | ✅ | ✅ | ❌ | + +\*Blockdaemon y Validation Cloud proporcionan datos históricos completos para Horizon. ### APIs de acceso público diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/README.mdx index 097a1f7b4c..8658e5ff3f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/README.mdx @@ -22,7 +22,7 @@ Para cualquier nuevo constructor que venga a Stellar, Stellar RPC debe ser tu pu Ejecutar RPC dentro de tu propia infraestructura proporciona una serie de beneficios. Puedes: - Tener control operativo total sin depender de ningún proveedor externo para los datos de red y la presentación de transacciones. ¡La única forma de aprovechar el verdadero poder de un blockchain descentralizado! -- Evita el sobrecoste añadido de interactuar directamente con [Stellar Core], cuyo enfoque principal es el rendimiento y, por lo tanto, proporciona una API muy limitada +- Evita la sobrecarga adicional de interactuar directamente con [Stellar Core], cuyo enfoque principal es el rendimiento y, por lo tanto, proporciona una API muy limitada - Evita el sobrecoste añadido de almacenar muchos más datos de los que tu aplicación realmente necesita, como sería el caso al ejecutar [Horizon] Lo que Stellar RPC no es: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/README.mdx index e84a677692..4cf92b919c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/README.mdx @@ -1,6 +1,7 @@ --- title: Guía del Administrador sidebar_position: 15 +sidebar_key: rpc-admin-guide --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/configuring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/configuring.mdx index e85168bcfb..7a545f201b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/configuring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/configuring.mdx @@ -239,7 +239,7 @@ STELLAR_CORE_TIMEOUT = "2s" Ten en cuenta que la configuración generada anteriormente contiene los valores predeterminados y necesitas sustituirlos por valores adecuados para ejecutar la imagen. Por ejemplo, al usar un contenedor, se recomienda crear un volumen para el almacenamiento persistente de Captive Core y RPC y dirigir `CAPTIVE_CORE_STORAGE_PATH` y `DB_PATH` a ello en consecuencia. -Luego, deberías crear un archivo de configuración para [Stellar Core](https://github.com/stellar/stellar-core). Puedes encontrar archivos de configuración de ejemplo para [Testnet](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-testnet.cfg) y [Pubnet](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) +Luego, deberías crear un archivo de configuración para [Stellar Core](https://github.com/stellar/stellar-core). Puedes encontrar archivos de configuración de ejemplo para [Testnet](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-testnet.cfg) y [Pubnet](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) Al usar Docker, deberías crear y montar un volumen [montar un volumen](https://docs.docker.com/storage/volumes/) en tu contenedor donde se almacene la configuración anterior. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/prerequisites.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/prerequisites.mdx index 7bcef9fa48..41acbc0454 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/prerequisites.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/prerequisites.mdx @@ -9,7 +9,7 @@ El servicio RPC se puede instalar en hardware físico o en una máquina virtual. | Tipo de nodo | CPU | RAM | Disco | SKU de AWS | SKU de Google Cloud | | -------------- | ------ | ---- | ---------------------------------------- | ----------- | ------------------- | -| RPC de Stellar | 2 vCPU | 10GB | Volumen persistente de 250 GB >= 3K IOPS | [c5.xlarge] | [n4-highcpu-4] | +| RPC de Stellar | 2 vCPU | 16GB | Volumen persistente de 250 GB >= 3K IOPS | [c5.xlarge] | [n4-highcpu-4] | _\* Disco: Suponiendo la ventana de retención predeterminada de 7 días para el almacenamiento de datos. De lo contrario, 20 GB + 20 GB por día de retención_ _\* RAM/CPU: Suponiendo que RPC atenderá hasta 1000 solicitudes por segundo. Para implementaciones que esperan entre 1000 y más de 10000 solicitudes por segundo al RPC de Stellar, recomendamos al menos 16 GB de RAM y al menos una CPU de cuatro núcleos con una velocidad de reloj de 2,4 GHz._ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/running.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/running.mdx index 3ef1ab3e21..9bd7d91461 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/running.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/admin-guide/running.mdx @@ -3,8 +3,6 @@ title: En ejecución sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Puedes ejecutar el contenedor `stellar/stellar-rpc` con el siguiente comando: ```bash diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/README.mdx index f9c638a71c..113032b15b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/README.mdx @@ -1,6 +1,7 @@ --- title: Referencia de API sidebar_position: 20 +sidebar_key: rpc-api-reference --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx index 00396d0d4b..2cfd3f1608 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx @@ -3,7 +3,6 @@ hide_title: true description: Devuelve las entradas del ledger --- -import { CodeExample } from "@site/src/components/CodeExample"; import { RpcMethod } from "@site/src/components/RpcMethod"; import rpcSpec from "@site/static/stellar-rpc.openrpc.json"; @@ -21,12 +20,12 @@ El método `getLedgerEntries` devuelve los "valores" (o "entradas") para un conj La fuente de verdad siempre debe ser el XDR definido en el protocolo. `LedgerKey` son un tipo de unión definido en [Stellar-ledger-entries.x](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger-entries.x#L600). Hay 10 formas diferentes que puede tomar una clave de ledger: -1. **Cuenta:** define holísticamente una cuenta de Stellar, incluyendo su saldo, firmantes, etc. (ver [Cuentas](https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/accounts)) -2. **Línea de confianza:** define una línea de saldo para un activo no nativo emitido en la red (ver [`changeTrustOp`](https://developers.stellar.org/docs/learn/fundamentals/transactions/list-of-operations#change-trust)) -3. **Oferta:** define una oferta hecha en el DEX de Stellar (ver [Liquidez en Stellar](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools)) -4. **Datos de Cuenta:** define entradas de datos clave-valor adjuntas a una cuenta (ver [`manageDataOp`](https://developers.stellar.org/docs/learn/fundamentals/transactions/list-of-operations#manage-data)) -5. **Saldo reclamable:** define un saldo que puede o no ser reclamable activamente (ver [Saldos Reclamables](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/claimable-balances)) -6. **Fondo de Liquidez:** define la configuración de un fondo de liquidez constante nativo entre dos activos (ver [Liquidez en Stellar](https://developers.stellar.org/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools)) +1. **Cuenta:** define de forma integral una cuenta Stellar, incluyendo su saldo, firmantes, etc. (ver [Cuentas](../../../../../learn/fundamentals/stellar-data-structures/accounts.mdx)) +2. **Línea de confianza:** define una línea de saldo para un activo no nativo emitido en la red (ver [`changeTrustOp`](../../../../../learn/fundamentals/transactions/list-of-operations.mdx#change-trust)) +3. **Oferta:** define una oferta realizada en el Stellar DEX (ver [Liquidez en Stellar](../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx)) +4. **Datos de cuenta:** define entradas de datos clave-valor adjuntas a una cuenta (ver [`manageDataOp`](../../../../../learn/fundamentals/transactions/list-of-operations.mdx#manage-data)) +5. **Saldo reclamable:** define un saldo que puede estar o no activo para ser reclamado (ver [Saldos reclamables](../../../../../build/guides/transactions/claimable-balances.mdx)) +6. **Pool de liquidez:** define la configuración de un pool de liquidez constante nativo entre dos activos (ver [Liquidez en Stellar](../../../../../learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx)) 7. **Datos de Contrato:** define un conjunto de datos que se almacena en un contrato bajo una clave 8. **Código de Contrato:** define el bytecode Wasm de un contrato 9. **Ajuste de Configuración:** define la configuración de red actualmente activa @@ -428,7 +427,7 @@ Luego puedes inspeccionarlos en consecuencia. Cada una de las entradas anteriore ## Ver y comprender XDR -Si no quieres parsear el XDR programáticamente, también puedes aprovechar tanto el [Stellar CLI](https://developers.stellar.org/docs/tools/developer-tools/cli/stellar-cli) como el [Stellar Lab](https://lab.stellar.org/xdr/view) para obtener una vista legible por humanos de las claves y entradas del ledger. Por ejemplo, +Si no quieres analizar el XDR programáticamente, también puedes utilizar tanto el [Stellar CLI](../../../../../tools/cli/stellar-cli.mdx) como el [Stellar Lab](https://lab.stellar.org/xdr/view) para obtener una vista legible para humanos de las claves y entradas del libro mayor. Por ejemplo, ```bash echo 'AAAAAAAAAAAL76GC5jcgEGfLG9+nptaB9m+R44oweeN3EcqhstdzhQ==' | stellar xdr decode --type LedgerKey --output json-formatted diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getTransaction.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getTransaction.mdx index fc0e9ca51b..9afc165eb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getTransaction.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/getTransaction.mdx @@ -3,7 +3,6 @@ hide_title: true description: Devuelve los detalles de la transacción --- -import { CodeExample } from "@site/src/components/CodeExample"; import { RpcMethod } from "@site/src/components/RpcMethod"; import rpcSpec from "@site/static/stellar-rpc.openrpc.json"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/sendTransaction.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/sendTransaction.mdx index a453707669..2447114c37 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/sendTransaction.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/methods/sendTransaction.mdx @@ -188,7 +188,7 @@ public class SendTransactionExample { El método `sendTransaction` se utiliza para **enviar una transacción real a la red Stellar**, siendo la única forma de ejecutar **cambios en la cadena** a través de RPC. -A diferencia de Horizon, este método **no espera confirmación**. En cambio, **valida y encola** la transacción. Para seguir su resultado final, los clientes deben hacer un seguimiento con una llamada a [`getTransaction`](/docs/data/apis/rpc/api-reference/methods/getTransaction). +A diferencia de Horizon, este método **no espera confirmación**. En cambio, **valida y encola** la transacción. Para rastrear su resultado final, los clientes deben realizar un seguimiento mediante una llamada a [`getTransaction`](../methods/getTransaction.mdx). Este método admite **todas las transacciones de Stellar**, incluyendo, pero no limitándose a, invocaciones de contratos inteligentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/README.mdx index 6f88675a1f..92b2f618e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/README.mdx @@ -3,6 +3,7 @@ title: Referencia de la API RPC sidebar_position: 31 sidebar_label: Estructura description: RPC proporciona una API para interactuar con la red Stellar. +sidebar_key: rpc-api-structure --- import DocCardList from "@theme/DocCardList"; diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/data-format.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/data-format.mdx index 7ee81876cb..cae36bfe43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/data-format.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/api-reference/structure/data-format.mdx @@ -3,12 +3,9 @@ sidebar_position: 60 title: Formatos de datos --- -import { ExampleResponse } from "@site/src/components/ExampleResponse"; -import { AttributeTable } from "@site/src/components/AttributeTable"; - ### Formato XDR -En la red Stellar, las transacciones se codifican utilizando un protocolo estandarizado llamado [External Data Representation](/docs/learn/fundamentals/data-format/xdr) (XDR). +En la red Stellar, las transacciones se codifican utilizando un protocolo estandarizado llamado [External Data Representation](../../../../../learn/fundamentals/data-format/xdr.mdx) (XDR). En RPC, encontrarás XDR cuando [simules](../methods/simulateTransaction) y [envíes](../methods/sendTransaction) transacciones, así como cuando recuperes [transacciones](../methods/getTransactions), [ledger](../methods/getLedgers) y [entradas de ledger](../methods/getLedgerEntries). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/providers.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/providers.mdx index 0ff03d5b56..ef277693db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/providers.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/apis/rpc/providers.mdx @@ -21,8 +21,9 @@ Estos proveedores permiten el acceso a las redes Futurenet, Testnet y Mainnet. | [OnFinality\*](https://onfinality.io/networks/stellar) | ❌ | ❌ | ✅ | ✅ | ✅ | | [Lightsail Network - Quasar\*](https://quasar.lightsail.network/) | ❌ | ❌ | ✅ | ❌ | ✅ | | [Uniblock](https://www.uniblock.dev/) | ❌ | ✅ | ✅ | ❌ | ❌ | +| [Exaion](https://crypto.exaion.com) | ❌ | ❌ | ✅ | ✅ | | -\*_RPC Archive es una nueva opción para quienes buscan recuperar el historial completo del ledger. Actualmente, solo el método RPC [getLedgers](https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgers) admite esta función. Puedes elegir uno de los proveedores anteriores, o crear tu propio archivo getLedgers siguiendo [estos pasos](https://developers.stellar.org/docs/data/apis/rpc/admin-guide/data-lake-integration)._ +\*_RPC Archive es una nueva opción para quienes buscan recuperar el historial completo del ledger. Actualmente, solo el método RPC [getLedgers](./api-reference/methods/getLedgers.mdx) soporta esta característica. Puedes elegir uno de los proveedores anteriores o crear tu propio archivo getLedgers siguiendo [estos pasos](./admin-guide/data-lake-integration.mdx). _La columna "Dedicated Nodes" representa proveedores que alojan nodos completos como servicio._ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/README.mdx index c411693365..cb87ece368 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/README.mdx @@ -1,14 +1,114 @@ --- -title: Descripción general del indexador +title: Resumen de indexadores +sidebar_label: Indexadores sidebar_position: 0 --- -Aprende más sobre la indexación y los indexadores para los datos de la red Stellar. +## ¿Qué es un indexador y por qué lo necesitarías? -## [Construir tu propio indexador](./build-your-own/README.mdx) +Cuando empiezas a desarrollar en una plataforma de contratos inteligentes como Stellar, al principio puedes obtener todo lo que necesitas con llamadas RPC. Escribes un contrato, o lanzas un Stellar Classic Asset y [lo envuelves en un contrato inteligente](../../tokens/stellar-asset-contract.mdx), y haces un conjunto de llamadas RPC desde tu aplicación frontend directamente a tus contratos inteligentes. -Desarrollar tu propio indexador con herramientas como Galexie te permite exportar los metadatos del ledger de Stellar al almacenamiento externo para un procesamiento y análisis de datos personalizados. Esto permite una mayor flexibilidad en la estructuración y consulta de datos de blockchain según casos de uso específicos. +Sin embargo, en algún momento probablemente te enfrentarás a limitaciones con este enfoque. -## [Proveedores de indexadores de datos](./indexer-providers/indexer-providers.mdx) +1. Podrías necesitar hacer _demasiadas_ llamadas RPC. Imagina: tu aplicación muestra 20 NFTs de un usuario por página. Primera llamada RPC: obtener una lista de IDs de NFT para este usuario. Luego: 20 llamadas RPC simultáneas para obtener datos de cada NFT. Y posiblemente: para cada uno de esos, hacer solicitudes HTTP adicionales a buckets S3 o nodos IPFS para obtener datos de imagen, etc. Esto puede hacer que tu aplicación sea lenta, o incluso que un proveedor RPC te limite la tasa de peticiones. +2. Quizás quieras mostrar datos _históricos_, como cada vez que un NFT cambió de propietario. Este tipo de datos vive _en la historia de la blockchain_, pero no es accesible mediante llamadas RPC a la versión más actualizada de un contrato específico. Eso sólo devolvería el propietario actual. -Los indexadores de datos procesan y estructuran los datos de blockchain, haciéndolos más accesibles y consultables para los usuarios con capacidades avanzadas de análisis y visualización. Ofrecen características como análisis del flujo de transacciones y seguimiento de métricas DeFi, proporcionando una alternativa económica y fácil de usar para explorar la actividad de blockchain. Junto con el análisis, las aplicaciones pueden usar indexadores de datos para rastrear el movimiento de valor de los activos, rastrear activos dentro de una cuenta, rastrear operaciones sospechosas y más. +Además, incluso alguna información que actualmente está disponible en [Horizon] requerirá servicios de indexación en el futuro, ya que Horizon será descontinuado. + +## ¿Qué es exactamente la indexación? + +La palabra "indexación" ha llegado a englobar una gran variedad de casos de uso. Lo que todos tienen en común es que procesan y estructuran datos de la blockchain. Pensemos en ello en el orden de lo que tú, un desarrollador o pequeño equipo, necesitarás: + +### 1. APIs listas para usar para datos comunes {#portfolio-apis} + +Esto es el tipo de cosas que podrías obtener de Horizon hoy, pero puede incluir más que eso. Por ejemplo, muchos servicios de indexación en esta categoría también proporcionan el tipo de datos "cada vez que un NFT cambia de propietario" mencionado arriba. + +Muchas aplicaciones necesitan este tipo de datos, y tienden a tener una forma estándar. Esto hace rentable para las empresas crear productos SaaS, ofreciendo acceso a API por un precio (a menudo con un nivel gratuito, apropiado para tu startup en fase inicial o proyecto de hackathon). + +En el negocio, a estos se les llama _APIs de Portafolio_. Empresas reconocidas que los ofrecen: + +- [Alchemy]: la opción más popular en Ethereum; ahora en conversaciones para expandir su servicio a Stellar, con lanzamiento previsto para la primera mitad de 2026. + +- [Allium]: actualmente desarrollando soporte para Stellar, lanzamiento en el primer trimestre de 2026 + +- [OBSRVR]: una oferta nativa de Stellar creada internamente, que proporciona servicios RPC y [Obsrvr Gateway](https://www.withobsrvr.com/products/gateway), prometiendo "APIs potentes para la obtención de datos en tiempo real, procesamiento de transacciones e integración sencilla en sistemas existentes." + +- [Horizon]: como se mencionó anteriormente, Horizon pronto será dado de baja, pero por ahora es la única manera de obtener algunos de estos datos. + +### 2. Transmitir y transformar datos a una base de datos personalizada para la aplicación {#custom-transformations} + +No todas las aplicaciones tienen datos que encajen en una forma estándar. Probablemente la mayoría necesite transformaciones de datos personalizadas. + +Considera de nuevo el ejemplo del NFT. ¿No sería genial obtener todos los datos necesarios del NFT en _una_ solicitud, en lugar de N+1? Eso es lo que ofrece este estilo de indexación. Y aún mejor: puedes (a menudo) usar estas soluciones de indexación para agregar datos de múltiples fuentes. Si tu aplicación de NFT almacena información adicional en IPFS, también podrías consolidar todos esos datos fuera de la cadena en tu base de datos. Esto hace que tu aplicación sea mucho más rápida, ahorra solicitudes de red y RPC, y crea nuevas posibilidades de arquitectura. + +Opciones conocidas: + +- [The Graph]: una de las opciones pioneras y más populares en Ethereum en su momento. Ahora ofrecen tres productos principales: + + 1. [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/): su oferta principal y más famosa, que proporciona un [enfoque descentralizado](https://thegraph.com/docs/en/subgraphs/developing/publishing/publishing-a-subgraph/) para la transformación y hospedaje personalizado de datos. El uso de APIs GraphQL de The Graph popularizó GraphQL para toda esta categoría de indexación. + 2. **Token API**, para el Caso de Uso de Indexación [#1](#portfolio-apis) descrito arriba + 3. **Substreams**, para el Caso de Uso [#3](#analytics) descrito abajo + + The Graph ofrece soporte para Stellar en Substreams, sin planes actuales de expandir el soporte para Subgraph o Token API a Stellar. + +- [Goldsky]: una de las opciones más populares actualmente en Ethereum para este caso de uso. Goldsky provee [dos productos principales](https://docs.goldsky.com/subgraph-vs-mirror): + 1. **Subgraphs**: similares a los ofrecidos por The Graph, pero los datos viven en la infraestructura propia de Goldsky en lugar de una red descentralizada. Goldsky sólo ofrece esto para cadenas basadas en EVM, sin planes de ofrecer soporte Subgraph para Stellar. + 2. **Mirror**, también llamado **Pipelines**: una herramienta altamente eficiente para Extraer, Transformar y Cargar (ETL) datos en tu propia base de datos. Goldsky Mirrors ya soporta Stellar; consulta [su documentación](https://docs.goldsky.com/chains/stellar). + +- [Mercury]: un equipo nativo de Stellar que ofrece soporte optimizado para Soroban (Smart Contract) a través de su producto [Retroshades](https://docs.mercurydata.app/retroshades/introduction-to-retroshades). Ten en cuenta que este soporte optimizado para Soroban viene con la limitación de _solo_ soportar Soroban. Mercury también ofrece [Mercury "Classic"](https://docs.mercurydata.app/mercury-classic/introduction), que da acceso a eventos de contratos y transacciones Stellar mediante una interfaz GraphQL, que podría ajustarse mejor al Caso de Uso de Indexación #1. + +- [SubQuery]: SDK descentralizado para Indexer, RPCs descentralizados y Apps de IA. Soporta más de 300 cadenas. Al igual que The Graph, usa un modelo descentralizado. + +- [OnFinality]: un gran actor en el ecosistema Polkadot, ahora expandiéndose a otras blockchains. OnFinality provee servicios de hospedaje de datos para tu lógica SubQuery. SubQuery es el _software_, OnFinality es la _infraestructura_, que hospeda 1. los datos crudos pretransformados de Stellar, 2. tu procesador Extract, Transform and Load (ETL) desarrollado con el SDK SubGraph y 3. tus datos transformados finales. + +- [Allium]: además de su oferta de APIs de Portafolio, Allium también está bajo contrato con SDF para crear herramientas tanto para el Caso de Uso de Indexación #2 (este) como para el Caso de Uso #3 (ver abajo), con fecha de lanzamiento objetivo en el primer trimestre de 2026. + +- [Space and Time]: un desafío con la mayoría de enfoques de indexación es la reintroducción de terceros confiables en lo que por lo demás es una Stack de software verificable y sin confianza. Space and Time pretende corregir esto con "Proof of Indexing" y "Proof of SQL", usando pruebas de conocimiento cero para ofrecer computación a prueba de manipulaciones para empresas y dapps. El soporte de Space and Time para Stellar [se lanzó](https://www.spaceandtime.io/blog/space-and-time-enables-new-sophisticated-financial-apps-for-the-stellar-ecosystem) en el cuarto trimestre de 2025. + +- [OBSRVR Flow]: "Datos estructurados de ledger y eventos de contrato directamente a tu app o warehouse—sin necesidad de ETL." Actualmente en beta privada. + +### 3. Analítica Big-Data con sabor a Blockchain {#analytics} + +Para inteligencia de negocio, cumplimiento, rastreo de operaciones sospechosas, seguimiento de métricas DeFi, análisis de flujo de transacciones, etc. Cuando tu empresa alcanza cierta escala, vale la pena pagar a Ingenieros de Datos para configurar canalizaciones ETL personalizadas y gestionar bases de datos/lagos de datos, y luego pagar a Analistas de Datos para responder preguntas sobre cómo interactúan las personas con tus sistemas. + +Las empresas que crean herramientas para el Caso de Uso de Indexación #2 arriba (The Graph, Goldsky, Allium, etc.) suelen tener también herramientas para el Caso de Uso #3. + +Aunque a menudo se les llama _indexación_, también puedes pensar en esta categoría como _analítica_. Consulta la [documentación de analítica](../analytics/README.mdx) para soluciones diseñadas a medida para este caso de uso. + +## Crear la tuya propia + +Si ninguno de los proveedores de indexación mencionados arriba satisface tus necesidades, también puedes crear la tuya propia. Comienza con este [tutorial sobre cómo crear tu propia canalización personalizada de ingestión de red](../../build/apps/ingest-sdk/overview.mdx). En el camino, usarás las siguientes herramientas y servicios: + +### [Galexie](./build-your-own/galexie/README.mdx) + +Galexie es una herramienta para adquirir metadatos de ledger de Stellar desde la red y exportarlos a almacenamiento externo, un lago de datos. Galexie es la base del Composable Data Pipeline (CDP) y sirve como el primer paso para extraer metadatos crudos del ledger de Stellar y hacerlos accesibles. Aprende más sobre los beneficios y aplicaciones del CDP en [esta publicación de blog](https://stellar.org/blog/developers/composable-data-platform). + +**Por qué usarlo:** + +- Quieres mantener un lago de datos de metadatos de ledger precomputados para ledgers históricos y actualmente cerrados de la red. + +### [Ingest SDK](./build-your-own/ingest-sdk/README.mdx) + +Un conjunto de paquetes Golang que pueden usarse dentro de una aplicación como un modelo de dominio programático para interactuar con la red Stellar. + +**Por qué usarlo:** + +- Quieres desarrollar rápidamente aplicaciones en Golang que puedan adquirir y analizar metadatos de ledger y entradas del ledger de la red Stellar. +- Quieres una experiencia de desarrollador de aplicaciones intuitiva, segura en tiempo de compilación y con tipado seguro. +- Quieres acceder programáticamente a Historias de Archivos para recuperar entradas de ledger. + +### [Processors](./build-your-own/processors/README.mdx) + +Un conjunto de paquetes Go que te ayudan a analizar datos de la blockchain de Stellar. + +[Horizon]: ../apis/horizon/README.mdx +[Allium]: https://www.allium.so/ +[Alchemy]: https://www.alchemy.com/ +[Goldsky]: https://goldsky.com/ +[OBSRVR]: https://www.withobsrvr.com/ +[The Graph]: https://thegraph.com/docs/en/about/ +[Mercury]: https://docs.mercurydata.app/ +[SubQuery]: https://subquery.network/ +[OnFinality]: https://onfinality.io/ +[Space and Time]: https://www.spaceandtime.io/ +[OBSRVR Flow]: https://www.withobsrvr.com/products/flow diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/README.mdx index 94e039f365..4168e7e723 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/README.mdx @@ -1,9 +1,9 @@ --- -title: Construir Tu Propio Indexador +title: Crear tu propio sidebar_position: 0 --- -Aprende sobre los servicios y herramientas con los que puedes construir un indexador personalizado. +Si ninguno de los proveedores de indexación mencionados [en la descripción general](../README.mdx) satisface tus necesidades, también puedes crear el tuyo propio. Comienza con este [tutorial sobre cómo crear tu propia canalización personalizada de ingestión de red](../../../build/apps/ingest-sdk/overview.mdx). Durante el proceso, usarás las siguientes herramientas y servicios: ## [Galexie](./galexie/README.mdx) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/README.mdx index 5fec98714a..ca798600e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/README.mdx @@ -20,7 +20,7 @@ Galexie está diseñada para hacer la exportación de metadatos del ledger de ma ## ¿Por qué formarnos en formato XDR? -Exportar datos en XDR—el formato nativo de Stellar Core—permite a Galexie preservar todos los metadatos de las transacciones, asegurando la integridad de los datos mientras mantiene el almacenamiento eficiente. El formato XDR mantiene la compatibilidad con todos los componentes de Stellar, proporcionando una sólida base para aplicaciones que requieren acceso constante a datos históricos. Consulta la documentación de [XDR](/docs/learn/fundamentals/data-format/xdr) para obtener más información sobre este formato. +Exportar datos en XDR—el formato nativo de Stellar Core—permite a Galexie preservar todos los metadatos de las transacciones, asegurando la integridad de los datos mientras mantiene el almacenamiento eficiente. El formato XDR mantiene la compatibilidad con todos los componentes de Stellar, proporcionando una sólida base para aplicaciones que requieren acceso constante a datos históricos. Consulta la documentación de [XDR](../../../../learn/fundamentals/data-format/xdr.mdx) para obtener más información sobre este formato. ## ¿Por qué ejecutar Galexie? diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx index 0fba8f96bc..9c06bb057a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/configuring.mdx @@ -7,17 +7,9 @@ sidebar_position: 20 ## Pasos para configurar Galexie -### 1. Copiar la Configuración de Ejemplo +### Configuraciones Clave Incluyen -Comienza con el archivo de ejemplo proporcionado, [`config.example.toml`](https://github.com/stellar/go/blob/master/services/galexie/config.example.toml). - -### 2. Renombrar y Actualizar la Configuración - -Renombra el archivo a `config.toml` y ajusta la configuración según sea necesario. - -#### Configuraciones Clave Incluyen - -##### Servicio de Almacenamiento en la Nube +#### Servicio de Almacenamiento en la Nube Especifica el servicio de almacenamiento en la nube que se usará para exportar los metadatos del libro mayor. Actualmente solo se admiten `GCS` y `S3` @@ -25,7 +17,7 @@ Especifica el servicio de almacenamiento en la nube que se usará para exportar type = "GCS" ``` -##### Depósito de Almacenamiento en la Nube +#### Depósito de Almacenamiento en la Nube Especifica el bucket de almacenamiento en la nube donde Galexie exportará los datos del libro mayor de Stellar. Actualiza `destination_bucket_path` con la ruta completa de tu bucket, incluyendo subrutas si corresponde. @@ -33,7 +25,7 @@ Especifica el bucket de almacenamiento en la nube donde Galexie exportará los d destination_bucket_path = "stellar-network-data/testnet" ``` -##### Red Stellar +#### Red Stellar Establece la red de Stellar que se utilizará para crear el lago de datos. @@ -41,7 +33,7 @@ Establece la red de Stellar que se utilizará para crear el lago de datos. network = "testnet" ``` -##### Organización de Datos (Opcional) +#### Organización de Datos (Opcional) Configura cómo se organiza la información exportada en el bucket de almacenamiento. El ejemplo siguiente añade 1 ledger por archivo y los organiza en un directorio de 64000 archivos. @@ -53,11 +45,11 @@ ledgers_per_file = 1 files_per_partition = 64000 ``` -##### Usar una Configuración Core Personalizada (Opcional) +#### Usar una Configuración Core Personalizada (Opcional) Puedes especificar un archivo personalizado `core.cfg` en el archivo `config.toml` de Galexie que anulará los parámetros core predeterminados usados con la Red Stellar especificada en el parámetro `network`. -Copia un archivo `core.cfg` existente, como el `captive-core-pubnet.cfg` proporcionado [aquí](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) y añade lo siguiente a tu `config.toml`. +Copia un archivo `core.cfg` existente como el `captive-core-pubnet.cfg` proporcionado [aquí](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/configs/captive-core-pubnet.cfg) y añade lo siguiente a tu `config.toml` ```toml captive_core_toml_path = "my-captive-core.cfg" @@ -80,3 +72,13 @@ El `core.cfg` predeterminado que usa Galexie habilitará los siguientes parámet Cuando proporcionas un archivo de configuración core personalizado, reemplaza completamente la configuración core predeterminada de Galexie. Esto significa que debes establecer explícitamente cualquier parámetro que desees habilitar, incluyendo los que están habilitados por defecto en Galexie. Cualquier parámetro que no esté listado en tu configuración personalizada se establecerá en false. ::: + +### Ejecutar Galexie en una Instancia + +#### 1. Copiar la Configuración de Ejemplo + +Comienza con el archivo de ejemplo proporcionado, [`config.example.toml`](https://github.com/stellar/stellar-galexie/blob/main/config/config.example.toml). + +#### 2. Renombrar y Actualizar la Configuración + +Renombra el archivo a `config.toml` y ajusta la configuración según sea necesario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/installing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/installing.mdx index 17886e64a8..b1795bc362 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/installing.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/installing.mdx @@ -5,7 +5,18 @@ sidebar_position: 30 # Instalando -Para instalar Galexie, recupera la imagen de Docker del [Stellar Docker Hub registry](https://hub.docker.com/r/stellar/stellar-galexie) utilizando el siguiente comando: +## Kubernetes + +Para instalar Galexie en un clúster de Kubernetes, sigue estos pasos: + +- Ejecuta `helm repo add stellar https://helm.stellar.org/charts` +- Ejecuta `helm install stellar/galexie --set datastore.params.path=` + +La configuración adicional se puede establecer con las opciones `--set` o utilizando un [archivo de valores helm](https://helm.sh/docs/chart_template_guide/values_files/) con el chart. + +## Instalar el contenedor en un host + +Para descargar la imagen del contenedor Galexie desde el [registro Stellar Docker Hub](https://hub.docker.com/r/stellar/stellar-galexie) usa el siguiente comando docker o un comando similar compatible con OCI: ```shell docker pull stellar/stellar-galexie diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx index f0fc6f830a..0bed15bdd4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/monitoring.mdx @@ -7,9 +7,9 @@ sidebar_position: 50 ### Métricas -Galexie publica métricas a través de un punto final administrativo basado en HTTP, lo que facilita la supervisión de su rendimiento. Este punto final se puede configurar en el archivo `config.toml`, donde puedes especificar el puerto en el que se ponen a disposición las métricas. Los datos se exponen en formato Prometheus, lo que permite una fácil integración con los sistemas de monitoreo y alerta existentes. +Galexie publica métricas a través de un punto final administrativo basado en HTTP, lo que facilita la supervisión de su rendimiento. Los datos se exponen en formato Prometheus, lo que permite una fácil integración con los sistemas de monitoreo y alerta existentes. -El puerto administrativo se puede configurar en el archivo `config.toml` estableciendo la variable `admin_port`. Por defecto, el `admin_port` está configurado en `6061` +El puerto de administración donde se sirven estas métricas puede configurarse estableciendo la variable `admin_port`. Por defecto, el `admin_port` está configurado en `6061` ```toml # Admin port configuration diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx index a6e21f97cf..b58be69673 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/prerequisites.mdx @@ -19,18 +19,25 @@ Galexie exporta los metadatos del ledger de Stellar a Google Cloud Storage (GCS) - Permisos para crear un nuevo bucket S3, o - Acceso a un bucket existente con permisos de lectura y escritura. -## 2. Docker (Recomendado) +## 2. Tiempo de ejecución de contenedores (Recomendado) -> **_NOTA:_** Aunque es posible instalar Galexie de manera nativa (sin Docker), esto requiere una gestión manual de dependencias y se recomienda solo para usuarios avanzados +### Kubernetes -Galexie está disponible como una imagen de Docker, lo que simplifica la instalación y configuración. Asegúrate de tener Docker Engine instalado en tu sistema ([guía de instalación de Docker](https://docs.docker.com/engine/install/)). +- Kubernetes 1.19+ + +### Ejecutar el contenedor Galexie en una Instancia + +- Instancia como AWS EC2 o VM de GCP +- Cualquier máquina host con un tiempo de ejecución de contenedores compatible con OCI instalado como Docker ([Guía de instalación de Docker](https://docs.docker.com/engine/install/)). + +> **_NOTA:_** Aunque es posible instalar Galexie de forma nativa (sin un tiempo de ejecución de contenedores), esto requiere la gestión manual de dependencias y se recomienda solo para usuarios avanzados. ## Requisitos de Hardware Los requisitos mínimos de hardware para ejecutar Galexie son:\ -**RAM**: 8 GB\ -**CPU**: 2 vCPUs\ -**Disco**: 100 GB con al menos 5K IOPS +**RAM**: 16 GB\ +**CPU**: 4 vCPUs\ +**Disco persistente**: 100 GB con al menos 5K IOPS ### Exportación Completa de Historial diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/running.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/running.mdx index fd971419b3..7c0aea8397 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/running.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/running.mdx @@ -5,6 +5,8 @@ sidebar_position: 40 # Ejecutando +Los comandos y argumentos descritos en este documento pueden configurarse en el helm chart así como ejecutarse en una instancia según se describe a continuación. El helm chart maneja internamente la ruta del archivo de configuración para el chart. El argumento `--config-file` no debe añadirse a la variable de argumentos en el helm chart. + Con la imagen Docker disponible y el archivo de configuración preparado, ya estás listo para ejecutar Galexie y comenzar a exportar datos del ledger Stellar al depósito de almacenamiento. ## Uso de la Línea de Comandos @@ -108,3 +110,114 @@ docker run --platform linux/amd64 -d \ stellar/stellar-galexie \ scan-and-fill --start 64000 --end 68000 --config-file config.toml ``` + +### Reemplazar comando + +El comando `replace` es una nueva incorporación en Galexie v24.1.0 que simplifica la reexportación de ledgers que fueron procesados previamente. + +A diferencia de `append` o `scan-and-fill`, que omiten los archivos existentes, `replace` sobrescribirá los archivos existentes dentro de un rango especificado. + +Se utiliza principalmente cuando Stellar Core comienza a emitir metadatos nuevos o actualizados para ledgers procesados anteriormente (por ejemplo, la introducción de [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) Stellar Events). Esto permite a los operadores reexportar los ledgers afectados para asegurar que el data lake contenga los metadatos más recientes y completos. + +Sintaxis: + +```shell +stellar-galexie replace --start --end [--config-file ] +``` + +Argumentos: + +`--start ` (obligatorio) + +- El número de secuencia inicial del ledger en el rango que se está exportando. + +`--end ` (obligatorio) + +- El número de secuencia final del ledger en el rango que se está exportando. + +`--config-file ` (opcional): + +- La ruta al archivo de configuración. Si no se especifica, el exportador buscará un archivo llamado “config.toml” en el directorio actual. + +Ejemplo de uso: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +stellar/stellar-galexie \ +replace --start 64000 --end 68000 --config-file config.toml +``` + +### Comando detect-gaps + +El comando `detect-gaps` es una nueva incorporación en Galexie v25.0.0. Realiza una auditoría de solo lectura del data lake y reporta cualquier secuencia faltante en el ledger ("agujeros") dentro de un rango dado. + +Durante la operación diaria normal, el comando `append` mantiene una integridad secuencial estricta. Sin embargo, los operadores suelen paralelizar las exportaciones completas de historial inicial al dividir el rango total del ledger en múltiples subrangos y ejecutar varias instancias de Galexie simultáneamente. Rangos mal configurados, trabajos fallidos o intervención manual pueden dejar huecos (archivos faltantes) en el almacén de datos. + +El comando `detect-gaps` está diseñado para verificar la integridad de un data lake recién creado tras una exportación completa inicial o como auditoría periódica. Este comando no exporta ni modifica ningún dato. Solo escanea el almacén de datos existente y reporta los rangos faltantes. + +Sintaxis: + +```shell +stellar-galexie detect-gaps --start \ +--end \ +[--config-file ] \ +[--output-file ] +``` + +Argumentos: + +`--start ` (requerido) + +Número de secuencia inicial del ledger del rango que se escaneará en busca de agujeros. + +`--end ` (requerido) + +Número de secuencia final del ledger del rango que se escaneará en busca de agujeros. + +`--config-file ` (opcional) + +La ruta al archivo de configuración. Si no se especifica, la aplicación busca un archivo llamado "config.toml" en el directorio actual. + +`--output-file ` (opcional) + +Si se proporciona, el informe de agujeros se escribe en formato JSON en este archivo. Si se omite, el informe JSON se escribe en la salida estándar. + +Ejemplo de uso: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +-v ${PWD}:/reports \ +stellar/stellar-galexie \ +detect-gaps \ +--start 2 \ +--end 200000 \ +--config-file config.toml \ +--output-file gaps_report.json +``` + +Ejemplo de salida: + +```shell +{ + "scan_from": 2, + "scan_to": 200000, + "duration_seconds": 3.42ms, + "report": { + "gaps": [ + { "start": 144320, "end": 144383 }, + { "start": 180000, "end": 180063 } + ], + "total_ledgers_found": 199871, + "total_ledgers_missing": 128, + "min_sequence_found": 2, + "max_sequence_found": 200000 + } +} + +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/setup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/setup.mdx index d8a2f18c03..dd1ab4296c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/setup.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/admin_guide/setup.mdx @@ -5,37 +5,106 @@ sidebar_position: 10 # Configurar -## Google Cloud Platform (GCP) para GCS - -### Credenciales de Google Cloud Platform (GCP) - -Crea credenciales predeterminadas de aplicación utilizando tu cuenta de usuario para tu proyecto GCP siguiendo estos pasos: +Galexie se ejecuta como un publicador y escribe archivos en buckets, por lo que necesita tener asignados los permisos correctos de cuenta en el bucket para permitir escrituras. Para las aplicaciones cliente que serán consumidoras de archivos en el bucket, se necesitará un conjunto menor de permisos de cuenta para permitir únicamente la actividad de lectura. -1. Descarga el [SDK](https://cloud.google.com/sdk/docs/install). -2. Instala e inicializa el [gcloud CLI](https://cloud.google.com/sdk/docs/initializing). -3. Crea [credenciales predeterminadas de aplicación](https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp) y deberían almacenarse automáticamente en esta ubicación: `$HOME/.config/gcloud/application_default_credentials.json.` -4. Verifica que este archivo exista antes de pasar al siguiente paso. +## Google Cloud Platform (GCP) para GCS ### Bucket de Google Cloud Storage (GCS) -Si ya tienes un bucket de GCS con permisos de lectura y escritura, puedes omitir esta sección. Si no, sigue estos pasos: +Si ya tienes un bucket GCS listo para que Galexie envíe datos, puedes omitir esta sección. Si no, sigue estos pasos: 1. Visita la sección de Almacenamiento de la consola de GCP (https://console.cloud.google.com/storage) y crea un nuevo bucket. 2. Elige un nombre descriptivo para el bucket, como `stellar-ledger-data`. Consulta la [Guía de Nomenclatura de Buckets de Google Cloud Storage](https://cloud.google.com/storage/docs/buckets#naming) para las convenciones de nomenclatura de buckets. Anota el nombre del bucket, lo necesitarás más tarde durante el proceso de configuración. -## Amazon Web Services (AWS) para S3 +### Autenticación de Google Cloud Platform (GCP) + +#### Clúster de Google Kubernetes Engine -### Credenciales de Amazon Web Services (AWS) +Cuando ejecutes Galexie dentro de un clúster GKE, sigue la documentación de Google Cloud sobre la [identidad de carga de trabajo](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) para asegurarte de que Galexie tenga el acceso correcto al bucket. -Crea las credenciales predeterminadas de la aplicación usando tu cuenta de usuario para tu proyecto de AWS siguiendo estos pasos: +#### VM de GCP -1. Descarga e instala el [SDK](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). -2. Crea [credenciales de autenticación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html). Estas deberían almacenarse automáticamente en esta ubicación: `$HOME/.aws/credentials` -3. Verifica que este archivo exista antes de continuar con el siguiente paso. +1. [Crear una Cuenta de Servicio](https://docs.cloud.google.com/iam/docs/service-accounts-create) +2. Usa esa Cuenta de Servicio al crear la VM de GCP. +3. Asegúrate de que la Cuenta de Servicio tenga el acceso correcto al bucket. + +#### Credenciales (No Recomendado) + +Para usar credenciales estáticas, encuentra la ruta de autenticación que mejor funcione en el entorno de Galexie y sigue la documentación de Google Cloud sobre [crear credenciales](https://developers.google.com/workspace/guides/create-credentials), asegurándote de que el principal de las credenciales tenga acceso al bucket correcto. + +#### Permisos del Rol IAM + +Al usar IAM de GCP para autenticar a Galexie para acceder a un bucket, se requieren los siguientes permisos: + +- storage.buckets.get +- storage.buckets.list +- storage.multipartUploads.abort +- storage.multipartUploads.create +- storage.multipartUploads.list +- storage.multipartUploads.listParts +- storage.objects.create +- storage.objects.delete +- storage.objects.get +- storage.objects.list +- storage.objects.restore +- storage.objects.update + +## Amazon Web Services (AWS) para S3 ### Bucket de Amazon Simple Storage Service (S3) -Si ya cuentas con un bucket de S3 con permisos de lectura y escritura, puedes omitir esta sección. Si no es así, sigue estos pasos: +Si ya tienes un bucket S3 listo para que Galexie envíe datos, puedes omitir esta sección. Si no es así, sigue estos pasos: 1. Visita la sección de Storage de la consola de AWS (https://console.aws.amazon.com/s3/) y crea un nuevo bucket. 2. Elige un nombre descriptivo para el bucket, como `stellar-ledger-data`. Consulta las [reglas generales para nombrar buckets en S3](https://cloud.google.com/storage/docs/buckets#naming). Anota el nombre del bucket, lo necesitarás más adelante durante el proceso de configuración. + +### Autenticación de Amazon Web Services (AWS) + +#### Clúster EKS + +Cuando ejecutes Galexie dentro de un clúster EKS, sigue la documentación de AWS sobre [roles IAM para cuentas de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) o [identidad de pod](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). + +#### AWS EC2 + +1. [Crear un Rol IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) +2. Usa ese rol en un [perfil de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). +3. Usa ese perfil de instancia para la creación de la instancia EC2. +4. Asegúrate de que el perfil de instancia tenga el acceso correcto al bucket. + +#### Credenciales (No Recomendado) + +Para usar credenciales estáticas, [crea un usuario IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-workloads.html) para Galexie asegurándote de que el principal de las credenciales tenga acceso al bucket correcto y genera las credenciales de seguridad. + +#### Permisos del Rol IAM + +Al usar AWS IAM para autenticar a Galexie para acceder a un bucket, usa esta política de ejemplo asegurándote de usar el destino correcto del bucket: + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "AllowS3BucketOperations", + "Effect": "Allow", + "Action": [ + "s3:ListBucket", + "s3:GetBucketLocation", + "s3:ListBucketMultipartUploads" + ], + "Resource": "arn:aws:s3:::my-galexie-bucket-example" + }, + { + "Sid": "AllowS3ObjectAccess", + "Effect": "Allow", + "Action": [ + "s3:PutObject", + "s3:GetObject", + "s3:DeleteObject", + "s3:AbortMultipartUpload", + "s3:ListMultipartUploadParts" + ], + "Resource": ["arn:aws:s3:::my-galexie-bucket-example/*"] + } + ] +} +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/README.mdx index 0fa972577a..b4373bf4dc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/README.mdx @@ -1,6 +1,7 @@ --- title: Ejemplos de Uso sidebar_position: 20 +sidebar_key: galexie-example-usages --- Esta sección muestra casos de uso del mundo real de Galexie. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/gcs-export.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/gcs-export.mdx index ff8a0795b0..cc84529989 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/gcs-export.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/examples/gcs-export.mdx @@ -16,7 +16,7 @@ sidebar_position: 20 Ejecuta la imagen de Dockerhub Galexie, [stellar/stellar-galexie](https://hub.docker.com/r/stellar/stellar-galexie) como una instancia en [GCP Compute Engines](https://cloud.google.com/run/docs/create-jobs) y exporta los metadatos del libro mayor al almacenamiento [de almacenamiento en GCS](https://cloud.google.com/storage/docs/json_api/v1/buckets). -[Galexie](/data/indexers/build-your-own/galexie/README.mdx) en este ejemplo, realiza los roles principales del canal de datos. Actúa como el `origin` y `publisher` de los metadatos del libro mayor hacia el bucket de Google Cloud Storage que es el `sink`. +[Galexie](../README.mdx) en este ejemplo, realiza los roles principales del pipeline de datos. Actúa como el `origin` y `publisher` de los metadatos del libro mayor hacia el bucket de Google Cloud Storage que es el `sink`. ### Prepara el archivo de configuración de Galexie localmente @@ -140,4 +140,4 @@ Accede a la consola de GCP: ## Siguiente paso - Canal del Consumidor -Los metadatos del libro mayor ahora se están acumulando como archivos en tu bucket de GCS. Puedes comenzar a explorar las opciones para que las aplicaciones consuman estos datos de red precomputados utilizando el [Ingest SDK](../../ingest-sdk/README.mdx) para ensamblar canalizaciones de datos impulsadas por el consumidor capaces de importar y analizar los datos para derivar modelos de datos personalizados y enriquecidos. Consulta el [canal del consumidor del bucket de GCS](https://developers.stellar.org/docs/build/apps/ingest-sdk/overview#ledger-metadata-consumer-pipeline) para código de ejemplo relevante. +Los metadatos del libro mayor ahora se están acumulando como archivos en tu bucket de GCS. Puedes comenzar a explorar las opciones para que las aplicaciones consuman estos datos de red precomputados utilizando el [Ingest SDK](../../ingest-sdk/README.mdx) para ensamblar canalizaciones de datos impulsadas por el consumidor capaces de importar y analizar los datos para derivar modelos de datos personalizados y enriquecidos. Consulta [el pipeline consumidor de bucket GCS](../../../../../build/apps/ingest-sdk/overview.mdx#ledger-metadata-consumer-pipeline) para el código de ejemplo relevante. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/providers.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/providers.mdx index 90977da28a..e1ec7ebea5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/providers.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/galexie/providers.mdx @@ -9,7 +9,7 @@ Estos proveedores permiten acceso a las redes Futurenet, Testnet y Mainnet. | Proveedor | Futurenet | Testnet | Mainnet | URI | | ------------------------------------------------------------------------------- | --------- | ------- | ------- | -------------------------------------------------- | -| [AWS Public Blockchain\*](https://registry.opendata.aws/aws-public-blockchain/) | ❌ | ❌ | ✅ | `s3://aws-public-blockchain/v1.1/stellar/ledgers/` | +| [AWS Public Blockchain\*](https://registry.opendata.aws/aws-public-blockchain/) | ❌ | ✅ | ✅ | `s3://aws-public-blockchain/v1.1/stellar/ledgers/` | | [Lightsail Network - Quasar](https://quasar.lightsail.network/) | ❌ | ❌ | ✅ | `https://galexie.lightsail.network/v1/` | \*AWS Public Blockchain poblado por Goldsky diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/README.mdx index 6fad75359b..7b53301be5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## ¿Qué es el Ingestar SDK? -El SDK está compuesto por varios paquetes de Golang publicados bajo `github.com/stellar/go` para adquirir y analizar datos de la red Stellar. Proporciona enlaces a nivel de lenguaje que convierten las secuencias [XDR codificadas en binario](../../../../learn/fundamentals/data-format/xdr.mdx) emitidas por la red en modelos de datos programáticos fluidos. +El SDK está compuesto por varios paquetes publicados en Golang bajo `github.com/stellar/go-stellar-sdk` para adquirir y analizar datos de la red Stellar. Proporciona enlaces a nivel de lenguaje que convierten las secuencias [XDR codificadas en binario](../../../../learn/fundamentals/data-format/xdr.mdx) emitidas por la red en modelos de datos programáticos fluidos. ## ¿Por qué usar el Ingestar SDK? diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx index 60f2e33842..bfb0190fef 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/README.mdx @@ -1,8 +1,9 @@ --- title: Guía para desarrolladores sidebar_position: 0 +sidebar_key: guía-del-desarrollador-sdk-ingest --- -El SDK de [ingest Stellar](https://github.com/stellar/go/tree/master/ingest) es un conjunto de paquetes para recuperar y procesar metadatos del ledger de la red Stellar. Los desarrolladores pueden utilizar este SDK para crear motores de ingestión personalizados. +El [SDK de ingestión](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) de Stellar es un conjunto de paquetes para recuperar y procesar metadatos del ledger de la red Stellar. Los desarrolladores pueden utilizar este SDK para crear motores de ingestión personalizados. Esta guía explica cómo configurar, configurar y utilizar el SDK de ingestión de manera efectiva. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx index af11d7c487..d45a2a0995 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/architecture.mdx @@ -9,6 +9,6 @@ sidebar_position: 0 El SDK de Ingesta está organizado en tres componentes principales: -1. **[Backend de Ledger](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends)**: Utilizado para transmitir ledgers desde la red Stellar. `https://github.com/stellar/go/tree/master/ingest/ledgerbackend` -2. **[Lector de Ledger](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders)**: Iteradores para extraer cambios o transacciones individuales de un ledger. `https://github.com/stellar/go/tree/master/ingest` -3. **[Procesadores de Ledger](https://github.com/stellar/go/tree/master/ingest/processors)**: Funciones para procesar cambios o transacciones individuales y extraer datos significativos como cuentas, ofertas, saldo reclamable, etc. Se utilizan junto con `Lector de Ledger` para interpretar y transformar datos de ledger. +1. **[Ledger Backends](./ledgerbackends/README.mdx)**: Se usan para transmitir los ledgers desde la red Stellar. `https://github.com/stellar/go-stellar-sdk/tree/main/ingest/ledgerbackend` +2. **[Ledger Readers](./ledgerreaders.mdx)**: Iteradores para extraer cambios individuales o transacciones de un ledger. `https://github.com/stellar/go-stellar-sdk/tree/main/ingest` +3. **[Procesadores de ledger](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors)**: Funciones para procesar cambios o transacciones individuales y extraer datos significativos como cuentas, ofertas, saldo reclammable, etc. Se utilizan junto con `Lector de Ledger` para interpretar y transformar datos de ledger. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx index 028f636e5e..335d22b3db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/README.mdx @@ -3,11 +3,11 @@ title: Backend de Ledgers sidebar_position: 10 --- -Un backend de ledger es una fuente de datos del ledger de la red Stellar. El SDK de ingestión admite dos backends de ledger principales, ambos implementando la interfaz [ledgerbackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go). Esta interfaz siempre devuelve los datos del ledger como [LedgerCloseMeta](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends#ledgerclosemeta-structure), que es un objeto de metadatos del ledger codificado en XDR. +Un backend de ledger es una fuente de datos del ledger de la red Stellar. El SDK de ingestión admite dos backends principales de ledger, ambos implementando la interfaz [ledgerbackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go). Esta interfaz siempre devuelve datos del libro mayor como un objeto de metadatos del libro mayor codificado en XDR [LedgerCloseMeta](#ledgerclosemeta-structure). -1. **[Captive Core](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore)** – Invoca el binario `stellar-core` como un subproceso que se conecta a la red Stellar en vivo y obtiene datos de la red (es decir, ledgers). -2. **[BufferedStorageBackend](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend)** – Recupera los metadatos del ledger de almacenamiento en la nube. -3. **[RPCLedgerBackend](/docs/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend)** – Recupera los metadatos del ledger desde un servidor RPC. +1. **[Captive Core](./captivecore.mdx)** – Invoca el binario `stellar-core` como un proceso secundario que se conecta a la red Stellar en vivo y obtiene datos de la red (es decir, libros mayores). +2. **[BufferedStorageBackend](./bufferedstoragebackend.mdx)** – Recupera metadatos del libro mayor desde almacenamiento en la nube. +3. **[RPCLedgerBackend](./rpcledgerbackend.mdx)** – Recupera metadatos del libro mayor desde un servidor RPC. Cada backend tiene sus propios requisitos de configuración y configuración, los cuales se cubren en las siguientes secciones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx index 9e6c913cae..5f1594fa67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/bufferedstoragebackend.mdx @@ -3,7 +3,7 @@ title: AlmacenamientoEnCaché sidebar_position: 5 --- -[BufferedStorageBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/buffered_storage_backend.go) es un backend de ledger en Stellar [ingest SDK](https://github.com/stellar/go/tree/master/ingest) que recupera los metadatos del ledger desde un lago de datos basado en la nube, típicamente completado por [Galexie](/docs/data/indexers/build-your-own/galexie). Mientras que Galaxie actualmente admite solo [GCS](/docs/data/indexers/build-your-own/galexie/admin_guide/configuring), `BufferedStorageBackend` está diseñado para funcionar con cualquier datastore que implemente la [interfaz de datastore](https://github.com/stellar/go/blob/master/support/datastore/datastore.go). Devuelve metadatos del ledger en formato [XDR](https://developers.stellar.org/docs/learn/encyclopedia/data-format/xdr). +[BufferedStorageBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/buffered_storage_backend.go) es un ledger backend en Stellar [ingest SDK](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) que recupera metadatos del ledger desde un data lake basado en la nube, típicamente poblado por [Galexie](../../../galexie/README.mdx). Aunque Galaxie actualmente solo soporta [GCS](../../../galexie/admin_guide/configuring.mdx), `BufferedStorageBackend` está diseñado para funcionar con cualquier datastore que implemente la [interfaz datastore](https://github.com/stellar/go-stellar-sdk/blob/main/support/datastore/datastore.go). Devuelve metadatos del ledger en formato [XDR](../../../../../../learn/fundamentals/data-format/xdr.mdx). ![](/assets/ingest-sdk/bufferedstoragebackend_architecture.png) @@ -12,15 +12,15 @@ sidebar_position: 5 - **Descargas Paralelas**: Descarga múltiples ledgers de forma concurrente y los almacena en memoria para un acceso rápido. Esto es particularmente útil para obtener grandes rangos históricos de ledger. - **Consciente del Esquema**: Lee archivos de múltiples ledgers basados en el esquema del datastore, extrayendo un ledger a la vez. - **Reintentos Automáticos**: Maneja las fallas de las solicitudes volviendo a intentar las solicitudes fallidas. -- **Salida XDR**: Devuelve metadatos del ledger en formato XDR, lo que permite una fácil integración con otros paquetes en el SDK de ingest (por ejemplo, [procesadores](https://github.com/stellar/go/tree/master/ingest/processors)). +- **Salida XDR**: Devuelve metadatos del ledger en formato XDR, facilitando la integración con otros paquetes en ingest SDK (por ejemplo, [processors](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors)). ## Requisitos Previos ### Instalación y Configuración -- Ejecuta Galaxie para exportar datos del ledger al almacenamiento en la nube de GCS. Sigue la [guía de administración de Galaxie](/docs/data/indexers/build-your-own/galexie) para instrucciones sobre cómo ejecutar Galaxie. +- Ejecuta Galaxie para exportar datos del ledger al almacenamiento en la nube de GCS. Sigue la [guía de administración de Galaxie](../../../galexie/README.mdx) para instrucciones sobre cómo ejecutar Galaxie. -- Para los propósitos del código de ejemplo, asegúrate de tener acceso a un lago de datos completado por Galaxie, configurado como un bucket de GCS. Para instrucciones sobre cómo crear un lago de datos, consulta la [guía del administrador de Galaxie](/docs/data/indexers/build-your-own/galexie) . +- Para los propósitos del código de ejemplo, asegúrate de tener acceso a un lago de datos completado por Galaxie, configurado como un bucket de GCS. Para instrucciones sobre cómo crear un data lake, consulta la [guía de administración de Galaxie](../../../galexie/README.mdx). ## Configuración @@ -79,7 +79,7 @@ backendConfig := ledgerbackend.BufferedStorageBackendConfig{ } ``` -Puedes especificar estos valores individualmente o usar la [configuración predeterminada](https://github.com/stellar/go/blob/master/ingest/cdp/producer.go#L29-L46). La configuración predeterminada ajusta automáticamente el número de trabajadores de descarga paralelos y el tamaño del buffer según el tamaño del objeto (número de ledgers por archivo). _Estos valores se basan en pruebas empíricas, pero la configuración óptima puede variar según las condiciones de hardware y red._ +Puedes especificar estos valores individualmente o usar la [configuración predeterminada](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/cdp/producer.go#L29-L46). La configuración predeterminada ajusta automáticamente el número de trabajadores de descarga paralelos y el tamaño del buffer según el tamaño del objeto (número de ledgers por archivo). _Estos valores se basan en pruebas empíricas, pero la configuración óptima puede variar según las condiciones de hardware y red._ ### Uso @@ -95,9 +95,9 @@ import ( "log" "time" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/support/datastore" - "github.com/stellar/go/support/errors" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/support/datastore" + "github.com/stellar/go-stellar-sdk/support/errors" ) func main() { @@ -163,4 +163,4 @@ func main() { } ``` -Para la transmisión en tiempo real de nuevos ledgers usando `BufferedStorageBackend`, consulta el [Código de la Canalización de Ingesta](/docs/build/apps/ingest-sdk/ingestion-pipeline-code). +Para la transmisión en tiempo real de nuevos ledgers usando `BufferedStorageBackend`, consulta el [Código de la Pipeline de Ingesta](../../../../../../build/apps/ingest-sdk/ingestion-pipeline-code.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx index 88f15004be..ce9c59dc96 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/captivecore.mdx @@ -7,15 +7,16 @@ Core cautivo invoca el binario `stellar-core` como un subproceso para transmitir ## Requisitos previos -Usar Core cautivo requiere que el binario stellar-core esté [instalado](/docs/validators/admin-guide/installation) primero. +Usar captive Core requiere que el binario stellar-core esté [instalado](../../../../../../validators/admin-guide/installation.mdx) primero. ### Instalación 1. Instalar Stellar Core: - - Opción 1: Compila desde el código fuente siguiendo la [Guía de instalación](/docs/validators/admin-guide/installation#installing-from-source) - - Opción 2: Instala a través de un gestor de paquetes refiriéndote a la [Guía de instalación basada en paquetes](/docs/validators/admin-guide/installation#package-based-installation) + - Opción 1: Compilar desde el código fuente siguiendo la [Guía de Instalación](../../../../../../validators/admin-guide/installation.mdx#installing-from-source) + - Opción 2: Instalar mediante un gestor de paquetes consultando la [Guía de Instalación basada en paquetes](../../../../../../validators/admin-guide/installation.mdx#package-based-installation) 2. Verificar instalación: + ```bash ./stellar-core version ``` @@ -67,4 +68,4 @@ if err != nil { } ``` -El `captiveStellarCoreBackend` ahora se puede usar para recuperar datos de ledger dentro de un rango especificado. Para un uso detallado, consulta los [ejemplos de código](/docs/data/indexers/build-your-own/ingest-sdk/examples). +El `captiveStellarCoreBackend` ahora se puede usar para recuperar datos de ledger dentro de un rango especificado. Para un uso detallado, consulta los [ejemplos de código](../../examples/README.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx index 12b37ebf5a..db767018a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerbackends/rpcledgerbackend.mdx @@ -3,14 +3,14 @@ title: Backend de ledger RPC sidebar_position: 10 --- -El [RPCLedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/rpc_backend.go) es una implementación de [LedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go) en el [SDK de Ingesta](https://github.com/stellar/go/tree/master/ingest) de Stellar que utiliza un Servidor RPC como fuente de metadatos del ledger. +El [RPCLedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/rpc_backend.go) es una implementación de [LedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go) en Stellar [Ingest SDK](https://github.com/stellar/go-stellar-sdk/tree/main/ingest) que utiliza un servidor RPC como fuente base de metadatos del ledger. -Las aplicaciones pueden usar este backend de ledger para obtener metadatos del ledger de la red Stellar a través de los métodos estándar de la interfaz [LedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/ledger_backend.go). Este backend de ledger se considera el más ligero entre los disponibles ya que solo requiere un cliente HTTP para acceder a un servidor RPC remoto. +Las aplicaciones pueden usar este backend de ledger para obtener metadatos del ledger desde la red Stellar a través de los métodos estándar de la interfaz [LedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/ledger_backend.go). Este backend de ledger se considera el más ligero entre los disponibles ya que solo requiere un cliente HTTP para acceder a un servidor RPC remoto. El uso de RPCLedgerBackend implica conocer la ventana de retención y la configuración del data lake en el servidor RPC remoto, ya que estos aspectos determinan el rango de ledgers accesibles a través de RPCLedgerBackend. - `HISTORY_RETENTION_WINDOW` - Esta es una configuración en el servidor RPC que determina el rango de ledgers retenidos por el RPC en una ventana deslizante desde el más reciente en la red Stellar. Por defecto, se retienen los datos del ledger correspondientes a los últimos 7 días de la red Stellar. -- [Integración de Data Lake](/docs/data/apis/rpc/admin-guide/data-lake-integration) - Si el RPC tiene habilitada la integración con Data Lake, el rango de ledgers disponibles será al menos el de la Ventana de Retención del RPC y se extenderá hacia atrás en el historial hasta el rango mayor proporcionado por el data lake. +- [Integración con Data Lake](../../../../../apis/rpc/admin-guide/data-lake-integration.mdx) - Si el RPC tiene la integración con Data Lake habilitada, entonces el rango de los libros contables disponibles será como mínimo la Ventana de Retención del RPC y se extenderá más atrás en el tiempo hasta el rango mayor proporcionado por el data lake. ## Ejemplo de uso del SDK @@ -21,13 +21,13 @@ El uso de RPCLedgerBackend implica conocer la ventana de retención y la configu ### Código -Un ejemplo funcional que demuestra el uso programático de [RPCLedgerBackend](https://github.com/stellar/go/blob/master/ingest/ledgerbackend/rpc_backend.go) para imprimir un flujo de los últimos ledgers emitidos desde la red Stellar Testnet. Observa el uso adicional del [Cliente RPC Go](https://github.com/stellar/stellar-rpc/blob/main/client/main.go) que usa la misma URL RPC para obtener el último ledger del servidor RPC. Esto se usa para preparar nuestro ejemplo de streaming en vivo para usar el ledger conocido más reciente en RPC como el ledger inicial cuando se solicita el rango ilimitado. +Un ejemplo funcional que muestra el uso programático de [RPCLedgerBackend](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledgerbackend/rpc_backend.go) para imprimir un flujo de los últimos ledgers emitidos desde la Red de Pruebas Stellar. Observa el uso adicional del [Cliente RPC Go](https://github.com/stellar/stellar-rpc/blob/main/client/main.go) que usa la misma URL RPC para obtener el último ledger del servidor RPC. Esto se usa para preparar nuestro ejemplo de streaming en vivo para usar el ledger conocido más reciente en RPC como el ledger inicial cuando se solicita el rango ilimitado. Requisitos previos: 1. Crea un directorio vacío llamado `rpc-backend` y entra en el directorio con `cd`. 2. Ejecuta `go mod init example/rpc-backend` -3. Ejecuta `go get github.com/stellar/go github.com/stellar/stellar-rpc@rpcclient-v23.0.0` +3. Ejecuta `go get github.com/stellar/go-stellar-sdk@latest` 4. Copia este fragmento de código en `rpc_ledger_backend_demo.go` ```go @@ -38,8 +38,8 @@ import ( "fmt" "log" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/stellar-rpc/client" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + client "github.com/stellar/go-stellar-sdk/clients/rpcclient" ) func main() { diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx index 734fd6482f..b79ea79a20 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/developer_guide/ledgerreaders.mdx @@ -5,8 +5,8 @@ sidebar_position: 15 Estos lectores están diseñados para extraer datos del ledger de Stellar de una manera estructurada y permiten iterar sobre los cambios del ledger. -- [LedgerTransactionReader](https://github.com/stellar/go/blob/master/ingest/ledger_transaction_reader.go): Extrae transacciones de una secuencia de ledger específica. Recupera el conjunto de transacciones de `LedgerCloseMeta` y proporciona un iterador para acceder a cada transacción individual. +- [LedgerTransactionReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledger_transaction_reader.go): Extrae transacciones de una secuencia específica del libro mayor. Recupera el conjunto de transacciones de `LedgerCloseMeta` y proporciona un iterador para acceder a cada transacción individual. -- [LedgerChangeReader](https://github.com/stellar/go/blob/master/ingest/ledger_change_reader.go): Proporciona un registro completo de todos los cambios de entradas de ledger dentro de un ledger, incluidos aquellos de transacciones, tarifas, actualizaciones y otras operaciones a nivel de red. Procesa `LedgerCloseMeta` para extraer `LedgerEntryChanges`. +- [LedgerChangeReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/ledger_change_reader.go): Proporciona un registro completo de todos los cambios en las entradas del libro mayor dentro de un libro, incluidos los de transacciones, tarifas, actualizaciones y otras operaciones a nivel de red. Procesa `LedgerCloseMeta` para extraer `LedgerEntryChanges`. -- [CheckpointChangeReader](https://github.com/stellar/go/blob/master/ingest/checkpoint_change_reader.go): Lee entradas de ledger desde archivos de historial en un ledger de punto de control, permitiendo a los desarrolladores reconstruir el estado (cuentas, líneas de confianza, etc.) en un momento específico. +- [CheckpointChangeReader](https://github.com/stellar/go-stellar-sdk/blob/main/ingest/checkpoint_change_reader.go): Lee las entradas del libro mayor de los buckets del archivo histórico en un libro de punto de control, permitiendo a los desarrolladores reconstruir el estado (cuentas, líneas de confianza, etc.) en un momento específico. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/README.mdx index 51241cdf51..f41caf3aba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/README.mdx @@ -1,6 +1,7 @@ --- title: Ejemplos de uso sidebar_position: 10 +sidebar_key: ingest-sdk-example-usages --- Esta sección muestra casos de uso reales del Ingest SDK, enfocándose en componentes clave como `ingest.LedgerTransaction`, `ingest.LedgerChange`, `ingest.LedgerTransactionReader` y `ingest.ChangeReader`. @@ -11,15 +12,9 @@ Estos ejemplos toman un Stellar Ledger (`xdr.LedgerCloseMeta`) o un rango de sec Algunos de los ejemplos listados aquí podrían invocar el binario `stellar-core`. Consulta la "guía de administración" para más detalles sobre cómo compilar `stellar-core` para tu plataforma. -El Ingest SDK es actualmente parte del [Stellar Go Repo](https://github.com/stellar/go), que incluye varios paquetes además del Ingest SDK. Deberás incluir lo siguiente en el archivo `go.mod` de tu base de código. +El [Stellar Ingest SDK](https://github.com/stellar/go-stellar-sdk) es un módulo de go e incluye varios paquetes además del SDK de ingestión. Necesitarás incluir el módulo en tu proyecto go `go.mod`. +```bash +go get github.com/stellar/go-stellar-sdk@latest +go mod tidy ``` -//filename: go.mod - -require ( - github.com/stellar/go v0.0.0-20250206032706-4e70599a66af -) - -``` - -Puede que quieras ejecutar opcionalmente `go mod tidy` en tu base de código para obtener la última versión del paquete de ingest. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx index a0b1f38503..38dbdcfc8c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/changes.mdx @@ -5,8 +5,6 @@ sidebar_position: 30 Este código invoca el binario `stellar-core` (según lo configurado en `ledgerbackend.CaptiveCoreConfig`) para reproducir ledgers desde un rango de ledger dado. Utiliza el `ingest.LedgerChangeReader` para leer cambios de cada ledger (`xdr.LedgerCloseMeta`) y categoriza los cambios según si representan entradas de ledger creadas, actualizadas o eliminadas. La estructura `ingest.Change` se utiliza para capturar cambios individuales, y el código rastrea varios tipos de cambios, como los relacionados con tarifas, transacciones u operaciones. - - ```go // Filename: change_entries.go @@ -16,10 +14,10 @@ import ( "context" "encoding/json" "fmt" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/network" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/xdr" "io" ) @@ -147,8 +145,6 @@ func main() { } ``` - - **Respuesta de Ejemplo:** ```bash diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx index a497dc315d..9f4b727fea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/ledger_entry_statistics.mdx @@ -5,8 +5,6 @@ sidebar_position: 20 Este ejemplo se conecta al Stellar History Archive e inicializa un lector de cambios de punto de control con `ingest.NewCheckpointChangeReader` para leer los cambios de entradas del ledger de una imagen del archivo de historial que ocurre en un ledger de punto de control dado. Itera sobre los cambios del ledger, procesando diferentes tipos de entrada como `Account`, `ClaimableBalance`, `Trustline` y `Offer`, utilizando la estructura `ingest.Change`. El código rastrea estadísticas en una estructura `entriesInfo`, contando las entradas totales y tipos específicos. - - ```go // Filename: ledger_entries.go @@ -16,11 +14,11 @@ import ( "context" "encoding/json" "fmt" - "github.com/stellar/go/historyarchive" - "github.com/stellar/go/ingest" - "github.com/stellar/go/network" - "github.com/stellar/go/support/storage" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/historyarchive" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/support/storage" + "github.com/stellar/go-stellar-sdk/xdr" "io" ) @@ -111,8 +109,6 @@ func main() { } ``` - - **Respuesta de ejemplo:** ```bash @@ -125,5 +121,4 @@ Processed 40123000 ledger entry changes... "NumClaimableBalances": 7559287, "NumOffers": 1053870 } - ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx index 692685622f..2cabca7ca3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/ingest-sdk/examples/transaction_statistics.mdx @@ -5,8 +5,6 @@ sidebar_position: 10 Este ejemplo ilustra cómo ejecutar y conectarte a un nodo observador de la red Stellar, conocido como 'captive core' utilizando `ledgerbackend.CaptiveStellarCore`. Luego solicita que se reproduzca un rango histórico limitado de ledgers. La instancia de captive core emitirá un flujo de metadatos de ledger (`xdr.LedgerCloseMeta`) que contiene las transacciones por ledger en el rango. Lee las transacciones de cada ledger utilizando `ingest.LedgerTransactionReader`, las categoriza como exitosas o fallidas, y rastrea las operaciones asociadas con cada transacción. - - ```go // Filename: transaction_statistics.go @@ -15,13 +13,13 @@ package main import ( "context" "fmt" - "github.com/stellar/go/network" + "github.com/stellar/go-stellar-sdk/network" "io" "github.com/sirupsen/logrus" - "github.com/stellar/go/ingest" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/support/log" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/support/log" ) func panicIf(err error) { @@ -111,8 +109,6 @@ func main() { } ``` - - **Ejemplo de respuesta:** ```bash diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx index 500ca5af36..9133bf9d84 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## Descripción general -El Procesador de Transferencia de Tokens (TTP) es un [paquete Go](https://github.com/stellar/go/tree/ttp-v1.0.0/ingest/processors/token_transfer) que utiliza el [ingest-sdk](../../ingest-sdk/README.mdx) para analizar los datos de transacciones de la red Stellar y derivar eventos de transferencia de tokens. Antes del TTP, los desarrolladores tenían que analizar manualmente datos complejos del ledger, resultados de operaciones y cambios en las entradas del ledger para entender cuándo y cómo se movía el valor entre cuentas, contratos y otras entidades en la red. +El Procesador de Transferencia de Tokens (TTP) es un [paquete Go](https://github.com/stellar/go-stellar-sdk/tree/main/ingest/processors/token_transfer) que utiliza el [ingest-sdk](../../ingest-sdk/README.mdx) para analizar datos de transacciones en la red Stellar y derivar eventos de transferencia de tokens. Antes del TTP, los desarrolladores tenían que analizar manualmente datos complejos del ledger, resultados de operaciones y cambios en las entradas del ledger para entender cuándo y cómo se movía el valor entre cuentas, contratos y otras entidades en la red. Antes de [CAP-67 Eventos Unificados][cap67], rastrear transferencias de tokens requería lógica personalizada significativa para manejar distintos tipos de operaciones, interpretar cambios en el ledger y reconstruir el flujo de activos. CAP-67 introdujo un formato estandarizado de eventos que simplifica este proceso al proporcionar una manera unificada de representar todas las actividades de transferencia de tokens. @@ -43,7 +43,7 @@ Para más detalles sobre los modos de operación, consulta la sección [Modos de ## Eventos -TTP genera eventos en las vinculaciones de Go basándose en las [definiciones protobuf](https://github.com/stellar/go/blob/ttp-v1.0.0/protos/ingest/processors/token_transfer/token_transfer_event.proto). Las definiciones codifican un IDL para los modelos estandarizados de eventos de transferencia de tokens propuestos en CAP-67. Cada evento contiene metadatos e información específica del tipo estructurada de la siguiente manera: +TTP genera eventos en enlaces Go basándose en las [definiciones protobuf](https://github.com/stellar/go-stellar-sdk/blob/main/protos/ingest/processors/token_transfer/token_transfer_event.proto). Las definiciones codifican un IDL para los modelos estandarizados de eventos de transferencia de tokens propuestos en CAP-67. Cada evento contiene metadatos e información específica del tipo estructurada de la siguiente manera: | Tipo de evento | Descripción | Campos clave | Cuándo se genera | | ------------------------ | --------------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx index 78a4ac7acc..577a87f4b6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/README.mdx @@ -1,31 +1,30 @@ --- title: Ejemplos de uso sidebar_position: 10 +sidebar_key: token-transfer-processor-example-usages --- Esta sección contiene ejemplos de cómo puede usarse Token Transfer Processor en la lógica de tu aplicación ## Requisitos previos +Tienes un módulo go existente en el directorio actual o crea un nuevo módulo localmente para este ejercicio de ejemplo. + +```bash +go mod init example/ttp_processor ``` -//filename: go.mod -require ( - // This currently points to a RC release of Whisk, Protocol 23. - // Please update it to use the latest stable version once Whisk, Protocol 23 is released to mainnet. - github.com/stellar/go horizonclient-v23.0.0-rc -) +Incluye el SDK de Stellar Ingest en el módulo de tu aplicación Go que contiene el Procesador de Transferencias de Token. +```bash +go get github.com/stellar/go-stellar-sdk@latest +go mod tidy ``` -Opcionalmente, puedes ejecutar `go mod tidy` en tu base de código para obtener la última versión del paquete ingest. - ## Código auxiliar Esta sección contiene algo de código auxiliar que se usará en todos los ejemplos. - - ```go package main @@ -33,10 +32,10 @@ import ( "context" "fmt" - "github.com/stellar/go/ingest/ledgerbackend" - "github.com/stellar/go/processors/token_transfer" - "github.com/stellar/go/support/log" - "github.com/stellar/go/xdr" + "github.com/stellar/go-stellar-sdk/ingest/ledgerbackend" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/support/log" + "github.com/stellar/go-stellar-sdk/xdr" "google.golang.org/protobuf/encoding/protojson" ) @@ -80,5 +79,3 @@ func printProtoEvent(event *token_transfer.TokenTransferEvent) { fmt.Println(string(jsonBytes)) } ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx index 5a3224062e..5b66098f0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats.mdx @@ -5,8 +5,6 @@ sidebar_position: 10 Este ejemplo obtiene un ledger específico de Stellar y usa el Procesador de Transferencia de Tokens para extraer todos los eventos de movimiento de tokens de él. El código procesa cada evento, los categoriza por tipo (transferencias, creaciones, quemas, recuperaciones, tarifas) e imprime tanto los detalles individuales de cada evento como estadísticas resumidas. Esto demuestra el uso básico de EventsFromLedger() para analizar toda la actividad de activos dentro de un solo ledger. - - ```go package main @@ -14,8 +12,8 @@ import ( "fmt" "strings" - "github.com/stellar/go/network" - "github.com/stellar/go/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" ) func main() { @@ -81,7 +79,4 @@ func main() { fmt.Printf("Fees: %d\n", feeCount) fmt.Printf("Refunds: %d\n", refundCount) } - ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx index 026bfb1d0c..5e022a8325 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events.mdx @@ -20,8 +20,6 @@ El sistema de filtrado usa tipos de datos Stellar del SDK Go de Stellar para una - **Coincidencia por tipo de evento**: Usa las constantes reales del tipo de evento del paquete token_transfer (por ejemplo, `token_transfer.TransferEvent`) - **Filtrado por contrato**: Coincide con direcciones exactas de contrato de los metadatos del evento - - ```go package main @@ -31,11 +29,11 @@ import ( "log" "strings" - assetPkg "github.com/stellar/go/asset" - "github.com/stellar/go/ingest" - "github.com/stellar/go/network" - "github.com/stellar/go/processors/token_transfer" - "github.com/stellar/go/xdr" + assetPkg "github.com/stellar/go-stellar-sdk/asset" + "github.com/stellar/go-stellar-sdk/ingest" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/processors/token_transfer" + "github.com/stellar/go-stellar-sdk/xdr" ) // FilterOptions defines the filtering criteria @@ -219,7 +217,4 @@ func main() { EventType: "fee", }) } - ``` - - diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/anchors.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/anchors.mdx index a660f6a3ec..223870ae13 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/anchors.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/anchors.mdx @@ -15,7 +15,7 @@ Stellar tiene servicios de anclaje operando en todo el mundo. View the [Anchor D Los anclajes pueden emitir sus propios activos en la red Stellar, o pueden honrar activos que ya existen. -Puedes configurar un ancla utilizando la [Anchor Platform](/platforms/anchor-platform) mantenida por la SDF, que es la forma más fácil de implementar un servicio de ancla compatible con las Propuestas del Ecosistema Stellar (SEPs). +Puedes configurar un anchor utilizando la [Anchor Platform](../../platforms/anchor-platform/README.mdx) mantenida por SDF, que es la forma más sencilla de desplegar un servicio de anchor compatible con las Propuestas del Ecosistema Stellar (SEP). Aprende cómo integrar servicios de anclaje en tu aplicación basada en blockchain consultando la [sección Construir Apps](../../build/apps/overview.mdx). Si buscas MoneyGram Ramps, consulta el tutorial de integración con [MoneyGram Ramps](https://developer.moneygram.com/moneygram-developer/docs/integrate-moneygram-ramps). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/authorization.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/authorization.mdx index dc71628000..9a420e37b4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/authorization.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/authorization.mdx @@ -16,10 +16,10 @@ Consulta la [guía inicial de autorización](../../../build/guides/auth/contract Soroban tiene como objetivo proporcionar un marco liviano, pero flexible y extensible que permita a los contratos implementar reglas de autorización arbitrariamente complejas, mientras ofrece una implementación integrada para algunas tareas comunes (como la prevención de reproducción). El marco consta de los siguientes componentes: - Autorización específica de contratos: reglas de autorización personalizadas implementadas por contratos usando el almacenamiento privado del contrato y cuentas abstractas. -- Abstracción de cuentas: permite a los usuarios personalizar sus reglas de autenticación y definir políticas universales de autorización mediante contratos personalizados de cuenta (esto incluye el soporte integrado para las cuentas Stellar). -- Biblioteca de autorización basada en el host: garantiza la integridad entre las cuentas personalizadas y los contratos regulares. También define el formato estructurado de la carga útil de la firma, asegura la prevención de reproducción y se encarga de proporcionar los contextos de firma correctos. +- Abstracción de cuenta: permite a los usuarios personalizar sus reglas de autenticación y definir políticas universales de autorización mediante cuentas contrato. Esto incluye el soporte incorporado para cuentas Stellar. +- Biblioteca de autorización basada en host: garantiza la integridad entre cuentas contrato y contratos regulares. También define el formato estructurado de la carga útil de la firma, asegura la prevención de reproducción y se encarga de proporcionar los contextos de firma correctos. -El host Soroban también proporciona algunas funciones criptográficas (verificación de firmas, hashing) que pueden ser útiles para la implementación de cuentas personalizadas. +El host de Soroban también proporciona algunas funciones criptográficas (verificación de firmas, hashing) que pueden ser útiles para implementaciones de cuentas contrato. Los contratos que usan el marco de autorización Soroban son interoperables entre sí. Además, es más fácil para las aplicaciones cliente escribir código genérico para interactuar con el marco de autorización Soroban. Por ejemplo, las billeteras pueden implementar una forma generalizada de presentar y firmar cargas útiles Soroban. @@ -105,23 +105,23 @@ Corresponde a `Address::Contract`. Este es un caso especial de 'cuenta' que puede aparecer sólo cuando un contrato llama a otro contrato. Consideramos que dado que el contrato hace la llamada, debe estar autorizándola (de lo contrario, no debería haber hecho esa llamada). Por lo tanto, todas las llamadas a `require_auth` hechas en nombre del contrato invocador **directo** `Address` se consideran autorizadas (pero no las llamadas en nombre de contratos más profundos en la pila). -##### Cuenta Personalizada +##### Cuenta contrato Corresponde a `Address::Contract`. -Este es el punto de extensión de la abstracción de cuentas. La cuenta personalizada es un contrato especial que implementa el método `__check_auth`. Si algún contrato llama a `require_auth` para el `Address` de este contrato, el host Soroban llamará a `__check_auth` con los argumentos correspondientes. +Este es el punto de extensión de la abstracción de cuentas. Un contrato que implementa la `CustomAccountInterface` y `__check_auth` se convierte en una cuenta contrato. Si algún contrato llama a `require_auth` para la `Address` de este contrato, el host de Soroban llamará a `__check_auth` con los argumentos correspondientes. `__check_auth` recibe una carga útil de firma, una lista de firmas (en cualquier formato definido por el usuario) y una lista de las invocaciones de contrato que están siendo autorizadas por estas firmas. Su responsabilidad es realizar la autenticación verificando las firmas y también (opcionalmente) aplicar una política de autorización personalizada. Por ejemplo, se puede implementar un sistema de pesos de firmas similar al de Stellar, pero también puede tener reglas personalizables para los pesos, por ejemplo, permitir gastar más de X unidades del token Y solo dado un peso de firma Z. -La cuenta personalizada también puede ser tratada como una billetera inteligente custodia. Mantiene los fondos del usuario (saldos de tokens, NFTs, etc.) y brinda a los usuarios formas de autorizar operaciones sobre estos fondos. Dicho esto, nada impide que las cuentas personalizadas autoricen operaciones que no tengan nada que ver con saldos, por ejemplo, pueden usarse para realizar funciones administrativas para tokens (no olvides que la cuenta personalizada simplemente define qué hacer cuando se llama a `require_auth`). +Las cuentas contrato también pueden considerarse como una billetera custodial. Mantiene los fondos del usuario (saldos de tokens, NFTs, etc.) y brinda a los usuarios formas de autorizar operaciones sobre estos fondos. Nada impide que las cuentas contrato autoricen operaciones no relacionadas con los saldos; por ejemplo, pueden realizar funciones administrativas para tokens (las cuentas contrato definen qué hacer cuando se llama a `require_auth`). -Para la interfaz exacta y más detalles, consulta el [ejemplo de cuenta personalizada]. +Para la interfaz exacta y más detalles, consulta el [ejemplo de cuenta simple]. -[ejemplo de cuenta personalizada]: ../../../build/smart-contracts/example-contracts/custom-account.mdx +[Ejemplo de cuenta simple]: ../../../build/smart-contracts/example-contracts/simple-account.mdx -### Secp256r1, passkeys y billeteras inteligentes +### Secp256r1, passkeys y cuentas contrato -Después de una exitosa votación de validadores públicos para actualizar la red principal Stellar al Protocolo 21, se habilitó el esquema de firma secp256r1 para transacciones de contratos inteligentes. Esto permite a los desarrolladores implementar passkeys para firmar transacciones en lugar de usar claves secretas o frases semilla. La documentación oficial está en desarrollo, consulta toda la información sobre passkeys y billeteras inteligentes en la página de [Smart Wallets](../../../build/apps/smart-wallets.mdx) en la documentación. +Después de una exitosa votación de validadores públicos para actualizar la red principal Stellar al Protocolo 21, se habilitó el esquema de firma secp256r1 para transacciones de contratos inteligentes. Esto permite a los desarrolladores implementar passkeys para firmar transacciones en lugar de usar claves secretas o frases semilla. Para orientación, consulta la [guía de billetera passkey](../../../build/guides/contract-accounts/smart-wallets.mdx). ### Conceptos Avanzados diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx index 39d5d46094..875ae47b05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/errors-and-debugging/debugging-errors.mdx @@ -11,7 +11,7 @@ Para entender cómo depurar errores de Soroban, primero debemos comprender cómo El proceso típico de envío de una transacción puede dividirse en los siguientes pasos secuenciales, excluyendo interacciones externas como las interacciones con carteras. Cada paso tiene su propio conjunto de posibles errores: 1. **Simulación de transacción (opcional):** - - **Qué sucede:** Este paso implica ejecutar el endpoint RPC [`simulateTransaction`](../../../../data/apis/rpc/api-reference/methods/simulateTransaction). El endpoint ejecuta una transacción en modo "simulación" del host y registra las entradas necesarias del libro mayor, las instrucciones de CPU y las autorizaciones requeridas. El resultado final es similar a ejecutar transacciones en Core con recursos máximos, acceso irrestricto al libro mayor y sin tarifas. + - **Qué sucede:** Este paso implica ejecutar el punto final RPC [`simulateTransaction`](../../../../data/apis/rpc/api-reference/methods/simulateTransaction.mdx). El endpoint ejecuta una transacción en modo "simulación" del host y registra las entradas necesarias del libro mayor, las instrucciones de CPU y las autorizaciones requeridas. El resultado final es similar a ejecutar transacciones en Core con recursos máximos, acceso irrestricto al libro mayor y sin tarifas. - **Fallos comunes:** Los errores suelen implicar superar el límite de la red o problemas de lógica en el contrato. 2. **Core acepta la transacción:** @@ -26,7 +26,7 @@ El proceso típico de envío de una transacción puede dividirse en los siguient - **Qué sucede:** Core ejecuta la transacción incluida. - **Fallos comunes:** Este paso tiene la gama más amplia de errores potenciales. Los fallos pueden incluir acceso a entradas archivadas, agotamiento de recursos, acceso a entradas fuera de la huella especificada o fallos lógicos dentro del contrato. -_Para más información sobre tarifas, visita [Tarifas, límites de recursos y medición](https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee)._ +_Para obtener más información sobre las tarifas, visita [Tarifas, límites de recursos y medición](../../fees-resource-limits-metering.mdx#inclusion-fee)._ ## Errores detallados de Soroban diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/overview.mdx index b6db3148a9..7a87de339f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/overview.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/overview.mdx @@ -57,7 +57,9 @@ El Wasm de un contrato Stellar contiene secciones personalizadas dedicadas. Prop - Meta del contrato - Especificación del contrato -![Información del contrato](/assets/contract/contract-info.png) _Explora la información del contrato en el [Explorador de contratos de Stellar Lab](https://lab.stellar.org/smart-contracts/contract-explorer?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&rpcUrl=https:////soroban-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;;)._ +![Contract Info Meta](/assets/contract/contract-info-meta.png) ![Contract Info Spec](/assets/contract/contract-info-spec.png) + +_Explora la información del contrato en el [Explorador de Contratos de Stellar Lab](https://lab.stellar.org/smart-contracts/contract-explorer)._ ### Meta del entorno diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/persisting-data.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/persisting-data.mdx index 9126e6fc06..12d50b7aca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/persisting-data.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/persisting-data.mdx @@ -55,7 +55,7 @@ Aunque no existe distinción entre estado "de cuenta" y estado "compartido" a ni - Estado compartido solo por un subconjunto específico de usuarios - Valores del pool AMM en un contrato monolítico AMM (estilo Uniswap V4) - Nota: A veces el estado de cuenta y el estado compartido pueden fusionarse cuando el ámbito del contrato es pequeño - - Es decir, billetera inteligente o un solo NFT, donde se genera una nueva instancia de contrato para cada cuenta + - Es decir, una cuenta de contrato o un solo NFT, donde se genera una nueva instancia de contrato para cada cuenta ### Contratos propiedad vs. contratos autónomos @@ -63,7 +63,7 @@ Además de los tipos de estado, también es útil considerar el tipo de instanci - Contratos propiedad - Instancias de contratos que tienen un propietario claro - - Una billetera inteligente o un solo NFT, donde se genera una nueva instancia de contrato para cada cuenta + - Una cuenta de contrato o un solo NFT, donde se genera una nueva instancia de contrato para cada cuenta - Activos respaldados por reservas personalizadas (USDC, etc.) - Contratos autónomos - Instancias de contratos que no tienen un propietario claro o tienen un grupo descentralizado de propietarios diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/state-archival.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/state-archival.mdx index 62c8e79c46..6f03b64443 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/state-archival.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/contract-development/storage/state-archival.mdx @@ -222,7 +222,7 @@ Recuerda que, sin embargo, cualquier combinación de estos escenarios puede ocur ### Preparación -Para facilitar la estructura del código, reutilizaremos la función rudimentaria de sondeo de transacciones con reintentos `submitTx` que describimos en [otra guía](/build/guides/transactions/submit-transaction-wait-js.mdx). +Para facilitar la estructuración del código, reutilizaremos la función básica de sondeo de transacciones con reintentos habilitados `submitTx`, que describimos en [otra guía](../../../../build/guides/transactions/submit-transaction-wait-js.mdx). En el siguiente código, también aprovecharemos [`Server.prepareTransaction`](https://stellar.github.io/js-stellar-sdk/module-rpc.Server.html#prepareTransaction). Este es un método útil que, dado un transaction, lo simula, luego modifica la transacción con los resultados de la simulación (tarifas, etc.) y devuelve eso. Luego, sólo puede firmarse y enviarse. También usaremos [`SorobanDataBuilder`](https://stellar.github.io/js-stellar-sdk/SorobanDataBuilder.html), una abstracción conveniente que nos permite usar un [patrón Builder](https://es.wikipedia.org/wiki/Patr%C3%B3n_builder) para establecer las huellas de almacenamiento apropiadas para una transacción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr-json.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr-json.mdx index 30f37b4551..08796e406a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr-json.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr-json.mdx @@ -3,8 +3,6 @@ title: XDR-JSON sidebar_position: 2 --- -import { CodeExample } from "@site/src/components/CodeExample"; - El esquema XDR-JSON está definido por la [biblioteca stellar-xdr](https://docs.rs/stellar-xdr) y proporciona un método reversible para convertir valores Stellar [XDR] a JSON y convertir ese JSON de vuelta al XDR idéntico. La conversión con el esquema también está disponible en las siguientes herramientas y bibliotecas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr.mdx index baec27ca5c..91a32a2521 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/data-format/xdr.mdx @@ -3,8 +3,6 @@ title: XDR sidebar_position: 1 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Stellar almacena y comunica datos del libro mayor, transacciones, resultados, historial y mensajes en un formato binario llamado External Data Representation (XDR). XDR está definido en [RFC4506]. XDR está optimizado para el rendimiento en la red pero no es legible para humanos. Los SDKs de Stellar convierten los XDR en formatos más amigables. ## .X files diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx index 672fb57620..b4daa6be82 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools.mdx @@ -7,8 +7,6 @@ sidebar_position: 100 # Liquidez en Stellar: SDEX y Fondos de Liquidez -import { CodeExample } from "@site/src/components/CodeExample"; - :::note Esta sección se enfoca específicamente en la liquidez relacionada con el AMM y el SDEX desarrollados en el protocolo Stellar y no incluye información sobre contratos inteligentes. @@ -125,7 +123,7 @@ Hay varias posibilidades respecto a la autorización. El comportamiento de la tr | Las trustlines para A y B están totalmente autorizadas | Sin restricciones para depósito y retirada de fondos | | La trustline para A está totalmente autorizada pero la trustline para B está autorizada para mantener responsabilidades | Las trustlines para A y B están autorizadas para mantener responsabilidades | | La trustline para B está totalmente autorizada pero la trustline para A está autorizada para mantener responsabilidades | Las trustlines para A y B están autorizadas para mantener responsabilidades | -| Las trustlines para A y B están autorizadas para mantener responsabilidades | Las trustlines para A y B están autorizadas para mantener responsabilidades | +| Las trustlines para A y B están autorizadas para mantener pasivos | Las trustlines para A y B están autorizadas para mantener pasivos | | La trustline para A no está autorizada o no existe | La trustline de participación del fondo no existe | | La trustline para B no está autorizada o no existe | La trustline de participación del fondo no existe | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/lumens.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/lumens.mdx index 09a90de0f4..f0674d1b80 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/lumens.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/lumens.mdx @@ -39,12 +39,10 @@ Cuando cierras una subentrada, la reserva base asociada se añadirá a tu saldo ## Alquiler -Los datos de contratos inteligentes no requieren reservas base para residir en el ledger, por lo que cada entrada de contrato inteligente debe pagar alquiler en su lugar. El alquiler cobrado por una entrada para existir en el ledger se basa en cuán grande es la entrada y cuánto tiempo debería estar en vivo en el ledger antes de ser archivada. Existen diferentes requisitos de renta para cada tipo de almacenamiento `Persistent`, `Temporary` e `Instance`, sobre los cuales puedes leer en la [sección de Archivo del Estado](../fundamentals/contract-development/storage/state-archival.mdx). +Los datos de contratos inteligentes no requieren reservas base para residir en el ledger, por lo que cada entrada de contrato inteligente debe pagar alquiler en su lugar. La renta cobrada por que una entrada exista en el ledger se basa en el tamaño de la entrada y en cuánto tiempo debe estar en vivo en el ledger antes de ser archivada. Existen diferentes requisitos de renta para cada tipo de almacenamiento `Persistent`, `Temporary` e `Instance`, sobre los cuales puedes leer en la [sección de Archivo del Estado](../fundamentals/contract-development/storage/state-archival.mdx). ## Métricas de Suministro de Lumens -import { CodeExample } from "@site/src/components/CodeExample"; - Esta sección explica cómo se calculan las métricas de suministro de lumens y se ponen a disposición a través de API. Esta información puede ser útil para productos y servicios que rastrean la distribución de XLM, incluidos los agregadores de capitalización de mercado y algunos exchanges, o para cualquiera que desee investigar la distribución de XLM definida por el mandato del SDF. A diferencia de muchas otras blockchains, la moneda nativa de la red no se crea mediante minería: todos los XLM que han existido y existirán se crearon cuando la red Stellar se puso en vivo. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-consensus-protocol.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-consensus-protocol.mdx index 2793591142..c2891d2213 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-consensus-protocol.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-consensus-protocol.mdx @@ -61,9 +61,15 @@ A node can have four opinions on a statement (let’s call the statement “A” Para transitar entre los estados anteriores, la votación federada tiene las siguientes reglas: - Vote for A if it is consistent with my previous votes + - Acepta A si alguna de estas opciones: - - Cada nodo en mi slice de cuórum votó por o aceptó A, O + + - Cada nodo en mi Quorum Slice votó o aceptó A + + O + - My blocking set accepted A (even if I voted for something that contradicts A in the past, I forget about that vote, and proceed with accepting A) + - Confirm A if every node in a quorum slice accepted A ## Rondas de consenso diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/accounts.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/accounts.mdx index 0ae00dd617..55203fb2a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/accounts.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/accounts.mdx @@ -13,7 +13,7 @@ Para aprender sobre los requisitos de saldo mínimo, [consulta nuestra sección :::note -Hay dos tipos de cuentas en Stellar: cuentas Stellar (direcciones `G...`) y [cuentas de contrato (direcciones `C...`)](../../../build/smart-contracts/example-contracts/custom-account.mdx). Esta sección se centra en las cuentas `G...` de Stellar. +Hay dos tipos de cuentas en Stellar: cuentas Stellar (direcciones que comienzan con `G...`) y cuentas de contrato (direcciones que comienzan con `C...`). Para una introducción mínima a las cuentas de contrato, comienza con el [ejemplo de Cuenta Simple](../../../build/smart-contracts/example-contracts/simple-account.mdx). Esta sección se centra en las cuentas `G...` de Stellar. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/assets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/assets.mdx index bbeb5f238b..83f7a39a10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/assets.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-data-structures/assets.mdx @@ -13,8 +13,6 @@ El término "custom token" ha sido reemplazado por "contract token". Ve la conve # Activos -import { CodeExample } from "@site/src/components/CodeExample"; - Las cuentas en la red Stellar pueden ser utilizadas para rastrear, mantener y transferir cualquier tipo de activo. Los activos pueden representar muchas cosas: criptomonedas (como bitcoin o ether), monedas fiduciarias (como dólares o pesos), otros tokens de valor (como NFTs), participaciones en fondos o bonos y acciones. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-stack.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-stack.mdx index 812c0a6106..c0ec79a2b2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-stack.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/stellar-stack.mdx @@ -37,7 +37,7 @@ SDF no proporciona un punto final de RPC disponible públicamente para Mainnet. :::warning -Horizon se considera obsoleto en favor de Stellar RPC. Aunque seguirá recibiendo actualizaciones para mantener la compatibilidad con las próximas versiones del protocolo, no recibirá desarrollo significativo de nuevas funciones. +Horizon se acerca al final de su vida útil y finalmente será relegado en favor de Stellar RPC y las [APIs de Portfolio](../../data/indexers/README.mdx#portfolio-apis). Aunque continuará recibiendo actualizaciones para mantener la compatibilidad con los próximos lanzamientos del protocolo, no recibirá desarrollo de nuevas funcionalidades. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/list-of-operations.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/list-of-operations.mdx index 7b16304401..377d6e133c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/list-of-operations.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/list-of-operations.mdx @@ -23,7 +23,7 @@ Todas estas operaciones tienen un parámetro opcional de cuenta fuente. Si el pa Crea y financia una nueva cuenta con el saldo inicial especificado -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.createAccount) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreateAccountOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#CreateAccount)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.createAccount) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreateAccountOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#CreateAccount)\ **Umbral**: Medio\ **Resultado**: `CreateAccountResult`\ **Parámetros**: @@ -46,7 +46,7 @@ Crea y financia una nueva cuenta con el saldo inicial especificado Envía una cantidad en un activo específico a una cuenta de destino -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.payment) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PaymentOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#Payment)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.payment) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PaymentOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#Payment)\ **Umbral**: Medio\ **Resultado**: `PaymentResult`\ **Parámetros**: @@ -76,7 +76,7 @@ Un pago en el que el activo enviado puede ser diferente del activo recibido; per Obtén más información sobre pagos por rutas: [Guía de Pagos por Rutas](../../../build/guides/transactions/path-payments.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictSend) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictSendOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictSend)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictSend) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictSendOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#PathPaymentStrictSend)\ **Umbral**: Medio\ **Resultado**: `PathPaymentStrictSendResult`\ **Parámetros**: @@ -112,7 +112,7 @@ Un pago en el que el activo recibido puede ser diferente del activo enviado; per Obtén más información sobre pagos por rutas: [Guía de Pagos por Rutas](../../../build/guides/transactions/path-payments.mdx) -**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictReceive) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictReceiveOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictReceive)\ +**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictReceive) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/PathPaymentStrictReceiveOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#PathPaymentStrictReceive)\ **Umbral**: Medio\ **Resultado**: `PathPaymentStrictReceiveResult`\ **Parámetros**: @@ -148,7 +148,7 @@ Crea, actualiza o elimina una oferta para comprar una cantidad específica de un Obtén más información sobre ofertas de venta pasivas: [Fondos de Liquidez en Stellar: SDEX y Fondos de Liquidez](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageBuyOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageBuyOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageBuyOffer)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageBuyOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageBuyOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageBuyOffer)\ **Umbral**: Medio\ **Resultado**: `ManageBuyOfferResult`\ **Parámetros**: @@ -182,7 +182,7 @@ Crea, actualiza o elimina una oferta para vender una cantidad específica de un Obtén más información sobre ofertas de venta pasivas: [Fondos de Liquidez en Stellar: SDEX y Fondos de Liquidez](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageSellOffer)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageSellOffer)\ **Umbral**: Medio\ **Resultado**: `ManageSellOfferResult`\ **Parámetros**: @@ -216,7 +216,7 @@ Crea una oferta para vender un activo por otro sin aceptar una oferta inversa de Obtén más información sobre ofertas de venta pasivas: [Fondos de Liquidez en Stellar: SDEX y Fondos de Liquidez](../liquidity-on-stellar-sdex-liquidity-pools.mdx) -**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.createPassiveSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreatePassiveSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#CreatePassiveSellOffer)\ +**SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.createPassiveSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/CreatePassiveSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#CreatePassiveSellOffer)\ **Umbral**: Medio\ **Resultado**: `ManageSellOfferResult`\ **Parámetros**: @@ -251,8 +251,8 @@ Obtén más información sobre flags: [Sección de Flags](../../../tokens/contro Obtén más información sobre el dominio principal: [Propuestas del Ecosistema Stellar SEP-0001](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md)\ Obtén más información sobre operaciones de signatarios y peso de claves: [Sección de Firma y Multifirma](../../fundamentals/transactions/signatures-multisig.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.setOptions) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#SetOptions)\ -**Umbral**: Alto (cuando se actualizan los firmantes u otros umbrales) o Medio (cuando se actualiza todo lo demás)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.setOptions) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#SetOptions)\ +**Umbral**: Alto (cuando se actualizan los signatarios u otros umbrales) o Medio (cuando se actualiza todo lo demás)\ **Resultado**: `SetOptionsResult`\ **Parámetros**: @@ -288,7 +288,7 @@ Crea, actualiza o elimina una línea de confianza Aprende más sobre líneas de confianza: [sección de líneas de confianza](../stellar-data-structures/accounts.mdx#trustlines) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.changeTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ChangeTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ChangeTrust)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.changeTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ChangeTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ChangeTrust)\ **Umbral**: Medio\ **Resultado**: `ChangeTrustResult`\ **Parámetros**: @@ -321,7 +321,7 @@ Esta operación está obsoleta a partir del Protocolo 17; prefiere la operación ::: -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.allowTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AllowTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#AllowTrust)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.allowTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AllowTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#AllowTrust)\ **Umbral**: Bajo\ **Resultado**: `AllowTrustResult`\ **Parámetros**: @@ -347,7 +347,7 @@ Esta operación está obsoleta a partir del Protocolo 17; prefiere la operación Transfiere el saldo de XLM de una cuenta a otra cuenta y elimina la cuenta de origen del ledger. -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.accountMerge) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AccountMergeOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#AccountMerge)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.accountMerge) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/AccountMergeOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#AccountMerge)\ **Umbral**: Alto\ **Resultado**: `AccountMergeResult`\ **Parámetros**: @@ -374,7 +374,7 @@ Establece, modifica o elimina una entrada de datos (par nombre/valor) que está Aprende más sobre entradas y subentradas: [Sección de cuentas](../stellar-data-structures/accounts.mdx#subentries) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageData) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageDataOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageData)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageData) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ManageDataOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#ManageData)\ **Umbral**: Medio\ **Resultado**: `ManageDataResult`\ **Parámetros**: @@ -397,7 +397,7 @@ Aprende más sobre entradas y subentradas: [Sección de cuentas](../stellar-data Aumenta hacia adelante el número de secuencia de la cuenta de origen al número de secuencia dado, invalidando cualquier transacción con un número de secuencia más pequeño. -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.bumpSequence) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/BumpSequenceOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#BumpSequence)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.bumpSequence) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/BumpSequenceOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#BumpSequence)\ **Umbral**: Bajo\ **Resultado**: `BumpSequenceResult`\ **Parámetros**: @@ -547,7 +547,7 @@ Quema una cantidad en un activo específico de una cuenta. Solo la cuenta emisor Obtén más información sobre devoluciones: [Guía de Devoluciones](../../../build/guides/transactions/clawbacks.mdx) -**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.clawback) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ClawbackOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#Clawback)\ +**SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.clawback) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/operations/ClawbackOperation.java) | [Go](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild#Clawback)\ **Umbral**: Medio\ **Resultado**: `ClawbackResult`\ **Parámetros**: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/signatures-multisig.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/signatures-multisig.mdx index 9a7f1c8772..889b97aea6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/signatures-multisig.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/fundamentals/transactions/signatures-multisig.mdx @@ -3,8 +3,6 @@ title: Firmas y Multisig sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - :::note Esta sección detalla la firma de transacciones que no son contratos inteligentes. Para la autenticación relacionada con transacciones de contratos inteligentes, consulta [autorización](../../fundamentals/contract-development/authorization.mdx).) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/glossary.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/glossary.mdx index 238f1fb864..c6aa133804 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/learn/glossary.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/glossary.mdx @@ -83,6 +83,10 @@ Una cantidad de activo de una línea de confianza o saldo recuperable eliminado Consulta la [Guía de recuperación (Clawback)](../build/guides/transactions/clawbacks.mdx) para más información. +### Cuenta de contrato + +Una cuenta implementada como un contrato inteligente, que permite al contrato definir una lógica de autorización personalizada y la aplicación de políticas en cadena antes de que la autorización tenga éxito, en lugar de depender de las funciones integradas del protocolo. + ### Token de contrato Tokens creados y gestionados a través de contratos inteligentes. Estos activos son programables y están gobernados por la lógica on-chain en lugar de características de protocolo integradas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/learn/migrate/evm/solidity-support-via-solang.mdx b/i18n/es/docusaurus-plugin-content-docs/current/learn/migrate/evm/solidity-support-via-solang.mdx new file mode 100644 index 0000000000..2d9e3f782e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/learn/migrate/evm/solidity-support-via-solang.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 4 +title: Admitir Solidity mediante Solang +description: Compilar contratos Solidity a Wasm para Stellar usando el compilador Solang. +--- + +Aprovecha el compilador Hyperledger Solang para compilar contratos Solidity a Soroban. + +- Aprende sobre el SDK de Solidity y enlaces a Solang en Herramientas: [SDKs de Contratos](../../../tools/sdks/contract-sdks.mdx) +- Documentación de Solang (objetivo Soroban): https://solang.readthedocs.io/en/latest/targets/soroban.html +- Repositorio de Solang y ejemplos: https://github.com/hyperledger/solang/tree/main/examples/soroban +- IDE Web de Solang: https://solang.io/ + +:::caution + +La admitancia de Solidity mediante Solang para Stellar es experimental y está en evolución. No todas las funcionalidades de Solidity están admitidas aún, y pueden ocurrir cambios incompatibles. No recomendamos usar Solang para contratos en producción en este momento. + +::: + +- La forma más sencilla de usar Solang es mediante el IDE Web, pero también puedes construir Solang desde el código fuente o usar binarios precompilados. +- Para despliegue e interacción, usa el CLI de Stellar y los SDKs cliente después de compilar tu artefacto Wasm. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/networks/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/networks/README.mdx index a5d49429b5..61fa5bd8a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/networks/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/networks/README.mdx @@ -15,32 +15,34 @@ Stellar tiene tres redes: la red pública (Mainnet, también llamada Pubnet o la ## Comparación de redes -| Característica | Mainnet | Testnet | Futurenet | -| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -| **Propósito** | Red de producción | Entorno de prueba estable | Pruebas de funciones de vanguardia | -| **Frase de paso de red** | `Red Global Pública de Stellar ; Septiembre 2015` | `Red SDF de Prueba ; Septiembre 2015` | `Red Futura de SDF de Prueba ; Octubre 2022` | -| **Nodos validadores** | Operados por el público | SDF opera tres nodos validadores principales | SDF opera nodos validadores principales | -| **Validador** | `core-live-a.stellar.org` `core-live-b.stellar.org` `core-live-c.stellar.org` | `core-live-testnet.stellar.org` | `core-live-futurenet.stellar.org` | -| **Financiación** | Se requiere XLM real desde otra cuenta | Gratis mediante Friendbot | Gratis mediante Friendbot | -| **API Horizon** | [Varios proveedores disponibles](../data/apis/horizon/providers.mdx) | https://horizon-testnet.stellar.org | https://horizon-futurenet.stellar.org | -| **RPC de Stellar** | [Solo proveedores externos](../data/apis/rpc/providers.mdx) | `https://soroban-testnet.stellar.org` | `https://rpc-futurenet.stellar.org` | -| **Operaciones por libro mayor** | 1,000 | 100 | 100 | -| **Transacciones de contratos inteligentes por libro mayor** | Máximo 100\* | 1 | 1 | -| **Reinicios de red** | Nunca | Cadencia regular | Cuando es necesario (impredecible) | -| **Friendbot disponible** | No | Sí (10,000 XLM) | Sí (10,000 XLM) | -| **API Friendbot** | N/A | `https://friendbot.stellar.org` | `https://friendbot-futurenet.stellar.org` | -| **Archivo de historial** | `http://history.stellar.org/prd/core-live/core_live_001/`, `http://history.stellar.org/prd/core-live/core_live_002/`, `http://history.stellar.org/prd/core-live/core_live_003/` | `http://history.stellar.org/prd/core-testnet/core_testnet_001`, `http://history.stellar.org/prd/core-testnet/core_testnet_002`, `http://history.stellar.org/prd/core-testnet/core_testnet_003` ([más información](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_testnet.cfg)) | `http://history.stellar.org/dev/core-futurenet` | +| Característica | Mainnet | Testnet | Futurenet | +| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Propósito** | Red de producción | Entorno de prueba estable | Pruebas de funciones de vanguardia | +| **Frase de paso de red** | `Red Global Pública de Stellar ; Septiembre 2015` | `Red SDF de Prueba ; Septiembre 2015` | `Red Futura de SDF de Prueba ; Octubre 2022` | +| **ID de red** | 7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979 | cee0302d59844d32bdca915c8203dd44b33fbb7edc19051ea37abedf28ecd472 | a3a1c6a78286713e29be0e9785670fa838d13917cd8eaeb4a3579ff1debc7fd5 | +| **Nodos validadores** | Operados por el público | SDF opera tres nodos validadores principales | SDF opera nodos validadores principales | +| **Validador** | `core-live-a.stellar.org` `core-live-b.stellar.org` `core-live-c.stellar.org` | `core-live-testnet.stellar.org` | `core-live-futurenet.stellar.org` | +| **Financiación** | Se requiere XLM real desde otra cuenta | Gratis mediante Friendbot | Gratis mediante Friendbot | +| **API Horizon** | [Varios proveedores disponibles](../data/apis/horizon/providers.mdx) | https://horizon-testnet.stellar.org | https://horizon-futurenet.stellar.org | +| **RPC de Stellar** | [Solo proveedores externos](../data/apis/rpc/providers.mdx) | `https://soroban-testnet.stellar.org` | `https://rpc-futurenet.stellar.org` | +| **Operaciones por libro mayor** | 1,000 | 100 | 100 | +| **Transacciones de contratos inteligentes por libro mayor** | Máximo 100\* | 1 | 1 | +| **Reinicios de red** | Nunca | Cadencia regular | Cuando es necesario (impredecible) | +| **Friendbot disponible** | No | Sí (10,000 XLM) | Sí (10,000 XLM) | +| **API Friendbot** | N/A | `https://friendbot.stellar.org` | `https://friendbot-futurenet.stellar.org` | +| **Archivo de historial** | `http://history.stellar.org/prd/core-live/core_live_001/`, `http://history.stellar.org/prd/core-live/core_live_002/`, `http://history.stellar.org/prd/core-live/core_live_003/` | `http://history.stellar.org/prd/core-testnet/core_testnet_001`, `http://history.stellar.org/prd/core-testnet/core_testnet_002`, `http://history.stellar.org/prd/core-testnet/core_testnet_003` ([más información](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_testnet.cfg)) | `http://history.stellar.org/dev/core-futurenet/core_futurenet_001/`, `http://history.stellar.org/dev/core-futurenet/core_futurenet_002/`, `http://history.stellar.org/dev/core-futurenet/core_futurenet_003/` | \*La cantidad precisa puede variar según los [límites de recursos](../learn/fundamentals/fees-resource-limits-metering.mdx#resource-limitations). Consulta [Tarifas y Medición](../learn/fundamentals/fees-resource-limits-metering.mdx) para detalles sobre la configuración de contratos inteligentes en la red. ## Friendbot -Friendbot es un bot que financia cuentas con XLM falso en Testnet o Futurenet. Puedes solicitar XLM a Friendbot usando el [Stellar Lab](../tools/lab/account.mdx#fund-account) o con varios SDKs. +Friendbot es un bot que financia cuentas y contratos con XLM falso en Testnet o Futurenet. Puedes solicitar XLM a Friendbot usando el [Stellar Lab](../tools/lab/account.mdx#fund-account) o con varios SDKs. **Detalles clave:** - Las solicitudes tienen límite de frecuencia, úsalo con prudencia - Proporciona 10,000 XLM falsos al fundar una cuenta nueva +- Puede financiar tanto direcciones de cuentas (G...) como direcciones de contratos (C...) - Para varias cuentas: financia la primera con Friendbot y luego usa esa cuenta para financiar las siguientes mediante la operación Crear Cuenta ## Comenzar @@ -87,7 +89,7 @@ Un script puede automatizar todo este proceso creando una cuenta con Friendbot y Cada una de las redes de Stellar, Mainnet, Testnet y Futurenet, tiene su propia frase de paso única. Se usan al validar firmas en una transacción determinada. Si firmas una transacción para una red pero la envías a otra, esta no será considerada válida. Por convención, el formato de una frase de paso es ‘`[Nombre de la Red] ; [Mes de Creación] [Año de Creación]`’. -Las frases de paso actuales para las redes Stellar Mainnet, Testnet y Futurenet son: +Las frases de contraseña para Stellar Mainnet, Testnet y Futurenet son: - Mainnet: '`Public Global Stellar Network ; September 2015`' - Testnet: '`Test SDF Network ; September 2015`' @@ -97,6 +99,18 @@ Las frases de paso tienen dos propósitos principales: (1) se usan como semilla Muchos SDKs tienen las frases de paso codificadas para las redes de Stellar. Si ejecutas una red privada, tendrás que pasar manualmente una frase de paso para que se use al generar hashes de transacciones. Todos los SDKs oficiales de Stellar permiten usar una red con una frase de paso personalizada. +## IDs de red + +Cada red Stellar también tiene un ID de red, que es el hash SHA-256 de la frase de contraseña de la red. El ID de red se utiliza para la firma de transacciones y la generación de direcciones de contrato y asegura que los hashes e IDs generados sean diferentes en cada red. + +Los IDs para Stellar Mainnet, Testnet y Futurenet son: + +| Red | ID de red | +| --------- | ------------------------------------------------------------------ | +| Mainnet | `7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979` | +| Testnet | `cee0302d59844d32bdca915c8203dd44b33fbb7edc19051ea37abedf28ecd472` | +| Futurenet | `a3a1c6a78286713e29be0e9785670fa838d13917cd8eaeb4a3579ff1debc7fd5` | + ## Para qué deben y no deben usarse Testnet y Futurenet ### Testnet y Futurenet son adecuadas para @@ -119,13 +133,7 @@ Muchos SDKs tienen las frases de paso codificadas para las redes de Stellar. Si Mainnet, Testnet y Futurenet tienen cada uno su propia frase de paso única, que se usa para validar firmas en una transacción dada. -Las frases de paso actuales para Stellar Mainnet, Testnet y Futurenet son: - -**Mainnet (Pubnet)**: `Public Global Stellar Network ; September 2015` - -**Testnet**: `Test SDF Network ; September 2015` - -**Futurenet**: `Test SDF Future Network ; October 2022` +Consulta las secciones anteriores para la frase de contraseña de cada red. Para aplicaciones que no dependen del estado de la red (como que existan cuentas específicas), se pasa a producción cambiando la frase de paso de la red y asegurando que tu instancia de Horizon esté conectada a Mainnet. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/README.mdx new file mode 100644 index 0000000000..45ff198bd6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/README.mdx @@ -0,0 +1,15 @@ +# Plataformas SDF + +SDF ha open-sourced algunas "plataformas" que facilitan realizar ciertas tareas en la red. + +## Plataforma Anchor + +La Plataforma Anchor es un conjunto de herramientas y APIs que permiten a desarrolladores y empresas desarrollar sus propios servicios de entrada y salida para la red Stellar. Proporciona una interfaz estandarizada, incluyendo la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar la integración de empresas con monederos y exchanges basados en Stellar. + +[¡Aprende más sobre la API de la Plataforma Anchor aquí!](./anchor-platform/README.mdx) + +## Stellar Disbursement Platform + +La Stellar Disbursement Platform (SDP) permite a las organizaciones distribuir pagos masivos a destinatarios utilizando Stellar. + +[¡Aprende más sobre la API de la Stellar Disbursement Platform aquí!](./stellar-disbursement-platform/README.mdx) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/CONTRIBUTING.md b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/CONTRIBUTING.md new file mode 100644 index 0000000000..ee79fc8646 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/CONTRIBUTING.md @@ -0,0 +1,246 @@ +--- +draft: true +--- + +# Bienvenido a Anchor Platform Madness + +¡Hola, y bienvenido a la nueva versión de la documentación de Anchor Platform! + +Estamos muy contentos de tenerte aquí, y esperamos que este documento te ayude a comprender cómo (y más importante, _dónde_) hacer los cambios necesarios en nuestra documentación. Comencemos con un poco de vocabulario de Docusaurus, ¿de acuerdo? + +## ¡AVISO! AP HA SIDO DESVERSIONADO + +La documentación de Anchor Platform ha sido desversionada, y ahora sólo mantenemos una versión "actual" de los documentos. Así que, cualquier cosa en esta página que +hable de crear una nueva versión, actualizar versiones antiguas, etc., puede ser ignorada. + +~~Sin embargo, la documentación de la Plataforma Anchor _todavía_ permanece en su propia instancia de docusaurus. Por lo tanto, la información aquí sobre enlazar dentro y entre instancias sigue siendo relevante. (Esto no será así para siempre, pero por ahora, sí lo es.)~~ + +¡Ya no es una instancia separada del plugin! Actualizaré este documento pronto, pero por ahora los detalles del enlace se pueden resumir en: + +- casi siempre `[usa un](../../relative/link.mdx)` con la extensión del archivo, + a menos que estés enlazando desde/hacia un documento de notas de reunión. + +## Resumen Rápido (TL;DR) + +- Para las versiones _no lanzadas_ de Anchor Platform: + - Agrega y edita documentos en `/platforms/anchor-platform` + - Actualiza y regenera la documentación de la API en `/openapi/anchor-platform/main-*.yaml` +- Para las versiones _lanzadas_ de Anchor Platform: + - Actualiza y cambia documentos en `/ap_versioned_docs` + - Actualiza y regenera la documentación de la API en `/openapi/anchor-platform/versions/*.yaml` + +Lanza una **nueva versión** usando el siguiente script de yarn: + +```bash +# replace `3.0.0` with the needed version +VERSION=3.0.0 yarn ap:versions:new +``` + +> _Nota:_ Creo que el comando de yarn anterior actualmente es incompatible con Windows, aunque podría estar equivocado. + +Regenera la documentación de la API para versiones **ya lanzadas** usando el siguiente script de yarn. Esto regenera la documentación de la API para **todas** las versiones lanzadas, así que deberías ser selectivo con los archivos que añades a tu commit. + +```bash +yarn ap:versions:regen +``` + +## Tabla de Contenidos + +- [¡AVISO! AP HA SIDO DESVERSIONADO](#notice-ap-has-been-de-versioned) +- [Resumen Rápido (TL;DR)](#tldr) +- [Más sobre Docusaurus de lo que nunca quisiste saber](#more-about-docusaurus-than-you-ever-wanted-to-know) + - [Nomenclatura de Versiones](#versions-nomenclature) + - [Plugins](#plugins) + - [Instancias](#instances) + - [Enlaces](#links) + - [Ejemplos](#examples) +- [Directorios que Debes Conocer](#directories-to-know) + - [Directorios que Ya Conoces](#directories-you-already-know-about) + - [Directorios Nuevos y Geniales](#new-shiny-directories) +- [Creación de Nuevas Versiones](#making-new-versions) + - [Usa Docusaurus para "Etiquetar" una Nueva Versión](#use-docusaurus-to-tag-a-new-release) + - [Configura el plugin OpenAPI](#configure-the-openapi-plugin) + - [Copia los archivos de especificación OpenAPI (empaquetados) al directorio versionado](#copy-the-bundled-openapi-specfiles-to-the-versioned-directory) + - [Añade configuración a la instancia del plugin OpenAPI](#add-configuration-to-the-openapi-plugin-instance) +- [Actualizar versiones antiguas](#updating-old-versions) + - [Actualizar páginas de documentación](#update-documentation-pages) + - [Actualizar especificación de API](#update-api-specification) + +## Más sobre Docusaurus de lo que nunca quisiste saber + +Sé que puede parecer un poco misterioso, pero aquí tienes algo de conocimiento y contexto para ayudarte a entender lo que viene. + +### Nomenclatura de Versiones + +Así es como Docusaurus define estos términos, por lo que usaré esta nomenclatura en este documento también. + +- La **versión actual** se refiere a la versión de la documentación de AP contenida en el directorio `/platforms/anchor-platform`. Este conjunto de documentos está disponible en la URL `/platforms/anchor-platform/next`. Este es el conjunto de documentos "en construcción". + +- La **última versión** se refiere al conjunto de documentos de AP más recientemente "lanzado". Estos se encuentran en `/ap_versioned_docs` (más sobre esto más adelante), y están disponibles en la URL `/platforms/anchor-platform`. Este es el conjunto "estable" de documentos. + +### Plugins + +Aquí intervienen dos plugins de Docusaurus: + +1. `@docusaurus/plugin-content-docs` es la base de trabajo de Docusaurus. Se encarga del renderizado de markdown, enrutamiento, etc. Cuando piensas en actualizar `some-file.mdx`, este es el plugin que estás usando. +2. `docusaurus-plugin-openapi-docs` es el plugin que se usa para generar páginas MDX a partir de archivos de especificación OpenAPI. Este plugin es capaz de versionar por sí mismo, por lo que se debe tener cuidado y consideración en cuanto a su configuración. + +Ambas configuraciones de plugins se han separado en un archivo `/config/anchorPlatform.config.ts`, para facilitar su gestión y reducir la complejidad del archivo principal `docusaurus.config.ts`. + +### Instancias + +Aquí las cosas se vuelven un poco más técnicas, pero te prometo que esta parte es útil de conocer. Ambos [plugins](#plugins) que mencioné antes son realmente sólo _instancias_ de esos dos plugins. De hecho, cada uno de esos plugins se usa en otras partes de nuestro sitio de documentación para Horizon, SDP, y la documentación "regular". _Generalmente_ no es importante tener en cuenta las diferentes instancias de plugins, pero sí es **muy relevante** cuando hablamos de enlaces. Así que... + +### Enlaces + +> [!ADVERTENCIA] +> +> Esta sección está desactualizada. Por ahora, ignorala en su mayoría. + +La mayoría de las veces, **especialmente en documentos versionados**, es importante [enlazar a otros documentos usando rutas de archivo _relativas_](https://docusaurus.io/docs/versioning#link-docs-by-file-paths). +Esto permite que Docusaurus reescriba URLs cuando es necesario en tiempo de compilación. + +¡Sin embargo, hay una **EXCEPCIÓN GRANDE**! Docusaurus sólo puede manejar estos enlaces cuando los archivos fuente y destino son procesados por la misma _instancia del plugin_. +Entonces, en términos prácticos: + +- Si estás enlazando _desde_ y _hacia_ documentos MDX _dentro_ de la misma instancia del plugin de documentos, usa rutas de archivo _relativas_. +- Si estás enlazando _entre_ instancias de plugins, **debes** usar rutas de _URL_. Por convención, usamos rutas _absolutas_ para esto también, para hacer un poco más obvio cuándo está sucediendo este comportamiento. + +#### Ejemplos + +Esto debería ayudar a aclararlo un poco. + +- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/sep-guide/sep6/configuration.mdx` _hacia_ el documento MDX `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: + - Estamos en la misma instancia del plugin `/platforms/anchor-platform`. + - Usa una ruta de archivo **relativa** + - Enlázalo `[algo así](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` +- Quiero enlazar _desde_ el documento MDX `/docs/learn/fundamentals/anchors.mdx` _hacia_ el documento MDX `/platforms/anchor-platform/admin-guide/getting-started.mdx` + - Estamos "cruzando" entre las instancias del plugin `/docs` y `/platforms/anchor-platform`. + - Usa una ruta de **URL absoluta** + - Enlázalo `[algo así](/platforms/anchor-platform/admin-guide/getting-started)` (nota que no hay extensión `.mdx`) +- Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/README.mdx` _hacia_ el documento MDX `/docs/tools/developer-tools/wallets.mdx` + - Estamos "cruzando" entre las instancias del plugin `/platforms/anchor-platform` y `/docs`. + - Usa una ruta de **URL absoluta** + - Enlázalo `[algo así](/docs/tools/developer-tools/wallets)` (nota que no hay extensión `.mdx`) +- ¡Comodín! Quiero enlazar _desde_ el documento MDX `/platforms/anchor-platform/admin-guide/events/configuration.mdx` _hacia_ el documento MDX `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` + - Estamos "cruzando" entre las instancias del plugin `/platforms/anchor-platform` y `/platforms/stellar-disbursement-platform`. + - Usa una ruta de **URL absoluta** + - Enlázalo `[algo así](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` (nota que no hay extensión `.mdx`) + +> _Nota:_ Reemplaza la instancia del plugin `/platforms/anchor-platform` con la instancia `/platforms/stellar-disbursement-platform` en los ejemplos anteriores, y todo funciona prácticamente igual. + +Lee más sobre enlaces [aquí](https://docusaurus.io/docs/markdown-features/links) (especialmente hacia el final de la página). + +## Directorios que Debes Conocer + +Hay varios directorios que _todos_ alimentan el producto final que es nuestra documentación versionada de AP. + +### Directorios que Ya Conoces + +- `/platforms/anchor-platform`: Aquí es donde estás ahora, y tradicionalmente ha sido el lugar para modificar cualquier contenido markdown que se convierta en nuestras páginas de documentación de AP. No ha cambiado mucho aquí, excepto que requiere un cambio de mentalidad. + **Toda la documentación y contenido ubicado aquí ahora debe considerarse la versión `actual` (en construcción) de los documentos de AP.** Así que, mientras construimos para `v3.x` (y más adelante), querrás actualizar _el contenido aquí_. + Los lectores aún podrán _ver_ este contenido antes de que se "lance", pero se les informará que es la versión no lanzada. + + También hay un nuevo directorio aquí que debes conocer: + + - `/platforms/anchor-platform/assets`: Como es probable que las diversas imágenes, diagramas, etc., necesiten actualizarse o cambiarse de una versión a otra, estamos ubicando los activos relevantes en este directorio. Esto + permite que también sean versionados. Si quieres actualizar un diagrama o imagen para un próximo lanzamiento, deberías hacerlo aquí. + +- `/openapi/anchor-platform`: Este es probablemente el lugar con el que ya estás familiarizado. Los archivos han sido renombrados recientemente, pero en su mayoría querrás modificar `main-{platform,callbacks,custody}.yaml`, que luego será "empaquetado" más adelante en un solo archivo que contiene todo. + **Los archivos en este directorio también deben considerarse la versión `actual` (en construcción) de los documentos de especificación de AP.** Así que, mientras construimos para `v3.x` (y más adelante), querrás actualizar _los archivos de especificación aquí_. + + También hay un nuevo directorio aquí que debes conocer: + + - `/openapi/anchor-platform/versions`: Este directorio almacena una copia de los archivos de especificación _empaquetados_ para cada versión que se lanza. El plugin que usamos para generar la documentación de la API a partir de estos archivos de especificación se configura para usar _estas_ especificaciones versionadas para toda la documentación que no sea la `actual`. + +- `/openrpc/src/anchor-platform`: Recientemente, movimos la especificación RPC a este directorio para que pueda beneficiarse de los mismos procesos de construcción y verificaciones de validación que la especificación `stellar-rpc`. Al igual que con los otros directorios cubiertos hasta ahora, cualquier cambio en estos archivos debe considerarse parte de la versión `actual` (en construcción) de la documentación. No hay (¿todavía?) muchas herramientas o ergonomía para actualizar las versiones "antiguas" de estas especificaciones. La versión `actual` de la especificación se genera en `/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json`. + Esto significa que _sí_ se incluye en el proceso de versionado, así que cualquier cambio en versiones "antiguas" probablemente sólo necesite hacerse en esos archivos de especificación versionados por ahora (más sobre eso en la siguiente sección). + +### Directorios Nuevos y Geniales + +- `/ap_versioned_sidebars`: Podemos pasar rápidamente por este. Cuando haces una nueva versión de la documentación, Docusaurus almacena una copia de la barra lateral en ese momento. Realmente no deberías molestarte con nada aquí. + +- `/ap_versioned_docs`: Aquí es donde viven los conjuntos "lanzados" de la documentación de AP. + Cada vez que se lanza una versión, _todo_ lo que está dentro del directorio `/platforms/anchor-platform` se copia en un subdirectorio aquí. + Notarás que ya tenemos una versión `v2.8.4` aquí. Cuando lancemos `v3.x`, se colocará una + _nueva_ copia de los archivos aquí. La copia `latest` (estable) de los documentos de AP se extrae desde este directorio. Si encuentras algo para corregir o actualizar en una versión lanzada de la documentación, tendrás que actualizarlo aquí. + +## Creación de Nuevas Versiones + +Como se señaló en el [Resumen Rápido (TL;DR)](#tldr), este proceso se automatiza con el script `VERSION=3.0.0 yarn ap:versions:new`. Sin embargo, esto es lo que sucede bajo el capó de ese script. + +### Usa Docusaurus para "etiquetar" un nuevo lanzamiento + +¡Es realmente bastante simple! Usa la CLI de Docusaurus para hacer un nuevo lanzamiento: + +```bash +# `ap` is the ID of the AP `@docusaurus/plugin-content-docs` plugin instance +yarn docusaurus docs:version:ap 3.0.0 +``` + +Esto crea una nueva copia de los documentos en `/ap_versioned_docs`, y funcionará correctamente para mostrar la nueva versión en el sitio. Cualquier cambio futuro en la versión 3.0.0 de los documentos debe hacerse dentro del directorio `/ap_versioned_docs`. + +### Configura el plugin OpenAPI + +También necesitaremos poder modificar/actualizar/regenerar la documentación de la API si surge la necesidad. Así que necesitaremos configurar adecuadamente la instancia de plugin `docusaurus-plugin-openapi-docs`. + +#### Copia los archivos de especificación OpenAPI (empaquetados) al directorio versionado + +Por el momento, es tan simple como copiar los archivos: + +```bash +cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-3.0.0.yaml +cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-3.0.0.yaml +cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-3.0.0.yaml +``` + +> Observa que estamos copiando el archivo _empaquetado_, no el archivo _principal_. Esto asegura que el archivo versionado contiene todo lo que necesita. + +#### Añade configuración a la instancia del plugin OpenAPI + +> _Nota:_ Estas partes `versions` de la configuración ahora se generan dinámicamente, usando una función `makeVersions()`, así que estos pasos manuales de configuración no deberían ser necesarios. _Puede que_ quieras avanzar o ajustar la cadena `anchorPlatformNextVersion` en el archivo de configuración cuando lances una nueva versión de la documentación. + +Para poder usar el CLI del plugin para actualizar versiones ya lanzadas, tenemos que actualizar la configuración en `/config/anchorPlatform.config.ts`. Haz una nueva entrada en el objeto `versions` de cada archivo de especificación, y copia el formato de las entradas que ya existen. Para referencia, así es como se ve actualmente para el "servidor de la plataforma" en `v2.8.4`: + +```typescript +ap_platform: { + specPath: "openapi/anchor-platform/bundled-platform.yaml", + outputDir: "platforms/anchor-platform/api-reference/platform/transactions", + hideSendButton: true, + template: "src/template.mustache", + version: "3.0.0", + label: "v3.0.0", + baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', + versions: { + "2.8.4": { + specPath: "openapi/anchor-platform/versions/platform-2.8.4.yaml", + outputDir: "ap_versioned_docs/version-2.8.4/api-reference/platform/transactions", + label: "v2.8.4", + baseUrl: "/platforms/anchor-platform/api-reference/platform/transactions" + } + } +} +``` + +## Actualizar versiones antiguas + +### Actualizar páginas de documentación + +Supongamos que encuentro un error ortográfico en la documentación de la Guía del Administrador `v2.8.4`. Encuentra el archivo relevante en el directorio `/ap_versioned_docs/version-2.8.4`, corrígelo y haz commit. Las actualizaciones de contenido son bastante sencillas aquí. + +> _Nota_: Dado que la especificación RPC se trata de manera similar a los documentos MDX, usa el mismo proceso para hacer actualizaciones en el archivo de especificación RPC. Para `v2.8.4`, está ubicado aquí: `/ap_versioned_docs/version-2.8.4/api-reference/platform/rpc/anchor-platform.openrpc.json`. + +### Actualizar especificación de API + +Esto es un poco más complejo, pero no mucho. Encuentra y cambia la(s) parte(s) relevante(s) del archivo de especificación `/openapi/anchor-platform/versions/{platform, callbacks,custody}-2.8.4.yaml`. + +Luego, regenera las páginas MDX: + +```bash +# `ap-apis` is the ID of the AP `docusaurus-plugin-openapi-docs` plugin instance +yarn docusaurus gen-api-docs:version -p ap-apis:2.8.4 +``` + +> _Nota:_ Puedes usar un script de yarn para regenerar automáticamente la documentación de API para **todas** las versiones lanzadas: `yarn ap:versions:regen`. Esto regenera todas las versiones, así que querrás ser selectivo con los archivos que añades al commit. + +Haz commit de los cambios y estarás listo para continuar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/README.mdx new file mode 100644 index 0000000000..0cc835215a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/README.mdx @@ -0,0 +1,55 @@ +--- +title: "La Plataforma Anchor: Construir y Gestionar On/Off-Ramps en la Red Stellar" +sidebar_position: 10 +sidebar_label: Resumen del Producto +description: Aprende cómo la Plataforma Anchor (AP) simplifica el proceso de construir y gestionar un on y off-ramp en Stellar. Conoce cómo integrarte con la AP o obtener información sobre la API. +--- + +# Plataforma Anchor + +La Plataforma Anchor proporciona un conjunto de herramientas y APIs para construir servicios de on y off-ramp en la red Stellar. Con interfaces estandarizadas y la implementación completa de propuestas clave del ecosistema Stellar (SEPs), simplifica la integración con billeteras y exchanges basados en Stellar, permitiéndote centrarte en la lógica principal de tu negocio en lugar de en los detalles de implementación del protocolo. + +## SEPs compatibles + +La Plataforma Anchor implementa las siguientes propuestas del ecosistema Stellar: + +- **[SEP-1](sep-guide/sep1/README.mdx)** — Archivo Stellar.toml para descubrimiento de servicios +- **[SEP-6](sep-guide/sep6/README.mdx)** — Operaciones de depósito y retiro +- **[SEP-10](sep-guide/sep10/README.mdx)** — Autenticación web usando transacciones de desafío/respuesta +- **SEP-12** — Gestión de datos KYC/AML de clientes +- **[SEP-24](sep-guide/sep24/README.mdx)** — Flujos interactivos de depósito y retiro +- **[SEP-31](sep-guide/sep31/integration.mdx)** — Procesamiento de pagos transfronterizos (solo recepción) +- **SEP-38** — Cotizaciones y servicios de tasa de cambio +- **[SEP-45](sep-guide/sep45/README.mdx)** — Autenticación web usando desafíos/respuestas para cuentas de contrato + +## Características clave + +- **Implementaciones completas de SEP** — Soporte total para flujos de trabajo de depósito, retiro y procesamiento de pagos +- **Autenticación y autorización** — Soporte para SEP-10 y SEP-45 tanto para cuentas tradicionales como de contrato inteligente +- **Gestión de clientes** — Integración SEP-12 para cumplimiento KYC/AML y manejo de datos de clientes +- **Procesamiento de transacciones** — Gestión completa del ciclo de vida de transacciones con seguimiento de estado y callbacks por webhook +- **Servicios de cotización y exchange** — Integración SEP-38 para descubrimiento de precios y cálculos de tasas de cambio +- **Soporte multiactivo** — Configuración flexible para múltiples activos con varios métodos de depósito y retiro +- **Soporte para contratos inteligentes** — Soporte nativo para cuentas de contrato Stellar (cuentas C) mediante SEP-45 + +## Enlaces de documentación + +- **[Arquitectura](./admin-guide/architecture.mdx)** — Arquitectura del sistema y descripción de componentes +- **[Comenzar](./admin-guide/getting-started.mdx)** — Instrucciones para configuración inicial y despliegue +- **[Manejo de Eventos](./admin-guide/events/README.mdx)** — Entrega de eventos, webhooks y patrones de integración +- **[Guías SEP](./sep-guide/README.mdx)** — Guías de implementación para propuestas del ecosistema Stellar +- **[Referencia de API](./api-reference/README.mdx)** — Documentación completa y referencia de la API + +## Recursos adicionales + +La documentación para la Plataforma Anchor está en desarrollo. Los desarrolladores pueden explorar el código y la documentación existente en el [repositorio de GitHub](https://github.com/stellar/java-stellar-anchor-sdk). + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md +[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/README.mdx new file mode 100644 index 0000000000..e9a995c616 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Guía del Administrador +sidebar_position: 10 +--- + +import DocCardList from "@theme/DocCardList"; + +Todo lo que necesitas saber sobre cómo configurar, ejecutar y utilizar la Plataforma Anchor. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/_category_.json new file mode 100644 index 0000000000..1d4401ab2f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Admin Guide", + "collapsed": false +} + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/architecture.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/architecture.mdx new file mode 100644 index 0000000000..53fa520e6e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/architecture.mdx @@ -0,0 +1,70 @@ +--- +title: Arquitectura +sidebar_position: 20 +--- + +## Arquitectura + +Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan. + +### Arquitectura Fundamental + +Los siguientes componentes arquitectónicos son necesarios para todas las implementaciones de la Anchor Platform. + +
+ +![arquitectura fundamental de Anchor Platform](/assets/ap/anchor-platform-architecture-1.png) + +
+ +#### Cliente + +El cliente es una aplicación, como un monedero o remitente de transferencias, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes hacen solicitudes al componente servidor SEP de la Anchor Platform usando conjuntos de estándares llamados [SEPs][seps] (Stellar Ecosystem Proposals). + +#### Servidor SEP + +El servidor SEP es un servidor orientado al cliente y debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio para un par de activos o el estado KYC de un cliente, realiza solicitudes síncronas de [callback][callback-api] al servidor de negocio y devuelve la información en un formato compatible con SEP. + +:::note + +El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos. + +::: + +#### Servidor de Negocio + +El servidor de negocio es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocio responde a solicitudes de callback enviadas por el servidor SEP, como solicitudes de cotización, recibe eventos enviados por el servicio de eventos, como notificaciones de pagos recibidos en tu cuenta Stellar, y proporciona actualizaciones al servidor de plataforma cuando ocurren eventos fuera de cadena, como la iniciación de una transferencia bancaria a un cliente. + +#### Servidor de Plataforma + +El servidor de plataforma es un componente interno. Debe estar alojado en una red privada y no debe ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones usando su [API][platform-api]. + +#### Base de Datos + +La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se usa principalmente para almacenar transacciones. + +#### Kafka + +Kafka se utiliza como eje de mensajería para la Anchor Platform, facilitando la comunicación y las interacciones basadas en eventos entre diferentes componentes. Permite que componentes como el servidor SEP, el servidor de negocio y el servicio de eventos publiquen y se suscriban a eventos de transacciones y pagos de manera confiable y escalable. + +### Arquitectura Completa + +Además de los componentes descritos arriba, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales usar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes. + +
+ [![arquitectura completa de Anchor Platform](/assets/ap/anchor-platform-architecture-2.png)](/assets/ap/anchor-platform-architecture-2.png) +
+#### Servicio de Eventos + +El servicio de eventos permite que la Anchor Platform envíe webhooks HTTP a clientes registrados y a tu servidor de negocio cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocio consulten continuamente las APIs de Anchor Platform. Funciona leyendo eventos publicados en un tópico de Kafka por otros componentes de Anchor Platform. [Lee más][events] sobre el uso del servicio de eventos. + +#### Observador de Pagos + +El Observador de Pagos monitorea la cadena de bloques Stellar usando Stellar RPC o Horizon, detecta automáticamente pagos relacionados con el negocio y actualiza las transacciones correspondientes en la base de datos de Anchor Platform. Si también usas el servicio de [events], los pagos a tus cuentas activarán un callback HTTP hacia tu servidor de negocio. + +Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon o RPC, entonces este componente no es necesario, aunque tu servidor de negocio deberá notificar a Anchor Platform cuando se haya realizado un pago asociado a una transacción de Anchor Platform a una de tus cuentas Stellar vía la [Platform API][platform-api]. + +[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md +[platform-api]: ../api-reference/platform/transactions/README.mdx +[callback-api]: ../api-reference/callbacks/README.mdx +[events]: ./events/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx new file mode 100644 index 0000000000..e530c7933b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/assets-and-client-wallets.mdx @@ -0,0 +1,117 @@ +--- +title: Activos y Clientes de Billeteras +sidebar_position: 40 +--- + +# Activos y Clientes de Billeteras + +Esta guía explica cómo configurar activos y clientes de billeteras en la Anchor Platform. + +## Configuración de Activos + +Los activos definen los tokens y monedas que tu Anchor Platform admite para depósitos y retiradas de fondos. En la guía "Comenzar", los activos se configuran en el archivo `config/assets.yaml` mediante el `ap_start.sh`. + +Para la lista completa de campos y valores por defecto, consulta la [referencia de configuración de activos](https://github.com/stellar/anchor-platform/blob/develop/core/src/main/resources/config/anchor-asset-default-values.yaml). + +### Ejemplo de Configuración de Activos + +```yaml +items: + - id: stellar:native + distribution_account: "G...DIST" + significant_decimals: 7 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + sep24: + enabled: true + sep31: + enabled: true + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD +``` + +### Explicación de Campos + +- **`id`** (Obligatorio) - El identificador del activo en el formato `SCHEMA:CODE:(ISSUER)` o `stellar:native` que representa XLM, el activo nativo de Stellar. Por ejemplo, `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` representa Circle USD. Para monedas fiat, usa `iso4217:CODE` (por ejemplo, `iso4217:USD`, `iso4217:CAD`). + +- **`distribution_account`** - La dirección de cuenta Stellar que posee el activo para distribución. No es necesario para activos fiat (`iso4217`). + +- **`significant_decimals`** - La cantidad de decimales que el activo admite. + +- **`sep6`** - Habilita SEP-6 y configura los límites y métodos de depósito/retirada por activo. + +- **`sep24`** - Habilita los flujos interactivos SEP-24 y sus configuraciones por activo. + +- **`sep31`** - Habilita el soporte para pagos transnacionales SEP-31 para el activo. + +- **`sep38`** - Habilita las cotizaciones SEP-38 y `exchangeable_assets` para pares de monedas admitidos. + +## Configuración de Clientes de Billeteras + +Los clientes de billeteras son las aplicaciones que se conectan a tu Anchor Platform para realizar transacciones en nombre de los usuarios. + +Para la lista completa de campos y valores por defecto de los clientes, consulta la [referencia de configuración de clientes](https://github.com/stellar/anchor-platform/blob/main/platform/src/main/resources/config/anchor-client-default-values.yaml). + +### Ejemplo de Configuración de Cliente + +```yaml +items: + - name: "referenceCustodial" + type: custodial + signing_keys: + - GDJLB...KLTG + callback_urls: + sep6: https://client.example.com/callbacks/sep6 + sep24: https://client.example.com/callbacks/sep24 + sep31: https://client.example.com/callbacks/sep31 + sep12: https://client.example.com/callbacks/sep12 + - name: "reference" + type: noncustodial + domains: + - wallet-server:8092 + - client.example.com + callback_urls: + ... +``` + +### Explicación de Campos + +**Configuración de Cliente Custodial:** + +- **`name`** (Obligatorio) - Un identificador único para el cliente. + +- **`type: custodial`** (Obligatorio) - El tipo de cliente. Debe establecerse en `custodial` para clientes custodiales. + +- **`signing_keys`** (Obligatorio) - Una lista de claves públicas Stellar usadas para la autenticación SEP-10 del cliente. El anchor usa estas claves para verificar que las solicitudes provienen del cliente autorizado. + +- **`callback_urls`** (Opcional) - URLs a las que el servicio puede enviar callbacks para diferentes tipos SEP. + - **`sep6`** - URL de callback para actualizaciones de estado de transacciones SEP-6 (depósito/retirada) + - **`sep24`** - URL de callback para actualizaciones de estado de transacciones SEP-24 (depósito/retirada interactivo) + - **`sep31`** - URL de callback para actualizaciones de estado de transacciones SEP-31 (pagos transnacionales) + - **`sep12`** - URL de callback para actualizaciones de información de clientes SEP-12 (KYC) + +**Configuración de Cliente No Custodial:** + +- **`name`** (Obligatorio) - Un identificador único para el cliente, similar al de clientes custodiales. Típicamente un nombre que representa claramente la entidad cliente. + +- **`type: noncustodial`** (Obligatorio) - El tipo de cliente. Debe establecerse en `noncustodial` para clientes no custodiales. Los clientes no custodiales permiten a los usuarios controlar sus propias claves privadas, y la billetera actúa como interfaz para cuentas controladas por el usuario. + +- **`domains`** (Obligatorio) - Una lista de dominios asociados con el cliente, usada para verificar su identidad. + +- **`callback_urls`** (Opcional) - URLs a las que el servicio puede enviar callbacks para diferentes tipos SEP. Funciona de la misma manera que para clientes custodiales (ver arriba). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/observer/observer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/observer/observer.mdx new file mode 100644 index 0000000000..58a8364998 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/observer/observer.mdx @@ -0,0 +1,28 @@ +Usar el Payment Observer te permite delegar este paso a la Anchor Platform. Para habilitar el Payment Observer, usa el flag `--stellar-observer` en la sección de comandos del [archivo compose](../../getting-started.mdx#configuration). + +El Payment Observer rastreará todas las transacciones enviadas a la cuenta de distribución. Cuando se detecta la transacción con el memo esperado en la red, el estado cambiará automáticamente a `pending_anchor` y se emitirá un evento (si se usa Kafka). + +Para actualizar los estados de la transacción, el observer realiza las solicitudes JSON-RPC correspondientes a la plataforma. Debe usar la siguiente URL. + + + +```bash +# dev.env +PLATFORM_API_BASE_URL=http://platform-server:8085 +``` + + + +:::caution + +El Payment Observer no validará los montos. Es tu responsabilidad verificar que el monto enviado por el usuario sea correcto. + +::: + +:::info + +Si ya tienes un sistema que monitorea pagos, asegúrate de que la lógica del sistema coincida con la descripción a continuación: + +Primero, espera a que la transacción sea incluida en el libro mayor (usando un SDK). Esta transacción debe tener el memo esperado y la dirección de destino (cuenta de distribución). Una vez que esta transacción haya sido detectada y verificada, notifica al usuario que los fondos han sido recibidos usando la solicitud JSON-RPC [notify_onchain_funds_received](#funds-received-1). + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/error.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/error.mdx new file mode 100644 index 0000000000..435038af4b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/error.mdx @@ -0,0 +1,16 @@ +
+ +| Código de error | Significado | +| :-------------- | :---------------------------------------------------- | +| \-32600 | El JSON enviado no es un objeto Request válido | +| \-32601 | El método no existe o no está disponible | +| \-32602 | Parámetro(s) del método no válido(s) | +| \-32603 | Error interno JSON-RPC | + +
+ +:::tip + +También haremos referencia a una variable `$transaction_id`. Esta es una identificación de la transacción que se devuelve desde la Plataforma Anchor en una solicitud de inicio de retiro o depósito. Puedes obtener el ID de la transacción conectando la cartera de prueba a tu instancia local de la Plataforma Anchor. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/request.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/request.mdx new file mode 100644 index 0000000000..7721a19ba7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/request.mdx @@ -0,0 +1,29 @@ +El objeto Request debe contener los siguientes atributos: + + + +- ATRIBUTO + - TIPO DE DATO + - DESCRIPCIÓN +- jsonrpc + - cadena + - Una cadena que especifica la versión del protocolo JSON-RPC. DEBE ser exactamente "2.0" +- method + - cadena + - Una cadena que contiene el nombre del método a invocar. La lista de métodos disponibles puede verse en [Métodos JSON-RPC][json-rpc-methods] +- params + - objeto + - Un valor estructurado que contiene los parámetros correspondientes a la llamada del método, que se usarán durante la invocación del método. +- id + - cadena + - Un identificador establecido por el cliente. El Servidor responderá con el mismo valor en el objeto Response. + + + +:::tip + +Es posible proporcionar varias actualizaciones en una sola solicitud JSON-RPC (colocando varios objetos de solicitud JSON-RPC). Cuando una actualización se realiza de esta forma, todas las actualizaciones se harán secuencialmente. + +Lo más importante es que cada solicitud JSON-RPC no es atómica. Si una actualización falla, todas las actualizaciones anteriores se APLICARÁN y todas las actualizaciones posteriores también se procesarán y APLICARÁN. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/response.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/response.mdx new file mode 100644 index 0000000000..61ba90b81e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/response.mdx @@ -0,0 +1,33 @@ +La respuesta se expresa como un solo objeto JSON, con los siguientes atributos: + + + +- ATRIBUTO + - TIPO DE DATO + - DESCRIPCIÓN +- jsonrpc + - cadena + - Una cadena que especifica la versión del protocolo JSON-RPC. Está establecido en "2.0" +- result + - objeto + - Un valor estructurado que contiene los detalles actualizados de la transacción +- id + - cadena + - Un identificador enviado por el cliente +- error + - objeto + - Un valor estructurado que contiene los detalles del error + - id + - cadena + - Id único de la transacción para la cual ocurrió un error + - code + - número + - Un número que indica el tipo de error que ocurrió. Por favor ve una lista de [códigos de error](#error-codes) abajo + - message + - cadena + - Una cadena que proporciona una breve descripción del error + - data + - cadena + - Un valor primitivo o estructurado que contiene información adicional sobre el error + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx new file mode 100644 index 0000000000..bc2ecb5eb8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx @@ -0,0 +1,17 @@ +Antes de hacer solicitudes JSON-RPC, primero vamos a crear una plantilla para hacer una solicitud a la Plataforma Anchor. + + + +```bash +# call-json-rpc.sh +#!/usr/bin/env bash + +curl localhost:8085 \ + -X POST \ + -H 'Content-Type: application/json' \ + --data "@$1" +``` + + + +Este pequeño script hará una solicitud JSON-RPC a la Plataforma Anchor alojada en el puerto predeterminado (8085). Los datos de la transacción JSON almacenados en el archivo proporcionado se usarán como cuerpo (las solicitudes deben ser un arreglo). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/api_key.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/api_key.mdx new file mode 100644 index 0000000000..7e1de23599 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/api_key.mdx @@ -0,0 +1,14 @@ +Para habilitar la autenticación mediante clave API, modifica tu archivo `dev.env`: + + + +```bash +# dev.env +PLATFORM_API_AUTH_TYPE=api_key +# Will be used as API key +SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" +``` + + + +Una vez habilitado, todas las solicitudes deben incluir un encabezado `X-Api-Key` válido, configurado con la clave API correspondiente. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/jwt.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/jwt.mdx new file mode 100644 index 0000000000..8d5955831b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/jwt.mdx @@ -0,0 +1,16 @@ +Para habilitar la autenticación JWT, modifica tu archivo `dev.env`: + + + +```bash +# dev.env +PLATFORM_API_AUTH_TYPE=jwt +# Will be used to sign the JWT token +SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" +``` + + + +Anchor Platform utiliza el algoritmo HMAC SHA-256 (HS256) para firmar los tokens JWT. Asegúrate de que `SECRET_PLATFORM_API_AUTH_SECRET` tenga al menos 32 caracteres para mayor seguridad. + +Una vez habilitado, todas las solicitudes deben incluir un encabezado `Authorization` válido con el formato `Bearer `. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/security.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/security.mdx new file mode 100644 index 0000000000..624a9725b3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/component/security/security.mdx @@ -0,0 +1,11 @@ +:::caution + +Por defecto, los endpoints de la API de la Plataforma como `GET /transactions` y `GET /transactions/:id` no están protegidos y son accesibles para cualquier persona que tenga acceso al servidor, incluidas las aplicaciones de wallet. + +::: + +:::info + +Se recomienda mantener el servidor de la Plataforma accesible solo desde la red privada. Sin embargo, es posible que quieras añadir una capa adicional de protección asegurando la API. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/README.mdx new file mode 100644 index 0000000000..1cdd8caa32 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/README.mdx @@ -0,0 +1,10 @@ +--- +title: Manejo de eventos +sidebar_position: 120 +--- + +import DocCardList from "@theme/DocCardList"; + +Recibe actualizaciones de transacciones mediante eventos webhook HTTP. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/delivery.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/delivery.mdx new file mode 100644 index 0000000000..f9f45c69ef --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/delivery.mdx @@ -0,0 +1,30 @@ +--- +title: Garantías de entrega +sidebar_position: 30 +--- + +## Garantías de entrega + +Dependiendo del sistema de mensajería que uses, habrá diferentes garantías de entrega. El servicio de eventos utiliza Kafka como sistema de mensajería, por lo que las garantías de entrega dependerán de la configuración del productor y del corredor que utilices. Dependiendo del número de particiones configuradas para el tema `TRANSACTION`, los eventos pueden entregarse fuera de orden. + +:::caution + +Cualquier lógica de transacción que dependa del orden debe usar el `status` de la transacción y los campos `updated_at` para determinar el orden de los eventos. + +::: + +Las siguientes subsecciones describirán las garantías de entrega desde la perspectiva del cliente y del servidor de negocios. + +### Garantías de entrega para el cliente + +Para cada cliente, el servicio de eventos intentará entregar cada evento hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el cliente no es accesible después de tres intentos, el servicio de eventos dejará de intentar entregar cualquier evento a ese cliente. + +### Garantías de entrega para el servidor de negocios + +El servicio de eventos intentará entregar cada evento al servidor de negocios hasta tres veces con un retroceso exponencial. Si el evento no se entrega después de tres intentos debido a errores HTTP 4xx o 5xx, el evento será omitido. Si el servidor de negocios no es accesible después de tres intentos, el servicio de eventos dejará de intentar entregar cualquier evento al servidor de negocios. + +:::note + +Las garantías de entrega para el servidor de negocios son las mismas que las garantías de entrega para el cliente. En el futuro, el servicio de eventos omitirá los eventos que no se entreguen a clientes que no estén accesibles. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/getting-started.mdx new file mode 100644 index 0000000000..90b7e66ff4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/getting-started.mdx @@ -0,0 +1,28 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Anchor Platform proporciona un servicio de eventos que envía notificaciones por webhook HTTP a: + +**Servidores empresariales** + +- Cambios en el estado de las transacciones +- Actualizaciones de cotizaciones +- Cambios en el estado de KYC del cliente + +Los esquemas de eventos para servidores empresariales están definidos en la [referencia de la API](../../api-reference/callbacks/post-event.api.mdx). + +**Aplicaciones cliente** + +- Cambios en el estado de las transacciones que afectan a sus usuarios +- Cambios en el estado de KYC del cliente que afectan a sus usuarios + +_Los esquemas de eventos para aplicaciones cliente están definidos en sus respectivos SEPs:_ + +- [Eventos de transacción SEP-6](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) +- [Eventos de cliente SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) +- [Eventos de transacción SEP-24](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) +- [Eventos de transacción SEP-31](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) + +Esto elimina la necesidad de que los servidores empresariales y las aplicaciones cliente realicen sondeos continuos a las APIs para obtener actualizaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/integration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/integration.mdx new file mode 100644 index 0000000000..859637fa08 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/events/integration.mdx @@ -0,0 +1,161 @@ +--- +title: Integración +sidebar_position: 20 +--- + +Esta guía te mostrará cómo integrarte con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo soporta Apache Kafka como el intermediario de mensajes backend. + +Se asume que estás familiarizado con Kafka y no se cubrirá cómo configurar un clúster de Kafka. + +## Requisitos + +Anchor Platform enviará eventos al tema de Kafka `TRANSACTION`. El servicio de eventos consumirá eventos de este tema y los enviará a los endpoints apropiados. + +## Configuración + +Primero, el productor Kafka del servicio de eventos debe configurarse usando la sección `event.queue` del archivo de configuración o estableciendo las variables de entorno. A continuación se muestra el conjunto de variables de entorno requeridas para configurar el productor Kafka del servicio de eventos: + + + +```bash +# dev.env +EVENTS_ENABLED=true +EVENTS_QUEUE_TYPE=kafka +EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 +``` + +```yaml +# dev.services.yaml +events: + enabled: true + queue: + type: kafka + kafka: + bootstrap_server: localhost:9092 +``` + + + +Anchor Platform permite configurar un subconjunto de la configuración del cliente del productor Kafka. Consulta el [archivo de valores por defecto][default-values-file] para más información sobre lo que está disponible. Para más información sobre la configuración del cliente del productor Kafka, visita la [documentación de Kafka](https://kafka.apache.org/documentation/#producerconfigs). + +Luego, el procesador de eventos debe configurarse en la sección `event_processor` del archivo de configuración de Anchor Platform o estableciendo las variables de entorno. + + + +```bash +# dev.env +EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true +EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true +``` + +```yaml +# dev.services.yaml +event_processor: + client_status_callback: + enabled: true + callback_api_request: + enabled: true +``` + + + +Esto habilitará que el procesador de eventos comience a procesar eventos del tema `TRANSACTION`. En este ejemplo, el procesador de eventos enviará eventos a endpoints de callback de cliente y servidor de negocios. + +## Recibir Eventos + +El servicio de eventos puede usarse para enviar eventos a endpoints de callback de cliente y servidor de negocios. El servicio de eventos enviará eventos a estos endpoints como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud. + +### Como aplicación cliente + +Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios e información del cliente. El esquema de los datos del evento dependerá del tipo de evento que se envíe. + +Para recibir eventos como aplicación cliente, necesitarás exponer URLs de callback a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite configurar endpoints únicos según el tipo de evento. + +Anchor Platform solo enviará eventos a clientes listados en la configuración de clientes. Consulta la [documentación de configuración de clientes][clients-config] para más información. + +#### Firma de Callback + +Anchor Platform firma las solicitudes de callback que envía a las aplicaciones cliente. La firma se incluye en la cabecera `Signature` de la solicitud. La especificación de la firma de la URL de callback se puede encontrar en las especificaciones del protocolo SEP correspondientes. + +- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) +- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) +- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) +- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) + +### Como servidor de negocios + +Además de las actualizaciones de estado de transacciones SEP, los servidores de negocios pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información de clientes SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la [documentación de la API de eventos](../../api-reference/callbacks/post-event.api.mdx) para más información sobre el esquema de los datos del evento. + +Para recibir eventos como servidor de negocios, necesitarás exponer una URL de callback a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. + +#### Configuración + +La API de callback del servicio de eventos puede configurarse usando la sección `callback_api` del archivo de configuración de Anchor Platform o estableciendo las variables de entorno. + +El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación JWT: + + + +```bash +# dev.env + +# note `/callback` will not be used for event callbacks +# instead events will be sent to `http://localhost:8081/event` +# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path +CALLBACK_API_BASE_URL=http://localhost:8081/callback +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" +``` + +```yaml +# dev.services.yaml +callback_api: + base_url: http://localhost:8081/callback + auth: + type: jwt + jwt: + expiration_milliseconds: 30000 + http_header: Authorization +``` + + + +El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación por clave API: + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://localhost:8081/callback +CALLBACK_API_AUTH_TYPE=api_key +CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key +SECRET_CALLBACK_API_AUTH_SECRET="your API key" +``` + +```yaml +# dev.services.yaml +callback_api: + base_url: http://localhost:8081/callback + auth: + type: api_key + api_key: + http_header: X-Api-Key +``` + + + +Esto configura la API de callback del servicio de eventos que se usará para enviar eventos a endpoints de callback de clientes y servidores de negocios. Las siguientes son las opciones de configuración soportadas: + +- `base_url`: La URL base del endpoint de callback del servidor de negocios. +- `secret`: El secreto que se usará al enviar eventos al endpoint de callback del servidor de negocios. Se usa para firmar el cuerpo de la solicitud cuando la autenticación JWT está activada y es la clave API cuando la autenticación por clave API está habilitada. +- `auth`: El método de autenticación que se usará al enviar eventos al endpoint de callback del servidor de negocios. Los siguientes métodos de autenticación son soportados: + - `JWT`: El servicio de eventos enviará un JSON Web Token (JWT) en la cabecera `Authorization` de la solicitud. Las siguientes son las opciones de configuración soportadas: + - `expiration_milliseconds`: El tiempo de expiración del JWT en milisegundos. + - `http_header`: La cabecera en la cual se enviará el JWT. + - `API_KEY`: El servicio de eventos enviará una clave API en la cabecera `Authorization` de la solicitud. Las siguientes son las opciones de configuración soportadas: + - `http_header`: La cabecera en la cual se enviará la clave API. + +[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[clients-config]: ../../sep-guide/sep10/README.mdx#config-with-client-attribution diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/getting-started.mdx new file mode 100644 index 0000000000..000a20bb05 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/admin-guide/getting-started.mdx @@ -0,0 +1,139 @@ +--- +title: Comenzar +sidebar_position: 30 +--- + +# Comenzar + +Esta guía te ayudará a poner en marcha rápidamente la Anchor Platform (solo TESTNET) con una referencia comercial funcionando localmente usando Docker Compose. + +Ten en cuenta que esto no está pensado para usarse en producción. + +## Requisitos previos + +- Tener instalado [Docker](https://www.docker.com/get-started) y Docker Compose +- Tener instalado el [Stellar CLI](https://github.com/stellar/stellar-cli) + +## Inicio rápido + +### 1. Clonar el repositorio de Anchor Platform + +```bash +git clone https://github.com/stellar/anchor-platform +``` + +### 2. Navegar al directorio quick-run + +```bash +cd anchor-platform/quick-run +``` + +### 3. Iniciar todos los servicios + +```bash +./ap_start.sh +``` + +### 4. Verificar que la plataforma esté funcionando + +Espera unos momentos para que los servicios se inicialicen y luego verifica que la plataforma responda: + +```bash +curl http://localhost:8080/.well-known/stellar.toml +``` + +Deberías ver el archivo de configuración Stellar TOML retornado. + +### 5. Comprobar el estado del servicio + +```bash +docker-compose ps +``` + +Todos los servicios deberían mostrarse como "Up" en la columna de estado. + +## Qué incluye + +La configuración `quick-run` incluye: + +- **docker-compose.yaml** - Definiciones completas de servicios con todas las dependencias +- **dev.env** - Variables de entorno preconfiguradas +- **config/** - Archivos de configuración requeridos: + - `assets.yaml` - Definiciones de activos + - `clients.yaml` - Configuraciones de clientes + - `reference-config.yaml` - Ajustes del servidor de referencia + - `stellar.localhost.toml` - Archivo TOML SEP-1 + +:::tip + +Para más información sobre cómo configurar activos y carteras de clientes, consulta la guía [Assets and Client Wallets](./assets-and-client-wallets.mdx). + +::: + +## Pruebas con Stellar Demo Wallet + +Puedes probar la Anchor Platform usando el [Stellar Demo Wallet](https://demo-wallet.stellar.org): + +1. Abre el [Stellar Demo Wallet](https://demo-wallet.stellar.org) en tu navegador. +2. Haz clic en el botón **"Generate keypair for new account (testnet only)"**. +3. Haz clic en el botón **"Create Account"** junto a la clave PUBLIC. +4. Ahora deberías ver `XLM` disponible en la sección **Balances**, indicando que tu cuenta está cargada. +5. Haz clic en **"Add home domain"** e ingresa la siguiente URL: + ``` + http://localhost:8080 + ``` + Esto conecta la demo wallet con tu instancia local de Anchor Platform corriendo en el puerto 8080. +6. Ahora deberías poder realizar transacciones SEP (depósitos, retiros, etc.) con tu instancia local de Anchor Platform. + +## Personalizando la configuración + +Para modificar ajustes: + +1. Edita `dev.env` para variables de entorno +2. Edita los archivos en `config/` para configuraciones específicas de servicios +3. Reinicia los servicios: `docker-compose restart` + +## Detener servicios + +Para detener todos los servicios: + +```bash +docker-compose down +``` + +## Cómo implementar tu servidor de callback empresarial + +Una vez que tengas la Anchor Platform en marcha, puedes reemplazar el servidor de referencia con tu propia implementación del servidor de callback empresarial. Esto te permite implementar tu propia lógica empresarial para manejar depósitos, retiros y otras operaciones del anchor. + +### 1. Apagar el servidor de negocio de referencia + +Después de que la Anchor Platform esté iniciada y funcionando, detén el servicio del servidor de referencia: + +```bash +docker-compose stop reference-server +``` + +Esto detiene el servidor de referencia manteniendo la Anchor Platform y otros servicios en funcionamiento. La plataforma seguirá funcionando, pero ya no recibirá callbacks del servidor de referencia. + +### 2. Implementa y ejecuta tu propio servidor de referencia + +Implementa tu propio servidor de callback que cumpla con la API de callback de Anchor Platform. + +Puedes usar el [kotlin-reference-server](https://github.com/stellar/anchor-platform/tree/develop/kotlin-reference-server) como implementación de referencia para entender los endpoints y estructuras de datos requeridos. + +Asegúrate de que tu servidor de callback sea accesible en `http://localhost:8091` (o el endpoint configurado) y que la Anchor Platform pueda conectarse. + +Tu servidor debe: + +- Escuchar en el puerto **8091** (o configurar la plataforma para usar otro puerto) +- Implementar los endpoints de callback requeridos según la documentación de la API de Anchor Platform +- Manejar la lógica empresarial para: + - Cálculo de tarifas + - Determinación de tasa de cambio + - Actualizaciones de estado de transacciones + - Gestión de información del cliente (KYC) + - Procesamiento de depósitos y retiros + +### 3. Prueba tu integración usando la demo wallet + +Sigue los pasos descritos en la sección [Pruebas con Stellar Demo Wallet](#testing-with-stellar-demo-wallet) arriba y verifica que tu servidor maneje correctamente los depósitos, retiros y otras operaciones SEP iniciadas desde la wallet. diff --git a/i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/README.mdx similarity index 100% rename from i18n/es/docusaurus-plugin-content-docs-ap/version-2.10/api-reference/README.mdx rename to i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/README.mdx diff --git a/ap_versioned_docs/version-2.8/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/_category_.json similarity index 100% rename from ap_versioned_docs/version-2.8/api-reference/_category_.json rename to i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/_category_.json diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/README.mdx new file mode 100644 index 0000000000..367a0818ca --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/README.mdx @@ -0,0 +1,18 @@ +--- +title: Servidor de callbacks +sidebar_position: 20 +--- + +La plataforma Anchor proporciona varias funcionalidades de callback para el servidor de tu negocio. + + + +| | | +| ------ | --------------------------------------- | +| GET | [/customer](./get-customer.api.mdx) | +| PUT | [/customer](./put-customer.api.mdx) | +| DELETE | [/customer/:id](./del-customer.api.mdx) | +| POST | [/event](./post-event.api.mdx) | +| GET | [/rate](./get-rates.api.mdx) | + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx new file mode 100644 index 0000000000..4a24f0d8fb --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx @@ -0,0 +1,80 @@ +--- +id: del-customer +title: "Delete Customer Data" +description: "The request for this endpoint is identical to the" +sidebar_label: "Delete Customer Data" +hide_title: true +hide_table_of_contents: true +api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= +sidebar_class_name: "delete api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The request for this endpoint is identical to the +[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) +request defined in SEP-12. + +Delete the customer's data or queue the customers data for deletion. + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx new file mode 100644 index 0000000000..ee11a1434b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx @@ -0,0 +1,91 @@ +--- +id: get-customer +title: "Retrieve Customer's Info" +description: "The request and response for this endpoint is identical to the" +sidebar_label: "Retrieve Customer's Info" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The request and response for this endpoint is identical to the +[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) +request and response defined in SEP-12. + +This endpoint allows clients to: + + 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 +[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request + +If the server does not have a customer registered for the parameters sent in the request, it should return the +fields required in the response. The same response should be returned when no parameters are sent. + + 2. Check the status of a customer that may already be registered + +This allows clients to check whether the customers information was accepted, rejected, or still needs more info. +If the server still needs more info, or the server needs updated information, it should return the fields required. + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx new file mode 100644 index 0000000000..2db4112e09 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx @@ -0,0 +1,107 @@ +--- +id: get-rates +title: "Retrieve Rates" +description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" +sidebar_label: "Retrieve Rates" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must +use exchange rates that are communicated to the client application requesting the transaction. When clients make +requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. + +Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or +[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the +client requests a firm rate. + +Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter +for this reason. + +Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, +either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either +`sell_asset` or `buy_asset` is a Stellar asset. + + +Upon receiving the response, the Anchor Platform will validate the amount and price of the response. + +If the validation fails, the Platform will respond to the client application's request with a HTTP status +code of `502 Bad Gateway`. + +The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: + +- if `rate.fee` exists, + - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. + - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. + - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. + - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. +- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. + +The `~=` is defined as equality within rounding error. + The rounding error is defined as `10^(-significant_decimals)` + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx new file mode 100644 index 0000000000..81fc5d4b7c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx @@ -0,0 +1,76 @@ +--- +id: post-event +title: "Receive an Event" +description: "Receive a JSON object representing an event." +sidebar_label: "Receive an Event" +hide_title: true +hide_table_of_contents: true +api: eJztHF1v2zjyrxB86R1gO4nb/Ti/dbtZIIfbNlvnXi4JXFoaW2wkUiWpOEbg/34YkpIoWXZso0CzgPISmx8zw+HMcD5oPlPDlppObunlIwij6f2APg015LZtenk9/JkO7P/xO//h7QUOkjkoZrgUVzGd0FxqYwHQAY1BR4rn2Ecn9DNEwB+BMPLv6aePRM6/QmSIglyBBmG4WBImCODc0Z2gA6rgWwHa/CbjNZ0800gKg3Anz5Tlecoji/Tsq0boz1RHCWQMP5l1DnRCHQI6oLlCEg0Hjb08DsZoo7hY0s3AN7Q7BhREkSEDjGJCswhRziIFzEBMB41WbZgp9CxKmFjazm+FNBAMjgptZAZqVuSxbbpvs+gmARKAdMwgSNKIfGCCzIFIAUQuiEmALGSayhUXy8mdGJIvHRR+IUPCGhBXTBPfSUyiZLFMLKzp5TUBEeeSC6NHBAnJ2TqVLCZcEy7soBDFF7LgkMajLdRNNiAFONW1IuVNehKkxw09GmuDv26ptqmxyEfOygW+/ZW8v77aicbOrRFYoeAZaMOyvEsyFlJlzNAJxc0c4lCc4gG/LIfBqvCrFPBpQSe329NQDbiCGKWQoxxpyOmAPnBhv1jG0gFlmSyEmcFTDpGTtxi04cJqyYxFEXa7CcpAPGMG5e8g3UCEe1Rj/I7ebzxBe4bFkEvNkYQVN0ms2IqldqJfQsfUpnZcS635PK2E6ZGlBWqBIs4qhYKlA8RcRDLLUzCASug/xpazi0LE9iM85ZbHAwpKSYW7BSLmYjnTBtKUhS3wZEAJlgZNhQY1s+gXoGaWxTt7A2LKAUxESQOpUYVuQ6ADKuQsY+oBsMtIOdMZS1P/OWVqCbilhpsUuTi1XJpeXo/f7TNwbQvEtVMBVA2WrthaE8hys97F6BECbwtfh/SHYuyGo9BqDR1y6Pu7ZNHN2O7Z1At/72bXZHHxygiShXktFC0AZjEYxlP9EklGGiv0Oyhy3ccQhMLXxsyUYms6oNxA9iJFgmVQmb5timx3J0G7mddQh30s/APg92DsZqvPrWxT+gG7bGttjg8+Y7z/cNScyu4dNasyWso5b0fSiXbPuwXlts3m68MBZKA1W3bvoTPenSLSpSmzyti/EsXzZC0AXgtFOVtn1vM/QhsP8h94PHvJva5P2ep0ve9S1B9tK18LKT42OlIhSx04YtKmYdg+e6Wzhsvu2KzhdJ1ox61b6z12pA3l4hFSmVsnqRTLg9zVrpDq6vcyZApDD+/3T906iACzkuph5OxOJg8DjSNPAL5TH3ZgwGFHoCHTRBZpjPGij64JXzhIXBMhDRFFmo7C8BaekO0J0wluWmy1L9iRw6SlM57lGWzRjRGagiXXBhTE+7hVCcJBzGoEz37mgGDmgHFhMwxp2sFEtxQuxehUO7glzR6I2+gB1bJQEQRhWHdwtsuTOV7SPf42az8GrG2QeBh7vRi+BLyWKz/SMsQks/KrzXwsWJGi/JSNmy02HUSUH0zmgBscw5ybbZEK193F+hMwRQril1C9pvOrack9tTdBFmJzwAYcyr5NfZCHJ8QuL7jb4L5mY0l4TKy1DCLuPyGTN0hjddTOyoU1Sb1akFzJRx5DPCAGQ26LTleEFBpiG3A7MK2Ae7DNpwDd35JdUcrRFMUyY7wr8KpG7Izpyuxqp3neXjrGJsQkDI0YN9wnRFsc0GQujUuQahAxKMJETHwspFyWuqmqbtjLJHiuXsVvNGEKfDZce4pizIcv1piRHSKh2uJ1KXcydTkh8t4mjfSAzAtj+e77XZ49GDG6E3fiD6kIs0MuxqTk1cBlPnns056BBOpiseARt/lnSRZFmq5runBWCaOUk3mhuQCt35DfWPQAIm6h3aLcI/cm5Itd4heUI0+MbulDC97PpM5HnQzwoAimS3wsz7zSVJwIPJoyt+4Y7s6CQ4+aS24SK5y18pUnj1Tkz+IJ4qqBxbECrUtSpBhGCePo/Bhu1qc4sy6rWm619ZnqFWLmljCiE6ZqIgZklYByTl6zBzWo2o8R7Th/rmJnvZxG9XrT602vN4fqzaYM0WSvOL3i9IpzuOLUrUH8U1bKTq7Afv/KKl6wOKCy6o/P71hMfXvxA4up3oeuGyr3ICyQBjGlWEh/pyIYUd22CLu7yqNvL75rebTFur482pdH+/JoXx7ty6N9ebQvj/bl0b482pdH+/JoXx7ty6Ov7Pzqy6OvpjzK+/Lojy6PXrl0nP+RjT0DSiZon1StS6FW3Uv4I3Jlx63JCnN07R+b3LoE5f0/EmNyPTk7847SSKrlWa6kkZFMzzTkw4vxPwd3wm6//62QFwB/XpU/6wjzyzZNOiKfMJ+54hq2MrTN7GU5ra/k9on1PrHeV3J7ven1pq/k9orTK87fRXF2VXKxqHdfFhdOzsxqSNPZnvDS9e8s38yL9b7ZtnvnZFdE1UclMHPFo27331afZrv7e+vTW5/e+hzt7h6Quzk6Sxwi+8uaryB8P9GUBSA/lJBcwmsrM+szsuU7BuEjCEFywj3xUYLQuRTaoR+fn28ndHCP3FsWXBNdRBFo7TQzVxK/IOdtOoHFa1RbH0YQgbkR9ySIfbahREXmMl4jMHv3wkrLuxcRc/HIUh4Tmzf6am9idEH16QVtxcJeYCG+0OoEARN3Qrt6zu0zfYA1nZQvpQyolcK9L6Zs7lG0TSLL51J89pdO6Bn4l1M0qEebq7l9poVK6YSW6ZKIpemcRQ+j0mwN3dgRPDEsYbunBEaRzCgiwtdRPtfvqFy6QaWc1HLo5WXHKyf1Mxh0fD5+Nzz/ZTj+183FT5OfLibjX0fnv1z8jzafvmg+btHEZS89UcsTd7MpeBqivL7UvGfU1pqO+zTlORsMckfr1r0Gf9/liAn+PsohM9r3Rdylj50zgiset+WFjPYyd5u+Eu194xZFwOjg8sS+jQsvTOwb17wksW9k98WIvTTsugyxb1J1AaJec3DvoeNmwxGb7qvZh8yoK2K3bVmvavtBCb92CQ+UqEOHNqve+xjXqHTvHri531nJ3lqpO62b38u1+/JpeBTuo64uatbg9vC4WagLamrtak1Dj7aLNNuKdwjbN9agn4xqZxnocM5WxYNWWaWtFLM9E1sFhnpqo64QNIflhDpV3iS8Y7lNyloJw2NnN+OWE2ZX0WH7gArCvnZz24CHQV6rtT00DOn2HqQuTAtO5zB6Czbh9MVvu64tsC/bhqZTGoKwXiGWjLAD/Rh3XL0dnY/OO/336VpEiZJCFpp88A6Oxse6iM4hqstQWPILowsXPpHrlBl0pNGbRL/OBlz74cawQO+JeJOpScZiIHMXIVbwVglPgXDrPXpP1cUVfhpZKJlhmGGVhATP0lnH8k44b+yNrlxMjd6tSUBDjZotFljdamBuj+9CYaPAyq2vlje1/iAd0JRHIDTUVz3p+5xFCZCx3Ybar5ycna1WqxGzvbYQ56fqs/9cfbj8OL0cjkfno8RkqVUbdFozJgLA1dt+gnQ+/he83nf8O4CBxTrLU7RPG0/9s3ecb6lznO8HNEGHenJLn5/nTMN/VbrZYPO3AtSaTm7v0UNXnM2Rabd4vCXArPGqXPkPjtLhjQuEvEO//eZgw4+//jS9QbX3bxVmMsY5iq3Q+rIVnVCKLyVW18Bs2zNNmVgWzoNxMPHv/7YTTgw= +sidebar_class_name: "post api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Receive a JSON object representing an event. + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx new file mode 100644 index 0000000000..e39841ff75 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx @@ -0,0 +1,85 @@ +--- +id: put-customer +title: "Create or Update Customer Info" +description: "**The Anchor Platform does not persist any customer KYC data.**" +sidebar_label: "Create or Update Customer Info" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "put api-method" +info_path: docs/platforms/anchor-platform/api-reference/callbacks/callbacks-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +**The Anchor Platform does not persist any customer KYC data.** + +The request and response for this endpoint are identical to the +[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) +request and response defined in SEP-12. + +Client applications make requests with the following request body, which is forwarded to the anchor. Anchors +must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will +be forwarded to the anchor as with the `application/json` content type. Requests containing +binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/README.mdx new file mode 100644 index 0000000000..a6aa25336e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/README.mdx @@ -0,0 +1,17 @@ +--- +title: Servidor de Platform Server +sidebar_position: 10 +--- + +import { MethodTable } from "@site/src/components/MethodTable"; + +Los datos en la Anchor Platform están disponibles a través de dos APIs diferentes: una API REST y una API JSON-RPC. Cada una de estas APIs tiene documentación asociada aquí. + + + +| | | +| ------------------------------------- | - | +| [REST API](./transactions/README.mdx) | | +| [JSON-RPC API](./rpc/README.mdx) | | + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/README.mdx new file mode 100644 index 0000000000..caecc23ae8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/README.mdx @@ -0,0 +1,10 @@ +--- +title: API JSON-RPC +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +Interactúa con tu instancia de Anchor Platform mediante solicitudes RPC ligeras y fáciles de usar. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json new file mode 100644 index 0000000000..8fa9f9e324 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json @@ -0,0 +1,10163 @@ +{ + "openrpc": "1.2.6", + "info": { + "title": "Anchor Platform", + "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", + "termsOfService": "https://stellar.org/terms-of-service", + "contact": { + "name": "Stellar Development Foundation", + "url": "https://stellar.org/connect", + "email": "hello@stellar.org" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + }, + "version": "2.8.4" + }, + "servers": [ + { + "name": "Platform API", + "url": "https://platform-server.exampleanchor.com", + "summary": "Example URL endpoint for the Platform Server.", + "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." + } + ], + "methods": [ + { + "name": "do_stellar_payment", + "summary": "Submits a Stellar payment", + "description": "Submits a payment to a stellar network by a custody service.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "do_stellar_paymentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "do_stellar_paymentExample", + "description": "Example request to the `do_stellar_payment` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Do Stellar payment" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "do_stellar_refund", + "summary": "Submits a Stellar refund", + "description": "Submits a refund payment to a stellar network by a custody service", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "description": "An object describing refund associated with this transaction.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + } + } + } + } + ], + "result": { + "name": "do_stellar_refundResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "do_stellar_refundExample", + "description": "Example request to the `do_stellar_refund` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Do Stellar refund" + }, + { + "name": "refund", + "value": { + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "get_transaction", + "summary": "Retrieve a transaction.", + "description": "Retrieve a transaction by its ID.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + } + ], + "result": { + "name": "get_transactionResponse", + "schema": { + "title": "Platform Transaction", + "description": "A platform transaction object", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "funding_method": { + "description": "Funding method used for transferring or settling assets.", + "type": "string" + }, + "type": { + "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", + "type": "string" + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "user_action_required_by": { + "title": "user_action_required_by", + "description": "Time and date by which user action is required.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + }, + "stellar_transactions": { + "type": "array", + "items": { + "title": "stellar_transaction", + "type": "object", + "required": [ + "id", + "created_at", + "envelope", + "payments" + ], + "properties": { + "id": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "created_at": { + "title": "created_at", + "description": "The date and time when the transaction is created.", + "type": "string" + }, + "envelop": { + "description": "The transaction envelope, containing all the transaction information.", + "type": "string" + }, + "payments": { + "type": "array", + "items": { + "required": [ + "id", + "payment_type", + "source_account", + "destination_account", + "amount" + ], + "properties": { + "id": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string" + }, + "payment_type": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string", + "enum": [ + "payment", + "path_payment" + ], + "default": "payment" + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "amount": { + "type": "object", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "external_transaction_id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "refund_memo": { + "title": "memo", + "type": "string" + }, + "refund_memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "client_domain": { + "description": "The domain of the client.", + "type": "string" + }, + "request_client_ip_address": { + "description": "The IP address of the client requesting the transaction.", + "type": "string" + }, + "customers": { + "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", + "type": "object", + "properties": { + "sender": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + }, + "receiver": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + }, + "creator": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + } + }, + "examples": [ + { + "name": "get_transactionExample", + "description": "Example request to the `get_transaction` method.", + "params": [ + { + "name": "id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + } + ], + "result": { + "name": "platformTransactionResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "31", + "kind": "receive", + "status": "completed", + "funding_method": "SWIFT", + "amount_expected": { + "amount": "100", + "asset": "iso4217:USD" + }, + "amount_in": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": "98.0000000", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": "2.0000", + "asset": "iso4217:USD" + }, + "quote_id": "quote-id", + "message": "Please don't forget to foo bar", + "refunds": { + "amount_refunded": { + "amount": "90.0000", + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": "8.0000", + "asset": "iso4217:USD" + }, + "payments": [ + { + "id": "1111", + "id_type": "stellar", + "amount": { + "amount": "50.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + }, + { + "id": "2222", + "id_type": "stellar", + "amount": { + "amount": "40.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + } + ] + }, + "stellar_transactions": [ + { + "id": "stellar-tx-id", + "memo": "my-memo", + "memo_type": "text", + "envelope": "here_comes_the_envelope", + "payments": [ + { + "id": "payment-id", + "amount": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "payment_type": "payment", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + ] + } + ], + "external_transaction_id": "external-tx-id", + "customers": { + "sender": { + "id": "sender-id" + }, + "receiver": { + "id": "receiver-id" + } + }, + "creator": { + "id": "creator-id" + } + } + } + } + ] + }, + { + "name": "get_transactions", + "summary": "Retrieve a list of transactions.", + "description": "Query a list of transactions by SEP, transaction status or other criteria.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "sep", + "summary": "Sep of the transaction.", + "description": "Sep of the transaction belongs to", + "required": true, + "schema": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + } + }, + { + "name": "order_by", + "summary": "The field that transactions will be ordered by .", + "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", + "required": false, + "schema": { + "title": "order_by", + "description": "The order by string used to sort the results.", + "type": "string", + "enum": [ + "created_at", + "transfer_received_at", + "user_action_required_by" + ], + "default": "created_at" + } + }, + { + "name": "statuses", + "summary": "The statuses of transactions.", + "description": "The statuses of the transaction to filter by.", + "required": false, + "schema": { + "title": "status", + "description": "The statuses of the transaction to filter by.", + "type": "array", + "enum": [ + "incomplete", + "completed", + "refunded", + "expired", + "error", + "pending_stellar", + "pending_external", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "pending_anchor", + "pending_trust", + "pending_user", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update" + ] + } + }, + { + "name": "page_size", + "summary": "The number of transactions to return.", + "description": "The number of records to return in each page.", + "required": false, + "schema": { + "title": "page_size", + "description": "The number of records to return in each page.", + "type": "integer", + "default": 20 + } + }, + { + "name": "page_number", + "summary": "The page number of transactions to return.", + "description": "Page number to use for continuous search. Page count beings at 0.", + "required": false, + "schema": { + "title": "page_number", + "description": "Page number to use for continuous search. Page count beings at 0.", + "type": "integer", + "default": 0 + } + } + ], + "result": { + "name": "get_transactionResponse", + "schema": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "title": "Platform Transaction", + "description": "A platform transaction object", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "funding_method": { + "description": "Funding method used for transferring or settling assets.", + "type": "string" + }, + "type": { + "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", + "type": "string" + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "user_action_required_by": { + "title": "user_action_required_by", + "description": "Time and date by which user action is required.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + }, + "stellar_transactions": { + "type": "array", + "items": { + "title": "stellar_transaction", + "type": "object", + "required": [ + "id", + "created_at", + "envelope", + "payments" + ], + "properties": { + "id": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "created_at": { + "title": "created_at", + "description": "The date and time when the transaction is created.", + "type": "string" + }, + "envelop": { + "description": "The transaction envelope, containing all the transaction information.", + "type": "string" + }, + "payments": { + "type": "array", + "items": { + "required": [ + "id", + "payment_type", + "source_account", + "destination_account", + "amount" + ], + "properties": { + "id": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string" + }, + "payment_type": { + "description": " The ID of the payment in the Stellar Network.", + "type": "string", + "enum": [ + "payment", + "path_payment" + ], + "default": "payment" + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "amount": { + "type": "object", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "source_account": { + "title": "source_account", + "description": "The account being debited in the Stellar Network.", + "type": "string" + }, + "destination_account": { + "title": "destination_account", + "description": "The account being credited in the Stellar Network.", + "type": "string" + }, + "external_transaction_id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "memo": { + "title": "memo", + "type": "string" + }, + "memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "refund_memo": { + "title": "memo", + "type": "string" + }, + "refund_memo_type": { + "title": "memo_type", + "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", + "type": "string", + "enum": [ + "id", + "hash", + "text" + ] + }, + "client_domain": { + "description": "The domain of the client.", + "type": "string" + }, + "request_client_ip_address": { + "description": "The IP address of the client requesting the transaction.", + "type": "string" + }, + "customers": { + "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", + "type": "object", + "properties": { + "sender": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + }, + "receiver": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + }, + "creator": { + "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `id` of the customer registered through SEP-12." + }, + "account": { + "type": "string", + "description": "Either the Stellar account or Muxed account address of the on-chain entity." + }, + "memo": { + "type": "string", + "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "get_transactionsExample", + "description": "Example request to the `get_transactions` method.", + "params": [ + { + "name": "sep", + "value": "31" + }, + { + "name": "order_by", + "value": "created_at" + }, + { + "name": "statuses", + "value": [ + "completed" + ] + } + ], + "result": { + "name": "platformTransactionResponses", + "value": { + "records": [ + { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "31", + "kind": "receive", + "status": "completed", + "funding_method": "SWIFT", + "amount_expected": { + "amount": "100", + "asset": "iso4217:USD" + }, + "amount_in": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": "98.0000000", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": "2.0000", + "asset": "iso4217:USD" + }, + "quote_id": "quote-id", + "message": "Please don't forget to foo bar", + "refunds": { + "amount_refunded": { + "amount": "90.0000", + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": "8.0000", + "asset": "iso4217:USD" + }, + "payments": [ + { + "id": "1111", + "id_type": "stellar", + "amount": { + "amount": "50.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + }, + { + "id": "2222", + "id_type": "stellar", + "amount": { + "amount": "40.0000", + "asset": "iso4217:USD" + }, + "fee": { + "amount": "4.0000", + "asset": "iso4217:USD" + } + } + ] + }, + "stellar_transactions": [ + { + "id": "stellar-tx-id", + "memo": "my-memo", + "memo_type": "text", + "envelope": "here_comes_the_envelope", + "payments": [ + { + "id": "payment-id", + "amount": { + "amount": "100.0000", + "asset": "iso4217:USD" + }, + "payment_type": "payment", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + ] + } + ], + "external_transaction_id": "external-tx-id", + "customers": { + "sender": { + "id": "sender-id" + }, + "receiver": { + "id": "receiver-id" + } + }, + "creator": { + "id": "creator-id" + } + } + ] + } + } + } + ] + }, + { + "name": "notify_amounts_updated", + "summary": "Update transaction amounts", + "description": "Update amount_out and fee_details values", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_amounts_updatedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_amounts_updatedExample", + "description": "Example request to the `notify_amounts_updated` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Amounts updated" + }, + { + "name": "amount_out", + "value": { + "amount": 1 + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_customer_info_updated", + "summary": "Customer info updated", + "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "customer_id", + "description": "The SEP-12 ID of the customer", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "customer_type", + "description": "The SEP-12 type of the customer", + "required": false, + "schema": { + "type": "string" + } + } + ], + "result": { + "name": "notify_customer_info_updatedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_customer_info_updatedExample", + "description": "Example request to the `notify_customer_info_updated` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Customer info updated" + }, + { + "name": "customer_id", + "value": "45f8884d-d6e1-477f-a680-503179263359" + }, + { + "name": "customer_type", + "value": "sep31-receiver" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_interactive_flow_completed", + "summary": "Interactive flow completed", + "description": "Platform has collected the transaction amounts and fees from the business", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_interactive_flow_completedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_interactive_flow_completedExample", + "description": "Example request to the `notify_interactive_flow_completed` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Interactive flow completed successfully." + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_available", + "summary": "Offchain funds are available", + "description": "Funds are ready for the user / recipient to pick up.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_availableResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_availableExample", + "description": "Example request to the `notify_offchain_funds_available` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds available" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_pending", + "summary": "Offchain funds pending", + "description": "Payment has been submitted to external network, but is not yet confirmed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_pendingResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_pendingExample", + "description": "Example request to the `notify_offchain_funds_pending` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds pending" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_received", + "summary": "Offchain funds received", + "description": "Payment is being processed internally by anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "funds_received_at", + "description": "The date and time of receiving funds.", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_offchain_funds_receivedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_receivedExample", + "description": "Example request to the `notify_offchain_funds_received` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Funds received successfully" + }, + { + "name": "funds_received_at", + "value": "2023-07-04T12:34:56Z" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + }, + { + "name": "amount_in", + "value": { + "amount": 1 + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9 + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_offchain_funds_sent", + "summary": "Offchain funds sent", + "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "funds_sent_at", + "description": "The date and time of sending funds.", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "external_transaction_id", + "summary": "ID of the transaction on external network", + "description": "The unique identifier of this transaction on the external network.", + "required": false, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + } + ], + "result": { + "name": "notify_offchain_funds_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_offchain_funds_sentExample", + "description": "Example request to the `notify_offchain_funds_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Offchain funds sent" + }, + { + "name": "funds_sent_at", + "value": "2023-07-04T12:34:38Z" + }, + { + "name": "external_transaction_id", + "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_onchain_funds_received", + "summary": "Onchain funds received", + "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "stellar_transaction_id", + "summary": "Transaction ID on Stellar", + "description": "The unique transaction identifier for this transfer on the Stellar network.", + "required": true, + "schema": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + ], + "result": { + "name": "notify_onchain_funds_receivedResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_onchain_funds_receivedExample", + "description": "Example request to the `notify_onchain_funds_received` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Onchain funds received" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + }, + { + "name": "amount_in", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_onchain_funds_sent", + "summary": "Onchain funds sent", + "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "stellar_transaction_id", + "summary": "Transaction ID on Stellar", + "description": "The unique transaction identifier for this transfer on the Stellar network.", + "required": true, + "schema": { + "title": "hash", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + ], + "result": { + "name": "notify_onchain_funds_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_onchain_funds_sentExample", + "description": "Example request to the `notify_onchain_funds_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Onchain funds sent" + }, + { + "name": "stellar_transaction_id", + "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_refund_pending", + "summary": "Refund pending", + "description": "Refund has been submitted, but is not yet confirmed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee", + "id" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + }, + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + } + } + ], + "result": { + "name": "notify_refund_pendingResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_refund_pendingExample", + "description": "Example request to the `notify_refund_pending` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Refund pending" + }, + { + "name": "refund", + "value": { + "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_refund_sent", + "summary": "Payment refunded", + "description": "Refund payment completed", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "refund", + "schema": { + "type": "object", + "required": [ + "amount", + "amount_fee", + "id" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount to be refunded", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "Amount of assets to refund", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of refund", + "type": "string" + } + } + }, + "amount_fee": { + "title": "amount_fee", + "description": "Amount of fee", + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "The amount of fee", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset of fee charged by anchor", + "type": "string" + } + } + }, + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + } + } + } + } + ], + "result": { + "name": "notify_refund_sentResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_refund_sentExample", + "description": "Example request to the `notify_refund_sent` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Refund sent" + }, + { + "name": "refund", + "value": { + "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", + "amount": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_fee": { + "amount": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_error", + "summary": "Transaction processing error", + "description": "There was an error processing transaction", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_errorResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_errorExample", + "description": "Example request to the `notify_transaction_error` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction error" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_expired", + "summary": "Transaction has expired", + "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_expiredResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_expiredExample", + "description": "Example request to the `notify_transaction_expired` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction expired" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_on_hold", + "summary": "Transaction transaction is on hold", + "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_on_holdResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_on_holdExample", + "description": "Example request to the `notify_transaction_on_hold` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction on hold, please contact customer service to lift the hold." + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_transaction_recovery ", + "summary": "Transaction recovery", + "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + } + ], + "result": { + "name": "notify_transaction_recoveryResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_transaction_recoveryExample", + "description": "Example request to the `notify_transaction_recovery` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Transaction recovered" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "notify_trust_set", + "summary": "Asset trustline set", + "description": "The user has added a trustline for the asset", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "success", + "description": "Flag which indicates if trustline was configured by user.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "result": { + "name": "notify_trust_setResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "notify_trust_setExample", + "description": "Example request to the `notify_trust_set` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Trustline set" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_offchain_funds", + "summary": "Request offchain funds", + "description": "The user has to initiate transfer to the anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + }, + { + "name": "instructions", + "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", + "required": false, + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The SEP-9 field name" + }, + "field": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value of the field" + }, + "description": { + "type": "string", + "description": "A human readable description of the field" + } + } + } + } + } + } + } + ], + "result": { + "name": "request_offchain_fundsResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_offchain_fundsExample", + "description": "Example request to the `request_offchain_funds` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Request offchain funds" + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "iso4217:USD" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + }, + { + "name": "instructions", + "value": { + "organization.bank_number": { + "value": "123456789", + "description": "US Bank routing number" + }, + "organization.bank_account_number": { + "value": "123456789", + "description": "US Bank account number" + } + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_onchain_funds", + "summary": "Request onchain funds", + "description": "The user has to initiate transfer to the anchor", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + }, + { + "name": "SEP-31" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "amount_in", + "description": "The amount expected in the payment", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be received by the Anchor", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "Amount sent by anchor to user", + "required": true, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "amount_out", + "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount", + "asset" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "The asset to be sent by anchor to user at end of transaction", + "type": "string" + } + } + } + }, + { + "name": "fee_details", + "description": "Description of fees charged by the anchor", + "required": true, + "schema": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + }, + { + "name": "amount_expected", + "description": "The amount expected in the payment", + "required": false, + "schema": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + } + } + } + }, + { + "name": "destination_account", + "description": "Destination account", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "memo", + "description": "Value of memo to attach to transaction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "memo_type", + "description": "Type of memo that anchor should attach to the transaction", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "request_onchain_fundsResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_onchain_fundsExample", + "description": "Example request to the `request_onchain_funds` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Requesting onchain funds" + }, + { + "name": "amount_in", + "value": { + "amount": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_out", + "value": { + "amount": 0.9, + "asset": "iso4217:USD" + } + }, + { + "name": "fee_details", + "value": { + "total": 0.1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + } + }, + { + "name": "amount_expected", + "value": { + "amount": 1 + } + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + }, + { + "name": "request_trust", + "summary": "A trustline to the asset isn't set", + "description": "The user must add a trustline for the asset to complete", + "paramStructure": "by-name", + "tags": [ + { + "name": "SEP-6" + }, + { + "name": "SEP-24" + } + ], + "params": [ + { + "name": "transaction_id", + "summary": "ID of the transaction.", + "description": "The unique identifier of this transaction.", + "required": true, + "schema": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + } + }, + { + "name": "message", + "summary": "Human readable explanation.", + "description": "Human readable explanation of transaction status.", + "required": false, + "schema": { + "title": "message", + "description": "A human readable message.", + "type": "string" + } + }, + { + "name": "user_action_required_by", + "description": "Time and date by which user action is required", + "required": false, + "schema": { + "title": "datetime", + "description": "A date and time.", + "type": "string" + } + } + ], + "result": { + "name": "request_trustResponse", + "schema": { + "name": "response", + "type": "object", + "properties": { + "id": { + "title": "transaction_id", + "description": "A unique transaction identifier.", + "type": "string" + }, + "sep": { + "title": "sep", + "description": "Protocol of the transaction.", + "type": "integer", + "enum": [ + 6, + 24, + 31 + ] + }, + "kind": { + "title": "kind", + "description": "The kind of transaction that is desired.", + "type": "string", + "enum": [ + "undefined", + "receive", + "deposit", + "deposit-exchange", + "withdrawal", + "withdrawal-exchange" + ] + }, + "status": { + "title": "status", + "description": "Processing status of the transaction.", + "type": "string", + "enum": [ + "pending_anchor", + "pending_trust", + "pending_user", + "pending_user_transfer_start", + "pending_user_transfer_complete", + "incomplete", + "no_market", + "too_small", + "too_large", + "pending_sender", + "pending_receiver", + "pending_transaction_info_update", + "pending_customer_info_update", + "completed", + "refunded", + "expired", + "error", + "pending_external", + "pending_stellar" + ] + }, + "amount_expected": { + "type": "object", + "title": "amount_expected", + "description": "The amount expected in the payment.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_in": { + "type": "object", + "title": "amount_in", + "description": "Amount expected/received by anchor.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_out": { + "type": "object", + "title": "amount_out", + "description": "The amount expected to be sent by anchor to user at end of transaction.", + "properties": { + "amount": { + "title": "amount", + "description": "A stringified amount of an asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee_details": { + "title": "fee_details", + "description": "Description of fee charged by the anchor.", + "type": "object", + "required": [ + "total", + "asset" + ], + "properties": { + "total": { + "type": "number" + }, + "asset": { + "type": "string" + }, + "details": { + "type": "array", + "description": "Details about fee charged.", + "items": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "amount": { + "type": "number" + } + } + } + } + } + }, + "quote_id": { + "title": "quote_id", + "description": "The id returned from a SEP-38 POST /quote response", + "type": "string" + }, + "started_at": { + "title": "started_at", + "description": "Start date and time of transaction.", + "type": "string" + }, + "updated_at": { + "title": "updated_at", + "description": "The date and time of transaction reaching the current status.", + "type": "string" + }, + "completed_at": { + "title": "completed_at", + "description": "The date and time of transaction reaching completed or refunded status.", + "type": "string" + }, + "transfer_received_at": { + "title": "transfer_received_at", + "description": "The date and time of receiving transfer.", + "type": "string" + }, + "message": { + "title": "message", + "description": "Human readable explanation of transaction status", + "type": "string" + }, + "refunds": { + "title": "refunds", + "description": "An object describing any on or offchain refund associated with this transaction.", + "type": "object", + "properties": { + "amount_refunded": { + "type": "object", + "description": "The total amount refunded in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "amount_fee": { + "type": "object", + "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "payments": { + "type": "array", + "description": "A list of objects containing information on the individual payments made back as refunds.", + "items": { + "properties": { + "id": { + "title": "id", + "description": "The Stellar transaction hash.", + "type": "string" + }, + "id_type": { + "type": "string" + }, + "amount": { + "type": "object", + "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "fee": { + "type": "object", + "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", + "properties": { + "amount": { + "title": "amount", + "description": "A numerical representation of an amount of some asset.", + "type": "string" + }, + "asset": { + "title": "asset", + "description": "An asset.", + "type": "string" + } + } + }, + "requested_at": { + "title": "datetime", + "description": "The date and time of requesting refund.", + "type": "string" + }, + "refunded_at": { + "title": "datetime", + "description": "The date and time of making refund.", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "request_trustExample", + "description": "Example request to the `request_trust` method.", + "params": [ + { + "name": "transaction_id", + "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" + }, + { + "name": "message", + "value": "Request trust" + } + ], + "result": { + "name": "AnchorPlatformResponse", + "value": { + "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", + "sep": "24", + "kind": "deposit", + "status": "completed", + "amount_expected": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_in": { + "amount": "1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": "0.9", + "asset": "iso4217:USD" + }, + "fee_details": { + "total": "0.1", + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "started_at": "2023-08-04T10:04:06.280923Z", + "updated_at": "2023-08-04T10:04:15.716233Z", + "message": "Transaction complete", + "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", + "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" + } + } + } + ] + } + ], + "components": {} +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx new file mode 100644 index 0000000000..f258e7c7dc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx @@ -0,0 +1,41 @@ +--- +title: Métodos JSON-RPC +order: 20 +sidebar_label: Métodos +--- + +Esta sección enumera los métodos de la API JSON-RPC de Anchor Platform que deben ser invocados por los clientes Stellar para actualizar el estado de la transacción. + +La especificación OpenRPC para la API JSON-RPC está disponible [aquí](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). + +La colección de Postman está disponible [aquí](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) + + + +| | | +| - | ---------------------------------------------------------------------------- | +| | [do_stellar_payment](./do_stellar_payment.mdx) | +| | [do_stellar_refund](./do_stellar_refund.mdx) | +| | [get_transaction](./get_transaction.mdx) | +| | [get_transactions](./get_transactions.mdx) | +| | [notify_amounts_updated](./notify_amounts_updated.mdx) | +| | [notify_customer_info_updated](./notify_customer_info_updated.mdx) | +| | [notify_interactive_flow_completed](./notify_interactive_flow_completed.mdx) | +| | [notify_offchain_funds_available](./notify_offchain_funds_available.mdx) | +| | [notify_offchain_funds_pending](./notify_offchain_funds_pending.mdx) | +| | [notify_offchain_funds_received](./notify_offchain_funds_received.mdx) | +| | [notify_offchain_funds_sent](./notify_offchain_funds_sent.mdx) | +| | [notify_onchain_funds_received](./notify_onchain_funds_received.mdx) | +| | [notify_onchain_funds_sent](./notify_onchain_funds_sent.mdx) | +| | [notify_refund_pending](./notify_refund_pending.mdx) | +| | [notify_refund_sent](./notify_refund_sent.mdx) | +| | [notify_transaction_error](./notify_transaction_error.mdx) | +| | [notify_transaction_expired](./notify_transaction_expired.mdx) | +| | [notify_transaction_on_hold](./notify_transaction_on_hold.mdx) | +| | [notify_transaction_recovery](./notify_transaction_recovery.mdx) | +| | [notify_trust_set](./notify_trust_set.mdx) | +| | [request_offchain_funds](./request_offchain_funds.mdx) | +| | [request_onchain_funds](./request_onchain_funds.mdx) | +| | [request_trust](./request_trust.mdx) | + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx new file mode 100644 index 0000000000..8f21a26488 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx @@ -0,0 +1,13 @@ +--- +title: hacer_pago_stellar +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "do_stellar_payment")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx new file mode 100644 index 0000000000..26776c91ae --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx @@ -0,0 +1,13 @@ +--- +title: realizar_reembolso_stellar +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "do_stellar_refund")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx new file mode 100644 index 0000000000..0aec020e3a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx @@ -0,0 +1,11 @@ +--- +title: obtener_transacción +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "get_transaction")[0]} +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx new file mode 100644 index 0000000000..034885b06c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx @@ -0,0 +1,11 @@ +--- +title: obtener_transacciones +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "get_transactions")[0]} +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx new file mode 100644 index 0000000000..2f27b337cb --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx @@ -0,0 +1,13 @@ +--- +title: notificar_cantidades_actualizadas +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_amounts_updated")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx new file mode 100644 index 0000000000..c40f4ab289 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_actualizacion_info_cliente +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_customer_info_updated", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx new file mode 100644 index 0000000000..dda1c16e16 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_flujo_interactivo_completado +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_interactive_flow_completed", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx new file mode 100644 index 0000000000..8e5b7b6874 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_fondos_fuera_de_cadena_disponibles +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_offchain_funds_available", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx new file mode 100644 index 0000000000..43d2d4ce16 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_fondos_fuera_de_cadena_pendientes +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_offchain_funds_pending", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx new file mode 100644 index 0000000000..cc31c386d1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_fondos_fuera_de_cadena_recibidos +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_offchain_funds_received", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx new file mode 100644 index 0000000000..9004d11ddd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_fondos_offchain_enviados +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_offchain_funds_sent", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx new file mode 100644 index 0000000000..531631dedc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_recibo_de_fondos_onchain +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_onchain_funds_received", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx new file mode 100644 index 0000000000..69e0519e77 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_fondos_onchain_enviados +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_onchain_funds_sent", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx new file mode 100644 index 0000000000..a69e5a372a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx @@ -0,0 +1,13 @@ +--- +title: notificar_reembolso_pendiente +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_refund_pending")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx new file mode 100644 index 0000000000..12f34da809 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx @@ -0,0 +1,13 @@ +--- +title: notificar_reembolso_enviado +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_refund_sent")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx new file mode 100644 index 0000000000..7986f4ec9a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_error_transacción +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_transaction_error", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx new file mode 100644 index 0000000000..9935b83f63 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_transacción_expirada +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_transaction_expired", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx new file mode 100644 index 0000000000..aac4eeda31 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_transacción_en_espera +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_transaction_on_hold", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx new file mode 100644 index 0000000000..12bbbf6cd6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx @@ -0,0 +1,15 @@ +--- +title: notificar_recuperación_de_transacción +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_transaction_recovery", + )[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx new file mode 100644 index 0000000000..63b7b65613 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx @@ -0,0 +1,11 @@ +--- +title: notificar_establecimiento_de_confianza +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "notify_trust_set")[0]} +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx new file mode 100644 index 0000000000..db5fac4514 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx @@ -0,0 +1,13 @@ +--- +title: solicitar_fondos_offchain +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "solicitar_fondos_offchain")[0] + } +/> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx new file mode 100644 index 0000000000..d395ed2a65 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx @@ -0,0 +1,13 @@ +--- +title: solicitar_fondos_cadena +hide_title: true +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; +import rpcSpec from "../anchor-platform.openrpc.json"; + + meth.name === "request_onchain_funds")[0] + } +/> diff --git a/ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_trust.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx similarity index 100% rename from ap_versioned_docs/version-2.11/api-reference/platform/rpc/methods/request_trust.mdx rename to i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx new file mode 100644 index 0000000000..38cac14017 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx @@ -0,0 +1,16 @@ +--- +title: Resumen +sidebar_position: 10 +--- + +JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) sin estado y liviano. + +Es simple y fácil de usar, ya que utiliza un único punto de conexión HTTP y un objeto JSON que contiene el nombre del método y los parámetros. Es independiente del transporte, dado que los conceptos pueden usarse dentro del mismo proceso, a través de sockets, por HTTP o en varios otros entornos de paso de mensajes. Usa [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) como formato de datos. + +:::note + +Todos los nombres de miembros intercambiados entre el Cliente y el Servidor que se consideren para cualquier tipo de coincidencia deben ser sensibles a mayúsculas y minúsculas. + +::: + +Puedes leer más sobre el protocolo JSON-RPC [aquí](https://www.jsonrpc.org/specification). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/README.mdx new file mode 100644 index 0000000000..ecfba437f5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/README.mdx @@ -0,0 +1,17 @@ +--- +title: Transacciones +sidebar_position: 10 +--- + +Las transacciones son representaciones de una transacción SEP. Contiene información sobre el protocolo que se está utilizando y toda la información necesaria que pasa una parte externa (como una billetera o un anchor). + +No debe confundirse con las [transacciones](../../../../../learn/glossary.mdx#transaction) de Stellar. + + + +| | | +| --- | -------------------------------------------- | +| GET | [/transactions/:id](get-transaction.api.mdx) | +| GET | [/transactions/](./get-transactions.api.mdx) | + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx new file mode 100644 index 0000000000..6254bd3bff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx @@ -0,0 +1,75 @@ +--- +id: get-transaction +title: "Retrieve a Transaction" +description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." +sidebar_label: "Retrieve a Transaction" +hide_title: true +hide_table_of_contents: true +api: eJztXN1P67gS/1csv+yuFFLgoPPQN/Yuu6q0HwjOfeKgHjeeNF4SO8d2KBXq/341ttOmbQotQqLnyi+Qxh8zHs+HZ36tn6llU0OHd/SLZtKwzAolDb1P6NOJgdq13F5dn3ymift/fhEePp1hJ1WDZjhkxOmQTsF2ZqEJ5WAyLWr3aUivtXoUHAyxBRAhc6UrN5ZIyMAYpuckV9q1ThojJBhDrCIcLOhKSHAtxjILROXug11RI4KDtCIXwMlkTr4J/i0hHDLBgYicMDknoWPVGEsmQCx7AIkEMiWtkA2QWitkRMjp5uwJYZLjBERJ14YzG6FkShNaM80qZBKl9UwFrrVmtqAJlawCOqSC04Rq+N4IDZwOrW4goSYroGJ0+EztvMZexmohp3SxuMfOplbSgMH289NT/LcuzY6kSa4ayZEVXApIi71ZXZcicwIe/GtwyHOHpJLwT+7YDcTV5F/I7Bqbd55vAzVN6IOQ7oNltjH+QVvgY2ZRD2qNmmCF51fwnlX5ibbeJxRkUyGxz/R+Eei80ItDrYywTrnc0wk8ZQWTU6AJnQlbcM1mrFz7sOqCFMISemhsqKsyRkxKr3KNIY+sbMBpqDOIrnqYDoNCZqqqS7Dg9sM/+v3PG8ndIzzVTsQJBa2VRh0CyYWcjo2FsmTdN/BkQUu3ovZV1hirKtBjNKJxU3PmiLXNjQE9dtzloMduo3a2dnhtOzCZFWs8Wd2YzRlQt9W4YvoBsMkqNTYVK8vwXDKN0k6oFbZEGd86Gd5eXX9GTfCCf20DvhRAKrCF4s7kkCz+4d4puM0nSpN2n4nK86xgQhKUs0mREKtUI+0YnmrIcBeGL+u7704TyoyBHsUO7X3K7Uf0GPNKBpd+9IotIY+MIdXYY+EoBxhzsEyU5jWWrLLOPHZw5JsPYQgVcZMy05rNaUKFhepVjpzbb6W6zZGPCn0M7Rbemmm8JMLfAX7r9F1stfmVLRL6vVEWxruc9cq/9xiqj910SNH1nFhRAY7xnuiwMUsPedCopf/SkIF4PJRPdIHec4/bbRtP5vtPUOFxZdq/h97N96pIn6WMl2HhSAwvsJUDHAtHNZtXIO1B1rjXgUTw8a5I1EbzVTxexuH7PkP9aF95LKwgTTCHmnNrAwcMWqw5tptgdM5xuR0brx3P3ujH3fk309B6NdSLRyhV7c5LrVrudf7tO9yMfutNZHyGcevXQSTYmdIPqfc7ldr33FSpN0y+0x52UMBuB5Aht4VqSo7ZV63BgLSYm7mZhCFSWSKbskw79mfhCcVeMIPplODO+jo7sp+29PGPDVt8z5ghGqbCWNDAX5LWUhH2ElaXRjsycYknExLzTVaWPUJcpsjpW/3gljaHSfxGJ9SoRmcwZlkW/AMHY4V0RDtvd51kDtf0QH9TtH93RLvG4n7iDWr42uQrvQo9nUBsMW4/3uPsOWtK63J4/3KxJaa9mAqdyQRwgzlMhN1Wqe66+0T/BkqZBv4aqWOKX+uePHDbrSMt9tiAfcW3WAXyboTYdQrud7jH7CyJ4MR5y07y/RdU6gvyuAy14/0iySjHmhgW7XhCbCGMJ2+WjLl0HEsiftq1mki6Qe6HFFdWCnRFXFVM9CVeyx47c7q2WNPrnreX7qoctmDoxIQVGOe2JWDIRNnC10NBctCuPBlyIZ1+lVsnYN/tdRaCVEf8J0OYBuK7mcCRL7HOCUh+gowaR9eXg8mtLw+RS1c/MgmZNNbJPbTfOPY6PdKv8qv8XWnCXJezc9LKKnFLwxouyQWUvKNxpslzkaHIsQyUN2U5X/GFo9o5Wj1pS8k/kV9Z9gCSb5Dd4jwQDy7km1viN9SjwIzZ0P+N+T6TUCE8v3j7hHtlMH3q42QWjGYpic6JxhZaNdMiCNzHgn1DzZWwBeg142sjj9Lkr+YJ+PIF41xj/T6wouSJL83hRtn5Ww6zvvzabrU7M61WiDVAwogpmF4xkZBZATrABmstaEHL/UhpT/wZce+9vEVFu4l2E+1mX7tZtCmaioYTDScazv6Gs3rbyX8CaPZmpHYTA9uV478/ont+cSCk28Fv3w+pPb/4QKj2qLHY84tDwFhhgm8UhrByxuaGQFXb+S5BRwA2ArARgI0AbARgIwAbAdgIwEYANgKwEYCNAGwEYI8sfkUA9gMB2HcFXJNtOUUANgKwsR4e6+E/Yj08ArDRbqLdRAA2Gk40nI8FYB1S9mYE9v2RVfz19R7Iagif7wimfjr7QDA1nKFXL5bHgy5A2skpe38e2/vr2T549NPZu8KjG6KL8GiERyM8GuHRCI9GeDTCoxEejfBohEcjPBrh0QiPHln8ivDo0cCjIsKjHw2PjsI1e/5mORcDWiGYUFRdQaHO3Nv5UzJy/eZkhjW6ECSX9ck7X6C8/7mwtjbDwSAclFKlp4NaK6syVQ4M1Cdn578kX6Xbfs9oqwAhXnnxr9eXXZk0Jf9gPXMmDGxVaNerl+2wiOTGwnosrEckN9pNtJuI5EbDiYbzoxjOLiQXQb17n9Jd9F2r/Cvj5MYXCQ+5T/nl+q5HO/tLvP1JaDfN9aM7CcCVe9Eu4mJ7Ed27odGKD78f+oPWE9JfaXxV9O6ZPsCcDtvLyBPqNOnFS8nx9mx/a7C/kTyUUOiQDrrZ4OBZ8IVD7PVje3N3o0s6pG3+UZfMYoHrxHdJ4YkhFOR/kptmqqJIChMgXDJO4oX/KT1NT+lqdddhHnLr5um1kpYW8bQchozJla8EEAShlARpUzKyHY9TKBMKKYzUWjzi1egh33SeKvREFZi4MgwEbD/XqnK2NXIkwKbEIdiBPEg2KcNF7d2r2HOwWeFm9lCaN8/ljewd8ZLGXaMurCGX1yPvFUuRgTSwQhjpZc2yAsi5k9dK+sPBYDabpcy1uvwvDDWDP0f/ufr79urkPD1NC1uVTrlqZWzFZGfiG7BawCMQRl64kf55ZQ//t5fTB1PEWgJqtJAOYNQOcPZ2cUc3vtExxDJ2QlG5sPX5ecIM/FeXiwW+/t6AntPh3T0aoxaoKM54uDD4zOkwZ6WBF0T9801wBr+QXQy25WM5X9k8xW/WOG8gOPrwhBbAXCa+dBOXWQa17QzZcnJr3uGPqy90sfgfaB/iSg== +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/platform/transactions/platform-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx new file mode 100644 index 0000000000..105df4d8c2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx @@ -0,0 +1,75 @@ +--- +id: get-transactions +title: "Retrieve a List of Transactions" +description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." +sidebar_label: "Retrieve a List of Transactions" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/anchor-platform/api-reference/platform/transactions/platform-server +custom_edit_url: null +hide_send_button: true +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/README.mdx new file mode 100644 index 0000000000..ef7e1e7efd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Guías SEP +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +Guías para implementar Propuestas del Ecosistema Stellar (SEP) con Anchor Platform. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/_category_.json new file mode 100644 index 0000000000..aa65b42d31 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "SEP Guides", + "collapsed": false +} + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep1/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep1/README.mdx new file mode 100644 index 0000000000..82c6a6b371 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep1/README.mdx @@ -0,0 +1,198 @@ +--- +title: Archivo de Información Stellar (SEP-1) +sidebar_position: 50 +--- + +## Descripción general + +SEP-1 (Archivo de Información Stellar) permite que las wallets y otras aplicaciones Stellar descubran información sobre tu servicio de ancla. Al alojar un archivo `stellar.toml` en `/.well-known/stellar.toml`, permites que las aplicaciones encuentren automáticamente: + +- Información de tu organización +- Activos y monedas que se soportan +- Puntos finales de autenticación (SEP-10) +- Puntos finales de SEP para SEP-6, SEP-24, SEP-31, SEP-38, SEP-45 + +Para más detalles, por favor consulta la [especificación SEP-1][sep-1]. + +## Crear tu archivo stellar.toml + +Crea un archivo `stellar.toml` con la información de tu servicio. Aquí tienes un ejemplo mínimo para comenzar: + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["GD...G"] # Your distribution account public keys +SIGNING_KEY = "GD...G" # Your signing key (public key) for SEP-10 authentication +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" # Use "Public Global Stellar Network ; September 2015" for mainnet + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "https://your-website.com" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +:::tip + +Para una lista completa de todos los atributos disponibles en `stellar.toml`, consulta la [especificación SEP-1][sep-1]. Necesitarás añadir secciones adicionales como `[[CURRENCIES]]`, `TRANSFER_SERVER`, `TRANSFER_SERVER_SEP0024`, `WEB_AUTH_ENDPOINT`, `WEB_AUTH_FOR_CONTRACTS_ENDPOINT`, `DIRECT_PAYMENT_SERVER`, etc., conforme configures los activos soportados y otros SEPs. + +::: + +:::important + +**Producción vs. Desarrollo**: Necesitarás archivos `stellar.toml` separados para testnet y mainnet: + +- **Testnet**: Usa `NETWORK_PASSPHRASE = "Test SDF Network ; September 2015"` +- **Mainnet**: Usa `NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015"` + +Asegúrate de que tu archivo de producción incluya tus cuentas de distribución reales del Mainnet, claves de firma y las URLs del servicio de producción. + +::: + +## Configuración + +Para habilitar SEP-1, necesitas configurar cómo la Anchor Platform debe acceder a tu archivo `stellar.toml`. La plataforma soporta tres métodos: + +| Tipo | Caso de Uso | Descripción | +| -------- | -------------------------------------------- | ---------------------------------------------------------------------- | +| `file` | **Recomendado para la mayoría de los casos** | Lee desde un archivo local en el servidor | +| `string` | Pruebas rápidas o configuraciones simples | Proporciona el contenido TOML directamente en la configuración | +| `url` | Alojamiento externo | Obtiene el archivo desde una URL remota (útil para contenido dinámico) | + +### Variables de Entorno + +Configura SEP-1 usando las siguientes variables de entorno: + +- `SEP1_ENABLED`: Setea a `true` para habilitar SEP-1 +- `SEP1_TOML_TYPE`: Uno de `file`, `string`, o `url` +- `SEP1_TOML_VALUE`: El valor depende del tipo (ver ejemplos abajo) + +### Método 1: Archivo (Recomendado) + +Ideal para: despliegues en producción donde manejas el archivo en disco. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/path/to/your/stellar.toml +``` + + + +:::tip + +Al usar Docker, monta tu archivo `stellar.toml` como un volumen y referencia la ruta dentro del contenedor. Por ejemplo: + +```yaml +# docker-compose.yaml +volumes: + - ./config/stellar.toml:/config/stellar.toml:ro +``` + +Luego configura `SEP1_TOML_VALUE=/config/stellar.toml` en tu entorno. + +::: + +### Método 2: Cadena de texto + +Ideal para: pruebas rápidas, desarrollo, o cuando configures mediante variables de entorno. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=string +SEP1_TOML_VALUE="ACCOUNTS = [\"GD...G\"] +SIGNING_KEY = \"GD...G\" +NETWORK_PASSPHRASE = \"Test SDF Network ; September 2015\" +[DOCUMENTATION] +ORG_NAME = \"Your organization\" +ORG_URL = \"https://your-website.com\"" +``` + + + +:::caution + +Cuando uses el tipo `string`, asegúrate de que el contenido TOML esté correctamente escapado según el formato de tu archivo de entorno. Para configuraciones complejas, el tipo `file` es más fácil de manejar. + +::: + +### Método 3: URL + +Ideal para: contenido dinámico o cuando alojes el archivo externamente. + + + +```bash +# dev.env +SEP1_ENABLED=true +SEP1_TOML_TYPE=url +SEP1_TOML_VALUE=https://example.com/stellar.toml +``` + + + +:::note + +Cuando uses el tipo `url`, la Anchor Platform obtendrá el archivo en cada solicitud. Asegúrate de que la URL sea accesible desde tu servidor de Anchor Platform y que devuelva contenido TOML válido. + +::: + +## Accediendo a tu archivo stellar.toml + +Una vez configurado y habilitado, la Anchor Platform sirve automáticamente tu archivo `stellar.toml` en el endpoint estándar SEP-1: + +- **`/.well-known/stellar.toml`** - El endpoint principal (servido con `Content-Type: text/plain`) +- **`/`** - Redirige a `/.well-known/stellar.toml` cuando SEP-1 está habilitado + +### Probar tu configuración + +Después de iniciar la Anchor Platform, verifica tu configuración: + +```bash +# Test the endpoint +curl http://localhost:8080/.well-known/stellar.toml + +# Or test the redirect +curl -L http://localhost:8080/ +``` + +Deberías ver el contenido de tu `stellar.toml` devuelto como texto plano. + +### Alternativa: Alojamiento externo + +También puedes alojar tu archivo `stellar.toml` usando un servidor de archivos estático como [nginx] o una CDN. Si eliges este enfoque: + +1. Aloja el archivo en `https://your-domain.com/.well-known/stellar.toml` +2. Asegúrate de que sea accesible públicamente +3. Asegúrate de que tu archivo `stellar.toml` incluya las URLs correctas apuntando a tus endpoints de Anchor Platform + +El servicio SEP-1 de Anchor Platform es opcional si alojas el archivo externamente, pero ofrece una manera conveniente de gestionar todo en un solo lugar. + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep10/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep10/README.mdx new file mode 100644 index 0000000000..14d025d022 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep10/README.mdx @@ -0,0 +1,291 @@ +--- +title: Autenticación Stellar (SEP-10) +sidebar_position: 60 +--- + +## Resumen + +SEP-10 (Autenticación Web Stellar) permite a las aplicaciones de billetera crear sesiones autenticadas con anclas Stellar demostrando control sobre una cuenta Stellar. Una vez autenticadas, las billeteras reciben un Token Web JSON (JWT) que usan en solicitudes posteriores a los servicios estandarizados del ancla. + +Para la especificación completa, consulta [SEP-0010: Autenticación Web Stellar](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md). + +La Plataforma Anchor tiene implementado SEP-10 con soporte para: + +- **Flujo de Desafío/Respuesta**: GET `/auth` para solicitar un desafío, POST `/auth` para validar y recibir un JWT +- **Atribución de Cliente**: Verificación opcional de identidad de la aplicación cliente para billeteras no custodiales +- **Soporte para Billeteras Custodiales**: Soporte para billeteras custodiales que gestionan cuentas de usuario +- **Múltiples Dominios de Origen**: Soporte para múltiples dominios y patrones comodín + +## Flujo Típico de Autenticación + +1. El **Cliente** solicita un desafío único del **Servidor** +2. El **Cliente** verifica y firma el desafío +3. El **Cliente** envía el desafío firmado al **Servidor** +4. El **Servidor** verifica el desafío y responde con un token de sesión JWT + +## Habilitar SEP-10 + +Para habilitar SEP-10, configura las siguientes variables de entorno en tu archivo `dev.env`. + + + +```bash +# dev.env +SEP10_ENABLED=true +SEP10_HOME_DOMAINS=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" +``` + + + +### Configuración Requerida (Si está habilitado) + +| Variable | Valor Predeterminado | Descripción | +| --------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SEP10_ENABLED` | `false` | Establece en `true` para habilitar la autenticación SEP-10 | +| `SEP10_HOME_DOMAINS` | `localhost:8080` | Lista de dominios de origen (separados por comas). Soporta patrones comodín como `*.stellar.org`. El `home_domain` debe coincidir con el host donde se sirve tu archivo `stellar.toml`. | +| `SECRET_SEP10_SIGNING_SEED` | _Requerido_ | La clave privada correspondiente a `SIGNING_KEY` en tu archivo `stellar.toml`. Se usa para firmar los desafíos de autenticación. Las billeteras verifican esta firma antes de firmar y devolver el desafío. | +| `SECRET_SEP10_JWT_SECRET` | _Requerido_ | La clave de cifrado usada para firmar y verificar tokens JWT emitidos a billeteras autenticadas. | + +:::important + +La `SIGNING_KEY` en tu archivo `stellar.toml` debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED`. Las billeteras verificarán que las transacciones de desafío estén firmadas por esta clave. + +::: + +### Configuración Opcional + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP10_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge transaction timeout in seconds (default: 900) +SEP10_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP10_JWT_TIMEOUT=86400 + +# Optional: Require Authorization header in GET /auth requests (default: false) +SEP10_REQUIRE_AUTH_HEADER=false + +# Optional: Client attribution requirement (default: false) +SEP10_CLIENT_ATTRIBUTION_REQUIRED=false + +# Optional: Client allow list (default: empty, all configured clients allowed) +# Comma-separated list of client names that are allowed to authenticate +SEP10_CLIENT_ALLOW_LIST=client1,client2 +``` + + + +| Variable | Valor Predeterminado | Descripción | +| ----------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SEP10_WEB_AUTH_DOMAIN` | Primer `home_domain` si se especifica uno solo, de lo contrario vacío | La propiedad `web_auth_domain` usada en las respuestas SEP-10. Requerido si tienes múltiples `home_domains` o usas patrones comodín. Debe coincidir con el host del servidor SEP. | +| `SEP10_AUTH_TIMEOUT` | `900` | Tiempo en segundos durante el cual una transacción de desafío permanece válida. Los clientes deben firmar y enviar el desafío dentro de esta ventana. | +| `SEP10_JWT_TIMEOUT` | `86400` | Tiempo en segundos durante el cual un token JWT emitido permanece válido. Después de expirar, los clientes deben volver a autenticarse. | +| `SEP10_REQUIRE_AUTH_HEADER` | `false` | Si es `true`, requiere un encabezado Authorization válido (Bearer JWT) en las solicitudes GET `/auth` para desafíos. Esto previene accesos no autorizados al endpoint y es útil para flujos de reautenticación donde los clientes necesitan refrescar sus tokens JWT. | +| `SEP10_CLIENT_ATTRIBUTION_REQUIRED` | `false` | Si es `true`, las billeteras no custodiales deben proporcionar un `client_domain` en las solicitudes de desafío. Requiere configuración en el cliente (ver más abajo). | +| `SEP10_CLIENT_ALLOW_LIST` | Vacío (se permiten todos los clientes configurados) | Lista separada por comas de nombres de cliente permitidos para autenticarse. Solo relevante cuando `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`. Si está vacío, todos los clientes configurados están permitidos. | + +:::tip + +**Múltiples Dominios de Origen**: Si especificas múltiples `home_domains` (por ejemplo, `ap.stellar.org,*.sdp.stellar.org`), también debes establecer `SEP10_WEB_AUTH_DOMAIN` para indicar qué dominio hospeda el endpoint de autenticación. + +::: + +## Atribución de Cliente + +La atribución de cliente te permite restringir la autenticación a aplicaciones específicas de billetera y verificar su identidad. Esta es una característica opcional que solo debería habilitarse si es un requisito de negocio. + +:::info + +Por defecto, la Plataforma Anchor permite que cualquier persona con una cuenta Stellar se autentique. La atribución de cliente solo es necesaria si quieres: + +- Restringir la autenticación a aplicaciones específicas de billetera +- Verificar la identidad de aplicaciones de billetera no custodiales +- Rastrear qué aplicaciones de billetera usan tus usuarios + +::: + +### Habilitar Atribución de Cliente + + + +```bash +# dev.env +SEP10_CLIENT_ATTRIBUTION_REQUIRED=true +``` + + + +Cuando `SEP10_CLIENT_ATTRIBUTION_REQUIRED=true`, las billeteras no custodiales deben: + +1. Proporcionar un parámetro `client_domain` en la solicitud de desafío +2. Firmar la transacción de desafío con `SIGNING_KEY` del archivo `stellar.toml` de ese dominio +3. Tener su dominio listado en tu configuración de clientes + +### Configuración de Cliente + +Configura los clientes permitidos en tu archivo de configuración YAML: + + + +```yaml +clients: + # Each item in the list may contain the following fields: + # - name: (required) the name of the client + # - type: (required) `custodial` or `noncustodial` + # + # If the type is `custodial`, + # - signing_keys: (required) the custodial SEP-10 signing key(s) of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. + # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. + # If allow_any_destination is set to true, this configuration option is ignored. + # + # If the type is `noncustodial`, + # - domains: (required) the domains of the client. + # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. + # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. + # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. + # - callback_urls.sep12: (optional) the URL of the client's SEP-12 callback API endpoint. + + # custodial client + - name: bluecorp + type: custodial + signing_keys: "the signing key 1 of bluecorp","the signing key 2 of bluecorp" + callback_urls: + sep6: https://callback.bluecorp.com/api/v1/anchor/callback/sep6 + sep12: https://callback.bluecorp.com/api/v1/anchor/callback/sep12 + allow_any_destination: false + destination_accounts: GA... + + # noncustodial client + - name: pinkcorp + type: noncustodial + domains: pinkcorp.com + callback_urls: + sep6: https://callback.pinkcorp.com/api/v2/anchor/callback/sep6 + sep12: https://callback.pinkcorp.com/api/v2/anchor/callback/sep12 + + - name: redcorp + type: custodial + signing_keys: "the signing key of redcorp", + +``` + + + +O configura mediante variables de entorno: + + + +```bash +# dev.env +# custodial client +CLIENTS[0]_NAME=bluecorp +CLIENTS[0]_TYPE=custodial +CLIENTS[0]_SIGNING_KEYS="the signing key 1 of bluecorp","the signing key 2 of bluecorp" +CLIENTS[0]_ALLOW_ANY_DESTINATION=false +CLIENTS[0]_DESTINATION_ACCOUNTS=GA... + +# noncustodial client +CLIENTS[1]_NAME=pinkcorp +CLIENTS[1]_TYPE=noncustodial +CLIENTS[1]_DOMAINS=pinkcorp.com + +# custodial client +CLIENTS[2]_NAME=redcorp +CLIENTS[2]_TYPE=custodial +CLIENTS[2]_SIGNING_KEYS="the signing key of redcorp" +``` + + + +## Configurar stellar.toml + +Actualiza tu archivo `stellar.toml` para anunciar soporte SEP-10. Las billeteras descubren tu endpoint de autenticación a través de este archivo. + + + +```toml +# dev.stellar.toml +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +``` + + + +Estos campos deben coincidir con las opciones de configuración establecidas en la sección [Habilitar SEP-10](#enable-sep-10) arriba. + +`WEB_AUTH_ENDPOINT` - La URL donde está corriendo el servicio de autenticación. Esta es la URL que los clientes usarán para autenticarse con el ancla. El endpoint debe soportar: + +- `GET ` - Solicitar un desafío +- `POST ` - Intercambiar desafío firmado por token de sesión JWT + +`SIGNING_KEY` - La clave pública correspondiente a la clave privada especificada en `SECRET_SEP10_SIGNING_SEED`. Esta clave se usa para firmar los desafíos de autenticación presentados a las aplicaciones de billetera. + +:::important + +- **`SIGNING_KEY`**: Debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_ENDPOINT`**: Usa `https://` en producción. La ruta `/auth` es el endpoint estándar SEP-10. +- **Coincidencia de Host**: El host en `WEB_AUTH_ENDPOINT` debe coincidir con uno de tus `SEP10_HOME_DOMAINS` (o el `SEP10_WEB_AUTH_DOMAIN`, si está especificado). + +::: + +## Cómo Probar el Flujo de Autenticación + +El flujo de autenticación SEP-10 consta de dos pasos: + +1. **GET `/auth`** - Solicitar una transacción de desafío + - Parámetros: `account` (requerido), `memo` (opcional), `home_domain` (opcional), `client_domain` (opcional) + - Retorna: Una transacción de desafío en formato XDR + +2. **POST `/auth`** - Validar el desafío firmado y recibir un JWT + - Cuerpo: `{ "transaction": "" }` + - Retorna: `{ "token": "" }` + +El token JWT debe incluirse en solicitudes API posteriores como token Bearer en el encabezado `Authorization`. + +:::tip + +**Probar Tu Configuración**: Puedes probar la autenticación SEP-10 usando curl y Stellar CLI. Para obtener más información sobre Stellar CLI, consulta la [documentación de Stellar CLI](../../../../tools/cli/README.mdx). + +```bash +# Verify if `stellar` command line is installed +stellar --version + +# List your Stellar keys/identities +stellar keys ls + +# Get your account ID (public key) and secret seed +# Replace 'alice' with your identity name from `stellar keys ls` +IDENTITY_NAME="alice" +ACCOUNT_ID=$(stellar keys public-key "$IDENTITY_NAME") +SECRET_SEED=$(stellar keys secret "$IDENTITY_NAME") + +# Step 1: Request challenge and save the transaction XDR +CHALLENGE_RESPONSE=$(curl -s "http://localhost:8080/auth?account=$ACCOUNT_ID") +CHALLENGE_XDR=$(echo "$CHALLENGE_RESPONSE" | jq -r '.transaction') + +# Step 2: Sign the challenge transaction using Stellar CLI +# Note: The output includes info messages; the signed XDR is on the last line +SIGNED_CHALLENGE_XDR=$(echo "$CHALLENGE_XDR" | stellar tx sign --sign-with-key "$SECRET_SEED" 2>&1 | tail -1) + +# Step 3: Submit the signed challenge and receive JWT token +curl -X POST "http://localhost:8080/auth" \ + -H "Content-Type: application/json" \ + -d "{\"transaction\": \"$SIGNED_CHALLENGE_XDR\"}" +``` + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/README.mdx new file mode 100644 index 0000000000..c7cbd53967 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/README.mdx @@ -0,0 +1,10 @@ +--- +title: Depósitos y Retiros Gestionados (SEP-24) +sidebar_position: 90 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-24 permite que las carteras y/o exchanges ofrezcan al usuario un medio para interactuar directamente con una rampa de entrada y salida. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/configuration.mdx new file mode 100644 index 0000000000..2d2d63722f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/configuration.mdx @@ -0,0 +1,211 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +## Modificar un archivo Stellar Info + +A continuación, modifiquemos el archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las carteras deben saber que tu negocio admite la funcionalidad SEP-24 y también deben conocer todas las monedas que admites. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "Your web auth contract id" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +# Optionally, add support for XLM +[[CURRENCIES]] +code = "native" +status = "test" +is_asset_anchored = false +anchor_asset_type = "crypto" +desc = "XLM, the native token of the Stellar network." + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que necesitarás crear otro archivo para tu despliegue en producción que utilice la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución y la clave de firma de Mainnet, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio. + +## Habilitar depósitos y retiros alojados + +Ahora estás listo para habilitar depósitos y retiros alojados mediante la API SEP-24. Especifica lo siguiente en tu archivo `dev.assets.yaml` y cambia los valores según tus preferencias. Este archivo de ejemplo habilitará el soporte para USDC de Circle y un dólar fiat. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash + - id: iso4217:USD + significant_decimals: 2 + # Optional support for XLM + - id: stellar:native + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 7 + sep24: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - SEPA + - SWIFT + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - bank_account + - cash +``` + + + +La información proporcionada para el valor `assets` coincide en gran medida con la información que se expondrá a la aplicación de cartera mediante el endpoint SEP-24 [`GET /info`][sep24-get-info]. La plataforma Anchor también utiliza esta información para validar las solicitudes realizadas a tu servicio. + +Agrega las siguientes variables a tu archivo de entorno. + + + +```bash +# dev.env +// Required +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://example.com +SEP24_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +// Optional +SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +`SEP24_INTERACTIVE_URL_BASE_URL` es la URL que la plataforma Anchor proporcionará a las aplicaciones de cartera cuando inicien transacciones. Las aplicaciones de cartera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la cartera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Examinaremos esta experiencia con más detalle en secciones posteriores. + +`SEP24_MORE_INFO_URL_BASE_URL` es la URL que la plataforma Anchor proporcionará a las aplicaciones de cartera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada mayormente por las carteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar acerca de la transacción. + +`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` y `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` son claves de cifrado que la plataforma Anchor usará para generar tokens de corta duración que añadirá a las URLs proporcionadas a la cartera. Tu servidor de negocio también debe tener estas claves en su entorno para verificar la firma del token. + +`SEP24_INITIAL_USER_DEADLINE_SECONDS` es un parámetro opcional que define el tiempo en segundos que tiene el usuario para actuar antes de que la transacción pase al siguiente estado. Determina el campo `user_action_required_by`, que indica la fecha límite. Consulta [JSON-RPC Methods][json-rpc-methods] para ejemplos de uso. + +## Probar con la billetera de demostración + +¡Las carteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Tu entorno ahora debería verse de la siguiente manera. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret encryption key" + +SEP24_ENABLED=true +SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 +SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" +SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +Para probar esto, ve a la [Cartera de Demostración Stellar][stellar-demo-wallet]. + +[![cartera de demostración conectada a la plataforma anchor](/assets/ap/anchor-platform-sep24-demo-wallet.png)](/assets/ap/anchor-platform-sep24-demo-wallet.png) + +Inicia una transacción haciendo lo siguiente: + +- Crear un nuevo par de claves +- Haz clic en el botón "Agregar activo" y escribe + - el código del activo Stellar en tu archivo `stellar.toml` + - tu dominio principal, `localhost:8080` +- Selecciona el desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar" + +La cartera de demostración debería poder encontrar tu archivo `stellar.toml`, autenticar usando el par de claves Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la cartera de demostración intente abrir la URL proporcionada por la plataforma Anchor, obtendrás una página de no encontrado. + +[![cartera de demostración tras iniciar una transacción](/assets/ap/anchor-platform-sep24-demo-wallet-widget.png)](/assets/ap/anchor-platform-sep24-demo-wallet-widget.png) + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server +[sep1-ap]: ../sep1/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/example.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/example.mdx new file mode 100644 index 0000000000..2ecca21616 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/example.mdx @@ -0,0 +1,438 @@ +--- +title: Ejemplo +sidebar_position: 40 +--- + +Integrarse con Anchor Platform implica tres áreas clave: + +- Crear una experiencia de usuario basada en web que pueda abrirse en una vista web móvil +- Proporcionar actualizaciones del estado de las transacciones a Anchor Platform +- Obtener actualizaciones del estado de las transacciones desde Anchor Platform + +## Crear una experiencia de usuario basada en web + +Anchor Platform no ofrece una interfaz de usuario marca blanca que tu negocio pueda utilizar; en cambio, espera que el negocio construya su propia interfaz y sistema backend. No construiremos toda una experiencia de usuario de entrada y salida en esta guía, pero cubriremos las maneras en que tu producto existente debe actualizarse para ser compatible con Anchor Platform. + +### Autenticación + +Si tu negocio ya tiene un producto de entrada y salida, probablemente ya cuentes con un sistema para la autenticación de usuarios. Sin embargo, dado que Anchor Platform autentica al usuario antes de proporcionar la URL del negocio, requerir al usuario que pase por otra forma de autenticación resulta innecesario. De esta forma, se puede pensar que Anchor Platform proporciona una forma alternativa de autenticación. + +El negocio es libre de seguir exigiendo que los usuarios se autentiquen usando su sistema existente, pero la experiencia ideal sería saltar este paso y crear una sesión autenticada si ya se autenticaron usando su cuenta Stellar. + +Anchor Platform añade un parámetro de consulta JWT `token` a la URL del negocio que se proporciona a la aplicación wallet. Este token está firmado con el valor `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` configurado previamente, e incluye la información necesaria para identificar al usuario. El proceso debería verse algo así: + +1. Pasa el `token` añadido a la URL de tu sistema backend +2. Verifica la firma del `token` y revisa su caducidad +3. Crea una sesión autenticada para el usuario identificado por `token.sub` + +El contenido decodificado del `token` se verá algo así: + + + +```json +{ + "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", + "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB:1234567", + "exp": 1516239022, + "data": { + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" + } +} +``` + + + +Nota que el valor `sub` identifica al usuario usando una cuenta Stellar y un entero. Este será el valor cuando aplicaciones de custodia que usan una cuenta global se autentiquen con tu servicio. Cuando carteras no custodias se autentiquen, el token puede verse un poco diferente. + + + +```json +{ + "jti": "e26cf292-814f-4918-9b40-b4f76a300f98", + "sub": "GB244654NC6YPEFU3AY7L25COGES445P3Q63W6Q76JHR3UBJMLT2XBOB", + "exp": 1516239022, + "data": { + "client_domain": "api.vibrantapp.com", + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" + } +} +``` + + + +El valor `sub` aquí solo contiene una clave pública para identificar al usuario, y el campo `data.client_domain` identifica la aplicación wallet usada para autenticar. + +En ambos casos, toda la información dentro del objeto `data` es opcional y solo estará presente si la wallet la proporciona. + +Vamos a añadir un servidor backend a nuestro archivo compose que se usará para verificar el token y crear sesiones web autenticadas para usuarios que inicien transacciones. + + + +```yaml +# docker-compose.yaml +--- +business-server: + build: . + ports: + - "8081:8081" + env_file: + - ./dev.env + depends_on: + - platform-server +``` + + + +Vamos a crear un contenedor Docker sencillo para nuestra aplicación. + + + +```docker +FROM node:19 + +WORKDIR /home +COPY . . +RUN npm install + +CMD ["node", "server.js"] +``` + + + +Ahora vamos a crear una aplicación NodeJS mínima. + + + +```bash +yarn init -y +yarn add express jsonwebtoken +touch server.js +``` + + + +A continuación, un ejemplo de un servidor backend autenticando un usuario usando NodeJS. + + + +```js +# server.js +const express = require("express"); +const jwt = require("jsonwebtoken"); +const app = express(); +const port = process.env.BUSINESS_SERVER_PORT; + +app.use(express.json()); + +/* + * We'll store user session data in memory, but production systems + * should store this data somewhere more persistent. + */ +const sessions = {}; + +/* + * Create an authenticated session for the user. + * + * Return a session token to be used in future requests as well as the + * user data. Note that you may not have a user for the stellar account + * provided, in which case the user should go through your onboarding + * process. + */ +app.post("/session", async (req, res) => { + let decodedPlatformToken; + try { + decodedPlatformToken = validatePlatformToken(req.body.platformToken); + } catch (err) { + res.status = 400; + res.send({ "error": err }); + return; + } + let user = getUser(decodedPlatformToken.sub); + let sessionToken = jwt.sign( + { "jti": decodedPlatformToken.jti }, + process.env.SESSION_JWT_SECRET + ); + sessions[sessionToken] = user; + res.send({ + "token": sessionToken, + "user": user + }); +}); + +/* + * Validate the signature and contents of the platform's token + */ +function validatePlatformToken(token) { + if (!token) { + throw "missing 'platformToken'"; + } + let decodedToken; + try { + decodedToken = jwt.verify(token, process.env.SECRET_SEP10_JWT_SECRET); + } catch { + throw "invalid 'platformToken'"; + } + if (!decodedToken.jti) { + throw "invalid 'platformToken': missing 'jti'"; + } + return decodedToken; +} + +/* + * Query your own database for the user based on account:memo string parameter + */ +function getUser(sub) { + return null; +} + +app.listen(port, () => { + console.log(`business server listening on port ${port}`); +}); +``` + + + +Ejecuta esto junto con el servidor de la plataforma y la base de datos, e inicia una nueva transacción con la [demo wallet][stellar-demo-wallet]. Luego, enviaremos el token a nuestro servidor. + + + +```bash +curl \ + -X POST \ + -H 'Content-Type: application/json' \ + -d '{"platformToken": ""}' \ + http://localhost:8081/session | jq +``` + + + +## Proporcionar actualizaciones a la plataforma + +Vamos a crear un endpoint para nuestro servidor de negocio que acepte la información recogida en nuestra UI. + + + +```js +# server.js + +// Production systems should either let the Anchor Platform generate its own memos +// or have your custodial service generate a memo for each transaction. +const transactionMemos = {}; + +app.post("/transaction", async (req, res) => { + let sessionToken; + try { + sessionToken = validateSessionToken(req.headers.get("authorization")); + } catch (err) { + res.status = 400; + res.send({ "error": err }) + return; + } + // assuming this is a withdrawal transaction, we'll provide a memo, which is + // required by our third-party custodian to credit us the payment. When the + // payment is made with this memo, we can match the on-chain payment with the + // transaction in the Anchor Platform's database. + transactionMemos[req.body.transaction.id] = parseInt(Math.random() * 100000); + let rpcRequestBody = [ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": req.body.transaction.id,, + "message": "waiting for the user to provide off-chain funds.", + "amount_in": { + "amount": req.body.amount_in.amount, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": req.body.amount_out.amount, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": req.body.fee_details.total, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "destination_account": "GD...G", + "memo": transactionMemos[req.body.transaction.id], + "memo_type": "id" + } + } + ]; + let platformResponse; + try { + platformResponse = await updatePlatformTransaction(rpcRequestBody); + } catch (err) { + res.status = 500; + res.send({ "error": err }) + return; + } + res.send({ + "transaction": platformResponse.records[0] + }); +}); + +function validateSessionToken(authorizationHeader) { + let parts = authorizationHeader.split(" "); + if (parts.length != 2 || parts[0] != "Bearer") { + throw "invalid authorization header format"; + } + let sessionToken = parts[1]; + try { + jwt.verify(sessionToken, process.env.SESSION_JWT_SECRET); + } catch { + throw "invalid session token"; + } + if (!sessions[sessionToken]) { + throw "expired session"; + } + return sessionToken; +} + +async function updatePlatformTransaction(requestBody) { + let response = await fetch( + `${process.env.PLATFORM_SERVER}`, + { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(requestBody) + } + ); + if (response.status != 200) { + throw `unexpected status code: ${response.status}`; + } + return await response.json(); +} +``` + + + +Esto actualizará la base de datos de Anchor Platform con la información proporcionada y permitirá que las aplicaciones wallet obtengan esta información actualizada para transmitírsela al usuario. Ya deberías haber informado al usuario sobre los montos de la transacción y que tu negocio está esperando que llegue el pago en cadena, pero proporcionando estas actualizaciones permites a los usuarios ver el estado de sus transacciones desde su aplicación móvil sin necesidad de abrir nuevamente la UI del negocio. + +:::note + +Actualmente, Anchor Platform no envía notificaciones a la aplicación wallet cuando cambian los estados de las transacciones; sin embargo, está en nuestra hoja de ruta agregar estas notificaciones o "callback requests" para que las wallets no tengan que hacer polling a Anchor Platform en busca de actualizaciones. + +::: + +## Obtener actualizaciones desde la plataforma + +Si solo usas Anchor Platform para exponer las APIs SEP a aplicaciones wallet, entonces no tendrás una razón fuerte para obtener actualizaciones del estado de las transacciones desde Anchor Platform, principalmente porque no actualizará el estado de la transacción hasta que hagas solicitudes `JSON-RPC API`. + +Sin embargo, si usas Anchor Platform para monitorear la red Stellar en busca de pagos entrantes (asociados con transacciones de retirada de fondos), Anchor Platform actualizará los estados de las transacciones cuando se reciban esos pagos. + +Hay dos formas de obtener actualizaciones desde Anchor Platform, + +- Haciendo polling al endpoint `GET /transactions/:id` del API de la plataforma para las transacciones por las que esperas un pago +- Recibiendo eventos de cambio de estado de transacciones mediante streaming desde un clúster Kafka + +Aunque hacer streaming de cambios de estado de transacciones desde un clúster Kafka puede ser un enfoque más robusto y escalable, usaremos el método de polling en esta guía. Configurar y usar un clúster Kafka será tema de una sección distinta de la documentación. + +Primero, configuremos Anchor Platform para observar la red Stellar en busca de pagos entrantes. + + + +```yaml +# docker-compose.yml +--- +stellar-observer: + image: stellar/anchor-platform:latest + command: --stellar-observer + env_file: + - ./dev.env + volumes: + - ./config:/home + depends_on: + - db +``` + + + +El comando `--stellar-observer` inicia un proceso que monitorea las cuentas de distribución configuradas en tu archivo `config.yaml` en busca de pagos de retirada de fondos. + +Si se envía un pago a una de estas cuentas y el memo adjunto a la transacción coincide con un valor `memo` proporcionado o generado por Anchor Platform, Anchor Platform considerará que la transacción con ese memo se ha recibido y actualizará el estado de la transacción a `pending_anchor`. Esto se hace realizando una solicitud `JSON-RPC API`, por lo que necesitamos configurar la URL que debe usar. + + + +```bash +# dev.env +PLATFORM_API_BASE_URL=http://platform-server:8085 +``` + + + +Hagamos algunas adiciones al archivo `server.js` para poder hacer polling a Anchor Platform para los pagos que esperamos. + + + +```js +// server.js +... +/* + * Fetch the transaction data from the Platform API + * + * Production systems should have proper retry mechanisms. + */ +async function getPlatformTransaction(transactionId) { + let response = await fetch(`${process.env.PLATFORM_SERVER}/transactions/${transactionId}`) + if (response.status != 200) { + throw `unexpected status code: ${response.status}`; + } + return await response.json(); +} + +(async () => { + while (true) { + await new Promise(r => setTimeout(r, 2000)); + let requestPromises; + for (const transactionId in transactionMemos) { + requestPromises.push(getPlatformTransaction(transactionId)) + } + let transactions = await new Promise.all(requestPromises); + for (const transaction in transactions) { + // assuming all requests were successful + if (transaction.status == "pending_anchor") { + // initiate off-chain delivery of funds + console.log(`received payment for transaction ${transaction.id}`); + } + } + } +})() +``` + + + +## Implementación completa de ejemplo + +Stellar proporciona una implementación de servidor de negocio de ejemplo para SEP-24. Está dividida en dos partes: 1) una UI web, accesible para el usuario final; y 2) una implementación backend, usada para obtener y enviar actualizaciones desde/hacia Anchor Platform. + +El código para la UI web puede encontrarse [aquí][sep-24-ref-ui] + +El código para el backend forma parte de Anchor Platform, y está disponible como un [submódulo][sep-24-ref]. + +[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info +[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform +[docker-compose]: https://docs.docker.com/compose/ +[minikube]: https://minikube.sigs.k8s.io/docs/ +[kubernetes]: https://kubernetes.io/ +[nginx]: https://www.nginx.com/ +[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml +[stellar-demo-wallet]: https://demo-wallet.stellar.org +[stellar-lab]: https://lab.stellar.org/ +[postgresql]: https://www.postgresql.org/ +[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html +[h2]: https://www.h2database.com/html/main.html +[sqlite]: https://www.sqlite.org/index.html +[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html +[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui +[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/faq.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/faq.mdx new file mode 100644 index 0000000000..25814b8d99 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/faq.mdx @@ -0,0 +1,39 @@ +--- +title: Preguntas frecuentes +sidebar_position: 50 +--- + +### ¿Cómo usar los JWT? + +Como parte del flujo, una vez que un usuario realiza una solicitud, por ejemplo, una solicitud interactiva de retiro/deposito, será procesada por la Anchor Platform y enviada a tu servicio. La Anchor Platform realizará una llamada `GET` a `?token=`. + +Este token JWT contendrá: + +1. `exp` es el tiempo de expiración del token. Debes verificar que el token proporcionado no haya expirado. +2. `sub` es la cuenta asociada con esta transacción. Puede usarse para identificar la cuenta de usuario. Ten en cuenta que este valor puede ser diferente de la cuenta que se usará para recibir/enviar fondos. +3. `jti` es el hash de la transacción. +4. `data` es la carga extra establecida por el usuario. Siempre contendrá el `asset` Stellar que desea depositar o retirar. Si lo proporciona el cliente, también contendrá la `amount` que el usuario desea transaccionar, el `client_domain` de la billetera verificado durante la autenticación SEP-10, y el `client_name` (definido como 'name' en la configuración de [clients] si se proporciona), y la preferencia de idioma `lang` del usuario. + +### ¿Cómo proporcionar las tarifas? + +Actualmente, se recomienda proporcionar las tarifas/tasas de cambio en el iFrame/vista web de tu aplicación. + +El estándar [SEP-24] proporciona un endpoint `/fee` para que las empresas establezcan tarifas estáticas para sus transacciones. Sin embargo, la Anchor Platform actualmente no lo soporta. + +:::note + +El endpoint /fee será descontinuado en el futuro. + +::: + +### ¿Cómo identificar la cuenta de usuario? + +Debes usar el campo `sub` del token JWT. Para billeteras custodiales, este valor estará en el formato `account:memo`. Usa el memo para identificar al usuario. Para billeteras no custodiales, simplemente usa el valor `sub` en sí, que será igual a la cuenta del usuario. + +### ¿Cómo identificar la billetera? + +Utiliza el atributo `data.client_domain` dentro del token JWT. En presencia de la configuración de [clients], el token JWT incorporará adicionalmente el campo `data.client_name`, permitiendo identificar la billetera. + +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[clients]: ../sep10/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/getting-started.mdx new file mode 100644 index 0000000000..1d49dc0607 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/getting-started.mdx @@ -0,0 +1,34 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía te llevará a través de la configuración e integración con la Plataforma Anchor para construir un servicio de acceso y salida compatible con [SEP-24][sep-24], el protocolo estandarizado del ecosistema para depósitos y retiradas alojados. + +Al aprovechar el soporte de SEP-24 de la Plataforma Anchor, las empresas hacen que su servicio de acceso y salida esté disponible como una experiencia dentro de la aplicación a través de aplicaciones basadas en Stellar, como wallets e intercambios, ampliando su alcance y conectándose con usuarios mediante las aplicaciones que ya utilizan. + +Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] ya la Plataforma Anchor y de haber configurado las funciones necesarias requeridas por SEP-24: [SEP-1 (Archivo de Información Stellar)][sep1-ap], [SEP-10 (Autenticación Stellar)][sep10-ap] y [SEP-45 (Autenticación Web Stellar para cuenta de contrato)][sep45-ap]. + +## La experiencia básica del usuario + +La experiencia completa del cliente para un depósito y un retiro es algo así: + +1. El cliente abre la aplicación wallet SEP-24 de su elección +2. El cliente selecciona un activo para depositar y el wallet encuentra un anchor (los clientes también podrían elegir el anchor específico) +3. Una vez que el wallet se autentica con el anchor, el cliente empieza a ingresar su información KYC y de la transacción que el anchor solicita +4. El wallet proporciona instrucciones, y el cliente deposita moneda fiat real con el anchor (por ejemplo, realiza una transferencia bancaria) +5. Una vez que el wallet recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor + +El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, comercio, almacenamiento de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual sería algo así: + +1. El cliente abre su aplicación wallet +2. El cliente selecciona el activo para retirar y el wallet encuentra el anchor +3. Después de autenticarse con el anchor, el wallet abre la URL interactiva proporcionada y permite al cliente ingresar la información de la transacción (KYC ya ha sido recopilado) +4. Después de pedir la aprobación del cliente, el wallet envía la cantidad especificada del balance del activo del cliente a la cuenta de distribución del anchor en Stellar +5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados mediante transferencia bancaria. + +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/integration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/integration.mdx new file mode 100644 index 0000000000..5452b713ba --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/integration.mdx @@ -0,0 +1,927 @@ +--- +title: Integración +sidebar_position: 30 +--- + +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +Uno de los principales puntos de interacción con la Anchor Platform es notificar a la Anchor Platform sobre eventos relacionados con la transacción. + +En general, querrás proporcionar actualizaciones para los siguientes eventos: + +- Tu negocio está procesando la información KYC proporcionada por el usuario +- Tu negocio está listo para recibir fondos del usuario +- Tu negocio ha recibido fondos del usuario +- Tu negocio ha enviado fondos al usuario +- Tu negocio ha procesado un reembolso para la transacción del usuario +- Tu negocio experimentó un error inesperado + +Esto se hace haciendo solicitudes JSON-RPC al endpoint de la API de la Platform. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer la solicitud JSON-RPC correspondiente y pasar los datos requeridos por este método RPC. + +La API JSON-RPC de la Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Por lo tanto, la API será llamada cada vez que un usuario o el anchor realice alguna acción que progrese el estado de la transacción en el flujo. + +La comunicación desde la Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una característica opcional que debe configurarse por separado de la integración SEP-6. Para más información, consulta [Gestión de Eventos][event-handling]. + +Puedes conocer más sobre el flujo y estados de la transacción en el [documento del protocolo SEP-24][sep-24] + +## Callbacks + +La Anchor Platform depende del servidor de negocio para proporcionar y almacenar información sobre cotizaciones. + +### Cotizaciones y Tarifas + +Para admitir el intercambio de activos no equivalentes, la Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones para el intercambio. La API de cotización se utiliza para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotización también se usa para mostrar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor de negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a la Anchor Platform. + +## Seguridad de la API de la Platform + + + +### Uso de API Key + + + +### Uso de JWT + + + +## Realizando solicitudes JSON-RPC + + + +### Solicitud JSON-RPC + + + +### Respuesta JSON-RPC + + + +### Códigos de error + + + +## Actualizando la transacción de depósito vía JSON-RPC + +El diagrama del flujo de depósito SEP-24 define la secuencia/reglas de la transición del estado de la transacción y un conjunto de métodos JSON-RPC que deben ser llamados para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, la Anchor Platform devolverá un error y no cambiará el estado de la transacción. + +[![flujo de depósito SEP24](/assets/ap/sep24-deposit-flow-diagram.png)](/assets/ap/sep24-deposit-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo significan que la transacción está en un estado de error o ha expirado. + +::: + +### Listo para recibir fondos + +El primer paso del flujo de depósito después de iniciar el depósito es recopilar KYC. Generalmente se hace en la aplicación web, pero también puede ser proporcionado opcionalmente por la aplicación de billetera, usando [SEP-9]. Una vez que se recopila el KYC necesario, se debe hacer una solicitud JSON-RPC `request_offchain_funds`. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es el monto total de las tarifas cobradas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está establecido en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. + +La información sobre las cantidades (entrada/salida/fee) es necesaria si quieres mover la transacción desde el estado `incomplete` a `pending_user_transfer_start`. Si el estado de la transacción cambia de `pending_anchor` a `pending_user_transfer_start`, puedes omitir la definición de cantidades. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::tip + +Cuando el proceso de KYC es largo (por ejemplo, verificación de ID), se recomienda primero establecer el estado de la transacción a `pending_anchor` usando la solicitud JSON-RPC `notify_interactive_flow_completed`. Esto indicará al usuario que el KYC está siendo procesado. + +::: + +### Procesando información KYC + +:::tip + +Este paso es opcional. La mayoría de los negocios no lo utilizan. Puedes omitirlo e ir al [siguiente paso](#funds-received). + +Se recomienda usar este estado cuando la verificación KYC pueda necesitar realizarse de manera asíncrona. + +::: + +**Debes** especificar los campos `amount_x`. + + + +```json +// kyc-in-process.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_interactive_flow_completed", + "params": { + "transaction_id": "", + "message": "Interactive flow completed.", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh kyc-in-process.json +``` + + + +### Fondos recibidos + +Si se recibieron fondos offchain, querrás proporcionar información actualizada de la transacción. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` es la fecha y hora de recepción de los fondos +- `external_transaction_id` es el ID de la transacción en la red externa + +Los campos de monto son opcionales. Si se omiten, se tomarán los valores de las solicitudes JSON-RPC previas. + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Esperando fondos del usuario + +En el mundo real, el proceso de confirmación de transferencia puede tomar tiempo. En tales casos, las transacciones deben establecerse a un nuevo estado que indique que se ha recibido la confirmación de la transferencia, pero los fondos aún no se han recibido. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Enviando fondos onchain + +Luego, envía una transacción en la red Stellar para cumplir con la solicitud del usuario. Después de completar la transacción, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados con éxito. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +Después de esta solicitud JSON-RPC, la transacción pasará al estado `completed`. + +### Pendiente de confianza + +Este estado debe establecerse si un pago requiere una trustline de activo que no fue configurada por el usuario. Hay dos maneras en que la transacción puede pasar al estado `pending_trust`. La primera es cuando el servidor de negocio detecta que la trustline no está configurada. La segunda es cuando el negocio mismo detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, es necesario hacer la siguiente solicitud JSON-RPC: + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +El servidor de negocio verifica periódicamente si la trustline fue configurada. Si fue así, puede enviar un pago y cambiar el estado de la transacción a `pending_stellar`. + +::: + +### Trust Set + +Este estado debe establecerse si el negocio ha detectado si la trustline fue o no configurada por el usuario. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- El flag `success` que define si la trustline fue o no configurada por el usuario + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Dependiendo del flag `success`, el estado de la transacción será cambiado a `pending_stellar` si la trustline fue configurada, o a `pending_anchor` si no fue así. + +::: + +### Enviando reembolso + +Existe la posibilidad de enviar fondos de regreso al usuario (reembolso). Puedes reembolsar la suma completa (reembolso total) o realizar varios reembolsos parciales. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte de la suma al usuario y enviar el resto como fondos onchain. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción se establecerá en `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción será `refunded`. + +::: + +### Reembolso pendiente + +Es similar a [Reembolso enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no está confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se establece al esperar que la red de Bitcoin u otra red de criptomonedas externa complete una transacción, o cuando se espera una transferencia bancaria. + +### Error en la transacción + +Si encuentras un error irrecuperable al procesar la transacción, es necesario establecer el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario ha hecho una transferencia, debes hacer una recuperación de la transacción y luego puedes reintentar procesar la transacción o iniciar un reembolso. + +::: + +### Transacción expirada + +Tu negocio puede querer manejar transacciones abandonadas expirando aquellas que hayan permanecido inactivas por cierto período. Para lograr esto, verifica el estado de la transacción usando el endpoint `GET /transactions` y ordena los resultados por la marca de tiempo `user_action_required_by`. Si la marca de tiempo ha pasado, ejecuta manualmente la lógica apropiada, como expirar la transacción o iniciar un auto-reembolso, basado en el estado actual de la transacción. Por ejemplo, para expirar una transacción, el negocio debe cambiar el estado de la transacción a `expired`: + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después de que el usuario haya hecho una transferencia. + +::: + +### Transacción en espera + +En casos raros, puedes querer pausar la transacción actual y solicitar más información al usuario (después de que se haya recibido la transferencia). Esto podría usarse para casos de cumplimiento. + + + +```json +// transaction-hold.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_on_hold", + "params": { + "transaction_id": "", + "message": "Transaction is on hold. Please contact customer support to resolve the hold." + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-hold.json +``` + + + +### Recuperación de transacción + +El estado de la transacción puede cambiarse de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, es necesario realizar la siguiente solicitud JSON-RPC: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Actualizando la transacción de retirada vía JSON-RPC + +Este diagrama define la secuencia/reglas de transición del estado de una transacción para el flujo de retirada SEP-24. + +[![flujo de retirada SEP24](/assets/ap/sep24-withdrawal-flow-diagram.png)](/assets/ap/sep24-withdrawal-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo significan que la transacción está en un estado de error o ha expirado. + +::: + +Una vez que el flujo de depósito ha finalizado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. + +El punto de partida tanto para la retirada como para el depósito es el mismo. + +### Listo para recibir fondos + +Similar al depósito, el siguiente paso es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, dado que tu servicio recibirá transacciones a través de la red Stellar, la actualización se verá diferente. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- `memo` Valor del memo para adjuntar a la transacción +- `memo_type` Tipo de memo que el anchor debería adjuntar a la transacción +- `destination_account` Cuenta destino + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::tip + +Establecer `memo`, `memo_type` y `destination_account` es opcional. + +Si la integración con un custodio externo está habilitada, la Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige el tipo de generador de información de depósito correspondiente. También puedes proporcionar `memo` y `memo_type` en la solicitud como se muestra arriba. Ten en cuenta que el memo debe ser único, esto es lo que ayuda a asociar las transacciones Stellar con las transacciones SEP. + +Si tu negocio administra los activos, la Anchor Platform puede generar los memos por ti. Cuando el estado cambia a `pending_user_transfer_start`, la Anchor Platform establece automáticamente el `memo` y `memo_type` (solo si no están incluidos en la solicitud). + +::: + +:::note + +La cuenta Stellar que se usará para recibir fondos debe estar configurada. + +::: + +### Procesando información KYC + +Este paso es opcional y es similar a [Procesar información KYC](#processing-kyc-information) del flujo de depósito. + +### Fondos recibidos + +Si se recibieron fondos onchain, necesitas proporcionar los montos y cambiar el estado de la transacción a `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +Este método será llamado automáticamente por el observador de pagos Stellar cuando detecte que se han recibido fondos onchain. + +::: + +### Monto actualizado + +Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere del especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y será igual a `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Solo `amount_out` y `fee_details` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. + +::: + +### Fondos offchain enviados + +Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Fondos offchain disponibles + +Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos offchain y está listo para que el usuario/beneficiario los recoja. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Fondos offchain pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, necesitas correr: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Reembolso enviado + +La lógica de reembolso funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Reembolso enviado](#refund-sent) del flujo de depósito. + +### Error en la transacción + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Error en la transacción](#transaction-error) del flujo de depósito. + +### Transacción expirada + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción expirada](#expired-transaction) del flujo de depósito. + +### Transacción en espera + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Transacción en espera](#on-hold-transaction) del flujo de depósito. + +### Recuperación de transacción + +Funciona de la misma manera que para el flujo de depósito. Para más detalles, consulta [Recuperación de transacción](#transaction-recovery) del flujo de depósito. + +## Rastreando transacciones Stellar + + + +[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md +[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md +[event-handling]: ../../admin-guide/events/README.mdx +[rate-callback]: ../../api-reference/callbacks/README.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx new file mode 100644 index 0000000000..b088a875d5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server.mdx @@ -0,0 +1,122 @@ +--- +title: Configurar un servidor de producción +sidebar_position: 60 +--- + +Una vez que el servidor de prueba esté en vivo y hayas probado tanto los flujos de depósito como de retiro, es hora de comenzar con el despliegue real conectado a KYC real y proveedores reales de sistemas bancarios. Antes de utilizar cualquier API bancaria, es fundamental que realices una auditoría completa de seguridad en el sistema para asegurarte de que no existan vulnerabilidades. + +## Desplegar un entorno seguro + +Asegúrate de mantener el servidor de prueba activo y despliega el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas funciones en la testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de preproducción si hay un equipo grande trabajando en esta base de código y/o habrá muchas incorporaciones que deban ser probadas internamente antes de compartirlas con otras instituciones. + +Para cambiar a la red pública (mainnet) de Stellar, solo tienes que cambiar la [frase de paso](../../../../networks/README.mdx#network-passphrases) de la red (para autenticar las solicitudes) y la [URL de Horizon](https://horizon.stellar.org/). + +Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción. + +Primero, necesitas cambiar tu archivo de información (`stellar.toml`): + + + +```toml +# stellar.toml +NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" +``` + + + +Luego, cambia tu configuración de la plataforma Anchor en el archivo `production.env`: + +### Para conexión al servidor Horizon: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_HORIZON_URL="https://horizon.stellar.org" +``` + + + +### Para conexión al servidor RPC de Stellar: + + + +```bash +# production.env STELLAR_NETWORK_NETWORK="Public" +STELLAR_NETWORK_RPC_URL="https://mainnet.sorobanrpc.com" +``` + + + +## Conectar con KYC real + +La mayoría de las anchors necesitan recopilar información de [Conoce a tu Cliente](https://es.wikipedia.org/wiki/Conoce_a_tu_cliente) para cumplir con las regulaciones locales antes de aceptar depósitos y retiros. El flujo de KYC usualmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno. + +Cómo manejes el KYC depende de ti: existen muchos servicios que ofrecen soluciones KYC mediante APIs y iframes, validan los datos ingresados y sincronizan con bases de datos gubernamentales para verificar requisitos. Cada jurisdicción tiene requisitos específicos de KYC, y varían de una a otra, por lo que es mejor encontrar un proveedor de KYC específico para el país que satisfaga tus necesidades. + +Algunos países requieren diferentes campos de KYC según la cantidad a depositar o retirar. Si ese es tu caso y necesitas adaptar tus formularios KYC en función del monto de depósito o retiro, simplemente añade un campo de cantidad antes del formulario KYC y asegúrate de que los campos KYC se actualicen según ese valor. + +La información KYC debe estar vinculada a la sesión creada mediante [Autenticación web de Stellar](../sep10/README.mdx) y, en consecuencia, al usuario, por lo que solo necesitas solicitarla una vez. Después de completar el primer flujo de KYC, un usuario no debería tener que ingresar la información nuevamente. + +Asegúrate de que los mensajes de error y validación sean claros e incluyan instrucciones sobre qué hacer después para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También debes localizar los mensajes según el idioma y la ubicación del usuario. + +## Autocompletar el formulario KYC + +Autocompletar el formulario KYC es una excelente forma de reducir la fricción para comenzar a usar una anchor, y las wallets suelen proporcionar un conjunto de campos comúnmente usados en el ecosistema. En resumen, la anchor puede mostrar el formulario KYC con los valores del usuario que fueron enviados previamente por la wallet en los endpoints `/transactions/deposit/interactive` y `/transactions/withdraw/interactive`. + +Todos los campos de [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) pueden ser enviados por las wallets en los endpoints mencionados, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, deberías permitir que los campos autocompletados sean editables, ya que el usuario podría haber ingresado un nombre diferente durante el proceso de registro en la wallet y podría querer editarlo antes de finalizar el proceso KYC de la anchor. + +Todos los datos de SEP-9 enviados desde la wallet forman parte del [JWT interactivo](./faq.mdx#how-to-use-jwts) enviado por la plataforma Anchor. + +## Conectarse a sistemas bancarios reales + +Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que existe una relación 1:1 entre los tokens en la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado y puede canjearse por un activo real subyacente, los emisores de tokens respaldados por fiat necesitan conectarse a sistemas bancarios reales para validar depósitos de usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.). y para completar los retiros de usuarios (generalmente mediante transferencias bancarias). Si eres una anchor que acepta depósitos y retiros de un token emitido por otra organización, seguirás un proceso similar. + +Para obtener (e identificar) una transferencia de usuario, los emisores suelen utilizar una de dos aproximaciones: + +- Sondeo de API: esta opción consiste en consultar la API bancaria mediante un trabajo cron para verificar el estado actualizado de la lista de transferencias recibidas y enviadas desde la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que está relacionada con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario. +- Webhook: no todos los sistemas bancarios admiten esta opción, pero es la opción más ligera en términos de lógica de backend. En este enfoque, el banco envía proactivamente una notificación al endpoint del emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede entonces asociar esa transacción a un depósito en proceso existente y validar que el usuario pueda recibir sus fondos digitales. + +Hay muchas formas de identificar que una transferencia bancaria específica corresponde a un depósito concreto (y, en consecuencia, a un usuario). Algunos bancos (y países) tienen infraestructuras que permiten la creación de una cuenta bancaria única por transferencia; otros requieren que los usuarios añadan un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan correlacionarlo con la información proporcionada en el formulario KYC. + +Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando las conexiones a sistemas bancarios estén activas. Algunos bancos proporcionan una API de prueba que puede usarse para desarrollo y despliegue en entornos de testnet o preproducción, lo que te permite probar y auditar la base de código antes de pasar a una integración bancaria final lista para producción. Para mayor seguridad, algunas anchors prefieren añadir un paso manual final antes de aprobar transferencias de retiro. En términos de experiencia de usuario, esta aprobación manual es aceptable siempre que los tiempos de espera estén alineados con las expectativas del usuario, lo que generalmente significa que no sean mayores a un par de horas. + +## Probar casos límite + +Una vez que tu aplicación esté completamente funcional, es recomendable probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporta como se espera. Aquí tienes una lista de sugerencias de pruebas que deberían cubrir una gran cantidad de casos extremos de la aplicación: + +### Pruebas generales + +- Prueba la usabilidad del flujo interactivo +- Prueba la interfaz usando información de distintas localidades y revisa el contenido traducido, incluyendo mensajes de error, respuestas, formatos de fecha y formatos de número. + +### Pruebas KYC + +- Verifica que KYC aparezca con una nueva SK de wallet +- Verifica que KYC no acepte entradas con formato incorrecto y que los mensajes de error sean comprensibles +- Verifica que puedas usar la misma información KYC (correo, teléfono, nombre de usuario, etc.) múltiples veces +- Verifica que puedas realizar el proceso KYC varias veces con la misma SK Stellar. + +### Prueba interactiva + +- Verifica que el flujo de depósito funcione y que los sistemas bancarios estén operativos +- Verifica que no puedas realizar un retiro con un valor mayor al saldo actual +- Verifica que el flujo de retiro funcione y que los sistemas bancarios estén operativos + +### Pruebas de seguridad + +- Asegúrate de que los endpoints de la plataforma estén protegidos + +## Pulido e internacionalización + +Soportar dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida al navegar por las pantallas, y apoya a instituciones internacionales (como wallets) que necesitan probar el producto antes de comenzar nuevas integraciones. + +Puedes soportar múltiples idiomas en tu aplicación web usando el parámetro `Accept-Language` de los encabezados http para localizar el contenido, y permitiendo que los usuarios cambien eso de forma sencilla (por ejemplo, un icono de bandera en la barra superior). Si una wallet específica no envía el parámetro del encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al inicio de los procesos de depósito y retiro. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarles una vez. Además de localizar el texto, asegúrate de revisar el formato de números, fechas, etc. + +Tener un grupo de testers beta es una excelente forma de verificar si hay casos límite que necesiten ajuste, y para confirmar que el sistema funciona bien con una variedad de entradas de usuario. Puedes realizar pruebas beta usando una etapa de lanzamiento suave antes de comenzar a invertir esfuerzo en marketing y distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para auditorías de seguridad futuras, y da claridad y confianza a socios nuevos y usuarios potenciales sobre el producto. + +## Conectarse a wallets + +Todas las interacciones de usuarios de Anchor se realizan a través de una wallet, por lo que es vital para las anchors estar conectadas a wallets que tengan buena penetración en el mercado de la región donde se enfoque el negocio. Conectarse a wallets es un proceso sencillo, ya que ambos extremos de esa integración ya cumplen con los SEPs. + +Stellar.org mantiene una [lista de wallets](https://www.stellar.org/ecosystem/projects), muchas de las cuales actualmente soportan SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta emisora es una excelente forma de comenzar a atraer usuarios reales a la Anchor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/README.mdx new file mode 100644 index 0000000000..1182d8e05b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/README.mdx @@ -0,0 +1,10 @@ +--- +title: Pagos Transfronterizos (SEP-31) +sidebar_position: 100 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-31 permite que las wallets y/o exchanges interactúen con el conjunto existente de servicios de envío de Stellar. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/configuration.mdx new file mode 100644 index 0000000000..44a12873c7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/configuration.mdx @@ -0,0 +1,344 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +## Modificar un archivo Stellar Info + +Comencemos modificando nuestro archivo `stellar.toml` creado [anteriormente][sep1-ap]. Las billeteras deben saber que tu negocio soporta la funcionalidad SEP-31, y también necesitan conocer todas las monedas que admites. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" + +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que deberás crear otro archivo para el despliegue en producción que utilice la frase de paso de la red pública, las URLs de servicio de producción, tus cuentas de distribución mainnet y la clave de firma, así como las cuentas emisoras mainnet de los activos que utiliza tu servicio. + +## Habilitar Pagos Transfronterizos + +Ahora estás listo para habilitar los pagos transfronterizos en la API SEP-31. Especifica lo siguiente en tu archivo `dev.assets.yaml`. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH +``` + + + +La información proporcionada en los objetos `sep31` y `send` corresponde estrechamente a la información que se expondrá a la aplicación de billetera mediante el endpoint SEP-31 [`GET /info`][sep31-get-info]. La plataforma Anchor también usa esta información para validar las solicitudes hechas a tu servicio. `sep31.fields.transaction` debe dejarse vacío y será eliminado en una futura versión, pero puedes ajustar los valores `send.min_amount` y `send.max_amount` según los límites de tu servicio. + +Las propiedades `sep31.quotes_supported` y `sep31.quotes_required` determinan si las organizaciones que envían pueden y están obligadas a solicitar una tasa de cambio mediante el endpoint [SEP-38 `POST /quote`][sep38-post-quote]. Casi todos los remitentes prefieren este enfoque para poder comunicar la tasa a sus clientes antes de proceder. + +Agrega la siguiente variable a tu archivo de entorno. + + + +```bash +# dev.env +SEP31_ENABLED=true +``` + + + +¡Los remitentes ahora deberían poder descubrir, autenticarse e iniciar transacciones con tu servicio! Ejecuta el siguiente comando para iniciar la plataforma Anchor. + + + +```bash +docker compose up +``` + + + +Verifica que tu API esté activa. + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +Deberías obtener lo siguiente. + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Habilitar la API KYC para Clientes + +Los negocios necesitan recopilar y validar información KYC de los clientes para quienes están facilitando transacciones. Los clientes determinan qué información KYC debe recopilarse y envían esa información a través de una API SEP-12 KYC alojada por la plataforma Anchor, pero la plataforma Anchor nunca almacena información personal identificable (PII). En cambio, la plataforma reenvía las solicitudes de los clientes al servidor del negocio y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. + +Consulta la [especificación de la API KYC de la plataforma Anchor][platform-api-kyc] para obtener detalles sobre los endpoints que deben implementarse en el servidor de tu negocio. + +Para poner esta API a disposición de los clientes, añadamos la URL del servicio a nuestro archivo Stellar Info. + + + +```toml +# dev.stellar.toml +KYC_SERVER = "http://localhost:8080/sep12" +``` + + + +Habilitémosla también en nuestro entorno. + + + +```bash +# dev.env +SEP12_ENABLED=true +``` + + + +Finalmente, debemos definir los tipos de clientes de tu negocio. Cada tipo de cliente requiere un conjunto diferente de información KYC. Por ejemplo, puedes ofrecer tu servicio de pagos transfronterizos en dos jurisdicciones regulatorias distintas, por lo que los clientes en diferentes jurisdicciones tienen diferentes requisitos KYC y serían representados usando diferentes tipos. + +:::info + +Actualmente, los tipos de clientes deben ser mutuamente exclusivos, es decir, un cliente no puede ser más de un tipo. + +Esta limitación existe porque la plataforma Anchor no puede validar si un cliente está aprobado para un tipo específico de transacción, como enviar una cantidad grande. Solo puede validar que un cliente está aprobado para uno de los tipos de clientes definidos. Esta limitación será eliminada en una futura versión. + +::: + +En esta guía, solo tendremos dos tipos: un tipo de cliente remitente y un tipo de cliente receptor. Actualmente, nuestros tipos de clientes están definidos en nuestra configuración de activos, pero esto cambiará en una futura versión. + + + +```yaml +# dev.assets.yaml +sep31: + sep12: + sender: + types: + sep31-sender: + description: customers sending to recipients + receiver: + types: + sep31-receiver: + description: customers receiving from senders +``` + + + +Volvamos a hacer ping al endpoint info para verificar. Después de `docker compose up`, ejecuta el siguiente comando: + + + +```bash +curl http://localhost:8080/sep31/info | jq +``` + + + +Deberías obtener lo siguiente: + + + +```json +{ + "receive": { + "USDC": { + "enabled": true, + "quotes_supported": true, + "quotes_required": true, + "min_amount": 0, + "max_amount": 10000, + "fields": { + "transaction": {} + } + } + } +} +``` + + + +## Habilitar la API RFQ + +Los negocios necesitan proporcionar a sus contrapartes del lado del envío una API [Rate][get-rates-api] para comprobar las tasas de cambio que están ofreciendo entre el activo on-chain utilizado para la liquidación y el activo fiat utilizado para pagar al destinatario. Si la tasa es competitiva, los remitentes también deben poder solicitar un compromiso con la tasa actualmente ofrecida por el negocio por un corto período de tiempo. + +La plataforma Anchor provee la [API SEP-38 RFQ][sep38] para los remitentes con este propósito. + +Para poner esta API a disposición de los clientes, añadamos la URL del servicio a nuestro archivo Stellar Info. + + + +```toml +# dev.stellar.toml +DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +QUOTE_SERVER = "http://localhost:8080/sep38" +``` + + + +Habilitémosla también en nuestro entorno. + + + +```bash +# dev.env +SEP38_ENABLED=true +``` + + + +También necesitamos habilitar USDC para usarla en esta API, así como agregar un activo off-chain con el que pueda intercambiarse. + + + +```yaml +# dev.assets.yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep31: + enabled: true + quotes_supported: true + quotes_required: true + receive: + min_amount: 0 + max_amount: 10000 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:BRL + country_codes: + - BR + - id: iso421:BRL + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + country_codes: + - BR + significant_decimals: 2 + buy_delivery_methods: + - name: PIX + description: Have BRL sent directly to your bank account. +``` + + + +¡Probemos que tu API RFQ esté activa! Tras `docker compose up`: + + + +```bash +curl http://localhost:8080/sep38/info | jq +``` + + + +Deberías obtener lo siguiente: + + + +```json +{ + "assets": [ + { + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + { + "asset": "iso4217:BRL", + "country_codes": ["BR"], + "buy_delivery_methods": [ + { + "name": "PIX", + "description": "Have BRL sent directly to your bank account." + } + ] + } + ] +} +``` + + + +## Configurar la Autenticación para la API de Callback + +Así como tu negocio necesitará hacer solicitudes a la plataforma Anchor, la plataforma Anchor necesitará hacer solicitudes a tu negocio. Agreguemos autenticación a estas solicitudes también. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://server:8081 +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +SECRET_CALLBACK_API_AUTH_SECRET= +``` + + + +`CALLBACK_API_BASE_URL` utiliza `server` en lugar de `localhost` como host porque la plataforma Anchor realizará solicitudes a tu servidor de negocio desde dentro de la red local creada por docker compose. Al configurar tu servicio en un entorno de staging o producción, asegúrate de actualizar las URLs de tu servicio. + +Definiremos el servidor que implementa los endpoints definidos en la API de Callback en la sección siguiente. + +[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info +[sep1-ap]: ../sep1/README.mdx +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/getting-started.mdx new file mode 100644 index 0000000000..5cc1bde41b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/getting-started.mdx @@ -0,0 +1,22 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía te llevará a través de la configuración e integración con la Anchor Platform con el propósito de desarrollar un servicio receptor de pagos transfronterizos compatible con [SEP-31][sep-31], el protocolo estandarizado del ecosistema para pagos transfronterizos. + +Aprovechando el soporte de la Anchor Platform para SEP-31, las empresas hacen que su servicio sea compatible con el conjunto existente de servicios emisores de Stellar. + +:::info + +A medida que mejoramos la documentación, partes de esta guía relevantes para otros casos de uso podrían ser trasladadas a sus propias secciones. + +::: + +Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Anchor Platform y configurado las funciones necesarias requeridas por SEP-31: [SEP-1 (Archivo de Información de Stellar)][sep1-ap], [SEP-10 (Autenticación de Stellar)][sep10-ap] y [SEP-45 (Autenticación Web de Stellar para cuenta de contrato)][sep45-ap]. + +[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/integration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/integration.mdx new file mode 100644 index 0000000000..b5923b9441 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep31/integration.mdx @@ -0,0 +1,618 @@ +--- +title: Integración +sidebar_position: 30 +--- + +Integrarse con la Plataforma Anchor para facilitar pagos transfronterizos implica implementar, al menos, lo siguiente: + +- Los endpoints de la API KYC [`GET /customer`][get-customer] y [`PUT /customer`][put-customer] para solicitar y recopilar los datos KYC de los clientes +- El endpoint RFQ de la API [`GET /rate`][get-rate] para proporcionar las tasas FX entre los activos on y off-chain soportados +- Solicitudes `GET /transactions` para obtener actualizaciones sobre el estado de las transacciones en la Plataforma Anchor (documentación próximamente) +- Solicitudes [`JSON-RPC`][json-rpc-methods] para actualizar los estados de las transacciones de la Plataforma Anchor + +También pueden requerirse los siguientes según tu caso de uso: + +- [`DELETE /customer`][delete-customer] si tu negocio desea o debe permitir que los remitentes soliciten la eliminación de datos de clientes + +## Crear un Servidor de Negocio + +Primero, vamos a crear un servidor de negocio y añadirlo al archivo docker compose. + + + +```yaml +version: "3.8" + +services: + sep-server: + image: stellar/anchor-platform:latest + command: --sep-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8080:8080" + depends_on: + - db + platform-server: + image: stellar/anchor-platform:latest + command: --platform-server + env_file: + - ./dev.env + volumes: + - ./config:/home + ports: + - "8085:8085" + depends_on: + - db + + server: + build: . + ports: + - "8081:8081" + env_file: + - ./dev.env + db: + image: postgres:14 + ports: + - "5432:5432" + env_file: + - ./dev.env +``` + + + +Luego, crea un servidor web sencillo usando tu lenguaje de programación preferido y un `Dockerfile` que inicie el servidor. `docker compose up` debería iniciar correctamente los tres servicios. + +Esta guía no ofrece una implementación ejemplo de los endpoints, pero puedes encontrar más información sobre los esquemas de solicitud y respuesta en la [Referencia API de la Plataforma Anchor][ap-api], y las secciones a continuación ampliarán conceptos importantes para comprender al implementar los endpoints. + +## Endpoints de Callback de Cliente + +La Plataforma Anchor nunca almacena la información personal identificable (PII) de tus clientes, sino que actúa como servidor proxy entre las aplicaciones cliente y tu negocio, reenviando solicitudes y respuestas a la otra parte. Actualmente, las solicitudes y respuestas son casi idénticas a las definidas en la [especificación API SEP-12 KYC][sep12]. + +### Identificación de Clientes + +Los clientes pueden identificarse usando dos enfoques. + +El primer enfoque utiliza una cuenta Stellar y un memo. Al usar la Plataforma Anchor para facilitar pagos transfronterizos, la organización remitente utiliza su propia cuenta Stellar, la que se usa para autenticarse via [Autenticación Stellar SEP-10][ap-sep10], para registrar clientes con tu negocio. Los memos se utilizan para distinguir clientes únicos que provienen de la misma organización remitente. + +El segundo enfoque usa IDs de clientes generados por tu servicio. Por ejemplo, si una organización remitente está registrando un cliente, tu negocio recibirá una solicitud `PUT /customer` como la siguiente: + + + +```json +{ + "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", + "memo": "780284017", + "type": "sep31-sender", + "first_name": "John", + "last_name": "Doe", + "email": "johndoe@example.com" +} +``` + + + +En este ejemplo, la clave pública `GDJ...X47` identifica a la organización remitente, y el memo `780284017` identifica al cliente. Los memos suelen ser enteros de 64 bits, pero también pueden ser otros tipos de datos, así que deben guardarse como cadenas. Como respuesta, tu negocio debe devolver un ID de cliente. + + + +```json +{ + "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" +} +``` + + + +Tu servidor de negocio puede usar cualquier identificador para los clientes mientras sea una cadena. + +Tras registrar a un cliente, la organización remitente puede usar cualquier enfoque para verificar el estado del cliente. Por ejemplo, podrías recibir una solicitud `GET /customer` como la siguiente: + + + +``` +/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender +``` + + + +O la organización remitente podría usar el identificador que devolviste cuando registraron originalmente al cliente. + + + +``` +/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender +``` + + + +Tu negocio debe mantener un mapeo entre la cuenta y memo usados para registrar al cliente originalmente, el ID que devuelves en la respuesta, y los datos KYC proporcionados. En futuras iteraciones de la Plataforma Anchor, podríamos mantener este mapeo por ti para que solo tengas que trabajar con los IDs que generes. + +### Tipos de Clientes + +Tu negocio probablemente requiere diferentes conjuntos de información KYC según el tipo de cliente. Puedes definir las etiquetas para cada tipo de cliente en tu archivo `dev.assets.yaml`, y tus organizaciones remitentes deberán usar la etiqueta correcta al registrar o consultar el estado de los clientes. + +En solicitudes `PUT /customer`, debes usar el tipo proporcionado para evaluar si el remitente ha entregado todos los campos requeridos. En solicitudes `GET /customer`, debes usar el tipo para determinar el estado del cliente. + +### Prueba con la Demo Wallet + +Puedes probar tu implementación con la [Demo Wallet Stellar][demo-wallet] siguiendo los pasos a continuación. + +1. Selecciona "Generar par de claves para nueva cuenta" +2. Selecciona "Crear cuenta" +3. Selecciona "Agregar activo" e ingresa el código del activo y el dominio principal de la Plataforma Anchor, `localhost:8080` +4. Selecciona "Agregar línea de confianza" +5. Fondea tu cuenta con un saldo del activo +6. Selecciona "SEP-31 Enviar" en el menú desplegable + +Deberías ver que la demo wallet encuentra las URLs de tu servicio, se autentica y verifica qué campos KYC necesita recopilar. Luego debería mostrar un formulario para introducir los detalles KYC del remitente y receptor. + +[![demo wallet después de iniciar una transacción](/assets/ap/anchor-platform-sep31-demo-wallet-widget.png)](/assets/ap/anchor-platform-sep31-demo-wallet-widget.png) + +Una vez que hayas ingresado la información solicitada, la enviará a la Plataforma Anchor, que a su vez la enviará a tu servidor de negocio. Una vez que la demo wallet tiene los IDs de clientes que generaste, iniciará una transacción que debería fallar. + +## Endpoint de Callback de Tasas + +Una vez que la organización remitente haya registrado a los clientes involucrados en la transacción, necesitará solicitar una cotización, o tasa FX, a tu negocio. La Plataforma Anchor solicita esta información a tu servidor de negocio usando el endpoint [`GET /rate`][get-rate]. + +### Cotizaciones Firmes vs Indicativas + +Las solicitudes de cotización tendrán un parámetro `type` que será [`indicative`][indicative] o [`firm`][firm]. Si `type=firm`, tu respuesta debe incluir el campo `id` y `expires_at` (fecha y hora) y reservar la liquidez necesaria para cumplir esta cotización hasta que expire. Si `type=indicative`, no debes devolver los campos `id` ni `expires_at` porque la tasa proporcionada no se usará en una transacción. + +Ten en cuenta que el cliente puede solicitar que la cotización expire después de una fecha y hora específica usando el parámetro `expires_after`. Tu negocio debe respetar esta solicitud devolviendo un valor `expires_at` igual o posterior a la fecha y hora solicitadas, o rechazar la solicitud con una respuesta 400 Bad Request, que se reenviará al cliente. + +### Uso del ID del Cliente + +Las solicitudes pueden incluir un parámetro `client_id` que identifica a la organización remitente que solicita la tasa. Puedes usar este parámetro para cumplir con los términos comerciales acordados con esa organización remitente, como ofrecer tarifas con descuento. El `client_id` puede no estar presente en solicitudes indicativas, en cuyo caso debe devolverse tu precio de mercado. Actualmente, el `client_id` siempre será la clave pública Stellar que la organización remitente usó para autenticarse con la Plataforma Anchor. + +### Métodos de Entrega + +Es común que las tarifas y comisiones del negocio difieran según las vías de pago usadas para enviar fondos al destinatario. Si tus métodos de entrega están configurados en tu archivo `asset.yaml`, los clientes siempre indicarán la vía de pago que desean que use tu negocio para solicitudes de cotizaciones firmes. + +Dado que este endpoint se utiliza actualmente solo para pagar remesas en activos off-chain, se usará el `buy_delivery_method`. Si este endpoint se usa en otros flujos de transacciones como depósitos SEP-24, podría pasarse también el `sell_delivery_method` para negocios que soporten esos tipos de transacciones. + +## Obteniendo actualizaciones del estado de las transacciones + +Para facilitar pagos transfronterizos, necesitarás detectar cuándo una organización remitente ha enviado a tu negocio un pago on-chain y determinar a qué transacción corresponde ese pago. + +La forma más sencilla es ejecutar el Stellar Observer, que detectará estos pagos y actualizará el registro de la transacción correspondiente con información sobre el pago. Tu negocio podrá luego detectar estas actualizaciones consultando periódicamente el endpoint `GET /transactions` de la API de la Plataforma. + +### Ejecutando el Stellar Observer + +El Stellar Observer monitorea el libro mayor de Stellar para detectar pagos hechos a tu(s) cuenta(s) y actualiza los registros de transacciones correspondientes con la información del pago on-chain. Para ejecutar el observer, añade lo siguiente a tu archivo docker compose. + + + +```yaml +services: + ... + observer: + image: stellar/anchor-platform:latest + command: --stellar-observer + env_file: + - ./dev.env + volumes: + - ./config:/home +``` + + + +### Consultar pagos recibidos + +El Stellar Observer realiza solicitudes JSON-RPC a la API de Plataforma cuando detecta que se recibieron pagos para transacciones iniciadas por organizaciones remitentes, actualizando así la fecha y hora `transfer_received_at` de la transacción. + +Tu negocio debe consultar periódicamente la API de Plataforma en `GET /transactions` para detectar estas actualizaciones. Puedes consultar el siguiente ejemplo: + + + +```bash +curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc +``` + + + +La respuesta incluirá una lista de transacciones de pagos transfronterizos iniciadas por organizaciones remitentes. Esta lista estará ordenada según el momento en que se recibió el pago para esa transacción. Para cada transacción devuelta, tu negocio debe verificar si ya se detectó el pago para esa transacción. Si es así, has detectado todos los pagos realizados a tu(s) cuenta(s). + +## Actualizando Transacciones via JSON-RPC + +El diagrama del flujo SEP-31 define la secuencia/reglas para la transición de estado de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que deseas establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene los atributos requeridos, la Plataforma Anchor devolverá un error y no cambiará el estado de la transacción. + +[![flujo sep31](/assets/ap/sep31-transition-diagram.png)](/assets/ap/sep31-transition-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el flujo más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo significan que la transacción está en estado de error o ha expirado. + +::: + +Puedes crear una [plantilla][sep24-integration-make-json-rpc-request] para realizar solicitudes JSON-RPC a la Plataforma Anchor. + +Este capítulo también incluye información sobre el formato de la [solicitud][sep24-integration-rpc-request]/[respuesta][sep24-integration-rpc-response] y los [códigos de error][sep24-integration-error-codes] que puede devolver la Plataforma Anchor. + +### Listo para recibir fondos + +Las transacciones SEP-31 deberían comenzar con el estado `pending_receiver`. Para solicitar fondos del Anchor remitente, el Anchor receptor debe cambiar el estado de la transacción a `pending_sender` mediante la siguiente solicitud RPC: + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +El estado de la transacción cambiará a `pending_sender`. + +### Fondos recibidos + +Si el Anchor remitente ha enviado los fondos, el Anchor receptor debe cambiar el estado de la transacción a `pending_receiver` mediante la siguiente solicitud JSON-RPC: + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +El estado de la transacción cambiará a `pending_receiver`. + +### Fondos offchain enviados + +Para completar la transacción y cambiar su estado a `completed`, debes hacer una solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Fondos offchain pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago ha sido enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Verificación de información del cliente + +En algunos casos, el Anchor receptor podría necesitar solicitar información actualizada al Anchor remitente. Por ejemplo, el banco informa al Anchor receptor que el nombre del cliente receptor es incorrecto o le falta una inicial intermedia. Dado que esta información fue enviada mediante SEP-12, la transacción debe pasar al estado `pending_customer_info_update` hasta que el Anchor remitente haga otra solicitud SEP-12 `PUT /customer` para actualizarla. El Anchor remitente puede verificar qué campos se deben actualizar haciendo una solicitud SEP-12 `GET /customer` que incluya el id o los parámetros cuenta y memo. El Anchor receptor debe responder con un estado `NEEDS_INFO` e incluir `last_name` en los campos descritos. + +Después que el Anchor remitente haga una solicitud SEP-12 `PUT /customer`, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método cada vez que el estado SEP-12 de un cliente cambie, por ejemplo al pasar de `NEEDS_INFO` a `PROCESSING` cuando la información del cliente está siendo validada. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del estado más reciente del cliente, permitiendo que el cliente solicite al usuario actualizar su información. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep31-receiver" // or sep31-sender + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Reembolso enviado + +Existe la posibilidad de reenviar todos los fondos al `Sending Anchor` (reembolso). Debes reembolsar la suma completa (reembolso total). + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_fee": { + "amount": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::note + +No puedes realizar múltiples reembolsos en el flujo SEP-31. Por esta razón, el monto a reembolsar más la comisión deben sumar `amount_in`. De lo contrario, recibirás un error. + +::: + +### Error de transacción + +Si encuentras un error irrecuperable al procesar la transacción, es obligatorio establecer el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario ha realizado una transferencia, deberías hacer una recuperación de la transacción para luego volver a intentar procesarla o iniciar un reembolso. + +::: + +### Transacción expirada + +Tu negocio puede querer expirar aquellas transacciones abandonadas por el usuario después de un tiempo. Es buena práctica limpiar las transacciones inactivas en estado `incomplete`. Para ello, simplemente cambia el estado de la transacción a `expired`. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después que el usuario haya hecho una transferencia. + +::: + +### Recuperación de transacción + +El estado de la transacción puede cambiar de `error/expired` a `pending-anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar procesando la transacción. Para recuperar la transacción, es necesario hacer la siguiente solicitud JSON-RPC: + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para ejecutar esto, debes correr: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +### Configuración + +Puedes habilitar estos tipos de transacciones actualizando la configuración de tu archivo `assets.yaml`: + + + +```yaml +items: + - ... + sep31: + quotes_required: false +``` + + + +[ap-api]: ../../README.mdx +[ap-sep10]: ../sep10/README.mdx +[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md +[demo-wallet]: https://demo-wallet.stellar.org +[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp +[firm]: https://www.investopedia.com/terms/f/firmquote.asp +[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx +[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx +[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx +[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx +[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx +[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests +[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request +[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response +[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep45/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep45/README.mdx new file mode 100644 index 0000000000..b7519a5326 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep45/README.mdx @@ -0,0 +1,142 @@ +--- +title: Autenticación Stellar para Cuentas de Contrato (SEP-45) +sidebar_position: 70 +--- + +## Descripción general + +SEP-45 (Autenticación Web Stellar para Cuentas de Contrato) permite a las aplicaciones de billeteras inteligentes crear sesiones autenticadas con anclas Stellar demostrando control sobre una cuenta de contrato (`C...`). Una vez autenticadas, las billeteras reciben un Token Web JSON (JWT) que utilizan en solicitudes posteriores a los servicios estandarizados del ancla. + +Para la especificación completa, consulta [SEP-0045: Autenticación Web Stellar para Cuentas de Contrato][sep-45]. + +La Plataforma Anchor implementa SEP-45 con soporte para: + +- **Flujo Desafío/Respuesta**: GET `/sep45/auth` para solicitar entradas de autorización, POST `/sep45/auth` para validar y recibir un JWT +- **Autenticación de Cuenta de Contrato**: Soporte para cuentas de contrato (`C...`) usando entradas de autorización Soroban +- **Simulación de Transacciones**: Simulación automática de transacciones para verificar entradas de autorización +- **Múltiples Dominios Principales**: Soporte para múltiples dominios y patrones comodín + +:::info + +**SEP-45 vs SEP-10**: SEP-45 no reemplaza a SEP-10. SEP-45 soporta cuentas de contrato (`C...`), mientras que SEP-10 soporta cuentas clásicas (`G...`) y cuentas multiplexadas (`M...`). Los servicios que deseen soportar todos los tipos de cuentas deben implementar ambos SEPs. + +::: + +## Flujo Típico de Autenticación + +1. El **Cliente** solicita un desafío único al **Servidor** +2. El **Cliente** verifica y firma el desafío +3. El **Cliente** envía el desafío firmado al **Servidor** +4. El **Servidor** verifica el desafío y responde con un token de sesión JWT + +Se proporciona una implementación del contrato SEP-45 en el [repositorio Platform Anchor][sep-45-contract]. Una instancia de este contrato está desplegada en `CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX` en testnet. + +## Activar SEP-45 + +SEP-45 requiere integración con Stellar RPC para simular transacciones. La Plataforma Anchor puede conectarse al servidor Stellar RPC de tu elección. Puedes usar un proveedor público de Stellar RPC, o ejecutar el tuyo propio. Una lista de proveedores públicos se encuentra [aquí][rpc-providers]. + +Para activar SEP-45, configura las siguientes variables de entorno en tu archivo `dev.env`. + + + +```bash +# dev.env +STELLAR_NETWORK_TYPE=rpc +STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org +SEP45_ENABLED=true +SEP45_HOME_DOMAINS=localhost:8080 +SEP45_WEB_AUTH_CONTRACT_ID="CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP45_JWT_SECRET="a secret encryption key" +``` + + + +### Configuración requerida (si está habilitado) + +| Variable | Por defecto | Descripción | +| ---------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `STELLAR_NETWORK_TYPE` | _Requerido_ | Debe establecerse en `rpc` para SEP-45. Esto habilita el modo RPC para la Plataforma Anchor. | +| `STELLAR_NETWORK_RPC_URL` | _Requerido_ | La URL del servidor Stellar RPC utilizado para simular transacciones. Puedes usar un proveedor público o ejecutar el tuyo propio. Una lista de proveedores públicos se encuentra [aquí][rpc-providers]. | +| `SEP45_ENABLED` | `false` | Establece en `true` para habilitar la autenticación SEP-45 | +| `SEP45_HOME_DOMAINS` | _Requerido_ | Lista de dominios principales (separados por comas). Soporta patrones comodín como `*.stellar.org`. El `home_domain` debe coincidir con el host donde se sirve tu archivo `stellar.toml`. | +| `SEP45_WEB_AUTH_CONTRACT_ID` | _Requerido_ | El ID del contrato del contrato SEP-45. Este contrato debe implementar la función `web_auth_verify` como se describe en la [especificación SEP-45][sep-45]. | +| `SECRET_SEP10_SIGNING_SEED` | _Requerido_ | La clave privada correspondiente a la `SIGNING_KEY` en tu archivo `stellar.toml`. SEP-45 usa la misma clave de firma que SEP-10. Usada para firmar desafíos de autenticación. | +| `SECRET_SEP45_JWT_SECRET` | _Requerido_ | La clave de cifrado usada para firmar y verificar los tokens JWT emitidos a las billeteras autenticadas. | + +:::important + +- **Requisito RPC**: SEP-45 requiere Stellar RPC para simular transacciones. Debes establecer `STELLAR_NETWORK_TYPE=rpc` y proporcionar una `STELLAR_NETWORK_RPC_URL` válida. +- **ID del Contrato**: El `SEP45_WEB_AUTH_CONTRACT_ID` debe coincidir con el contrato desplegado en la dirección especificada en el campo `WEB_AUTH_CONTRACT_ID` de tu archivo `stellar.toml`. +- **Clave de Firma**: La `SIGNING_KEY` en tu archivo `stellar.toml` debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED`. + +::: + +### Configuración Opcional + + + +```bash +# dev.env +# Optional: Specify web_auth_domain (default: first home_domain if only one is specified) +SEP45_WEB_AUTH_DOMAIN=localhost:8080 + +# Optional: Challenge timeout in seconds (default: 900) +SEP45_AUTH_TIMEOUT=900 + +# Optional: JWT token timeout in seconds (default: 86400 = 24 hours) +SEP45_JWT_TIMEOUT=86400 +``` + + + +| Variable | Por defecto | Descripción | +| ----------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `SEP45_WEB_AUTH_DOMAIN` | Primer `home_domain` si solo se especifica uno, de lo contrario vacío | La propiedad `web_auth_domain` usada en las respuestas de SEP-45. Requerido si tienes múltiples `home_domains` o usas patrones comodín. Debe coincidir con el host del servidor SEP. | +| `SEP45_AUTH_TIMEOUT` | `900` | Tiempo en segundos que un desafío permanece válido. Los clientes deben firmar y enviar las entradas de autorización dentro de esta ventana. | +| `SEP45_JWT_TIMEOUT` | `86400` | Tiempo en segundos que un token JWT emitido permanece válido. Después de la expiración, los clientes deben reautenticarse. | + +:::tip + +**Múltiples Dominios Principales**: Si especificas múltiples `home_domains` (ej., `ap.stellar.org,*.sdp.stellar.org`), también debes establecer `SEP45_WEB_AUTH_DOMAIN` para especificar qué dominio aloja el endpoint de autenticación. + +::: + +## Configurar stellar.toml + +Actualiza tu archivo `stellar.toml` para publicitar soporte para SEP-45. Las billeteras descubren tu endpoint de autenticación a través de este archivo. + + + +```toml +# dev.stellar.toml + +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here (public key from SECRET_SEP10_SIGNING_SEED)" +WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" +WEB_AUTH_CONTRACT_ID = "CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" +``` + + + +Estos campos deben coincidir con las opciones de configuración establecidas en la sección [Activar SEP-45](#enable-sep-45) arriba. + +`WEB_AUTH_FOR_CONTRACTS_ENDPOINT` - La URL donde se ejecuta el servicio de autenticación. Esta es la URL que los clientes usarán para autenticarse con el ancla. El endpoint debe soportar: + +- `GET ` - Solicitar entradas de autorización +- `POST ` - Intercambiar entradas de autorización firmadas por un JWT de sesión + +`WEB_AUTH_CONTRACT_ID` - El ID del contrato del contrato SEP-45. Este es el contrato que se usará para construir el desafío. El contrato debe implementar la función `web_auth_verify` como se describe en la [especificación SEP-45][sep-45]. Esto debe coincidir con `SEP45_WEB_AUTH_CONTRACT_ID`. + +:::important + +- **`SIGNING_KEY`**: Debe ser la clave pública derivada de `SECRET_SEP10_SIGNING_SEED` +- **`WEB_AUTH_FOR_CONTRACTS_ENDPOINT`**: Usa `https://` en producción. El path `/sep45/auth` es el endpoint estándar SEP-45. +- **Coincidencia de Host**: El host en `WEB_AUTH_FOR_CONTRACTS_ENDPOINT` debe coincidir con uno de tus `SEP45_HOME_DOMAINS` (o el `SEP45_WEB_AUTH_DOMAIN` si se especifica). + +::: + +[sep1-ap]: ../sep1/README.mdx +[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md +[sep-45-contract]: https://github.com/stellar/anchor-platform/tree/main/soroban/contracts/web-auth +[rpc-providers]: /docs/data/apis/rpc/providers diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/README.mdx new file mode 100644 index 0000000000..5be772ba82 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/README.mdx @@ -0,0 +1,10 @@ +--- +title: Depósitos y Retiros Programáticos (SEP-6) +sidebar_position: 80 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-6 permite una forma en la que las billeteras y/o exchanges interactúan con un anchor en nombre de los usuarios, sin que el usuario necesite interactuar directamente con la rampa de entrada y salida. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/configuration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/configuration.mdx new file mode 100644 index 0000000000..02cd493916 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/configuration.mdx @@ -0,0 +1,254 @@ +--- +title: Configuración +sidebar_position: 20 +--- + +# Configuración + +Para habilitar los depósitos y retiradas SEP-6, la Anchor Platform debe estar configurada para hacer lo siguiente: + +- Proporcionar las URLs de servicio necesarias para los endpoints SEP-6, 12 y 38 en el archivo `stellar.toml` +- Proporcionar información sobre los activos on y off-chain, así como las vías de pago admitidas por tu negocio vía los endpoints `/info` de SEP-6 y SEP-38 +- Admitir los endpoints y callbacks necesarios para solicitar información KYC y proporcionar tasas de cambio + +## Habilitar Depósitos y Retiradas Programáticos + +Agrega las siguientes variables a tu archivo de entorno. + + + +```bash +# dev.env +SEP6_ENABLED=true +SEP12_ENABLED=true +SEP38_ENABLED=true +``` + + + +### Modificar un Archivo Stellar Info + +Vamos a modificar el archivo `stellar.toml` creado [antes][sep1-ap]. Las billeteras necesitan saber que tu negocio admite la funcionalidad SEP-6, y también necesitan conocer todos los activos Stellar que admites. + + + +```toml +# dev.stellar.toml +ACCOUNTS = ["add your public keys for your distribution accounts here"] +SIGNING_KEY = "add your signing key here" +NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" + +TRANSFER_SERVER = "http://localhost:8080/sep6" +WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" +KYC_SERVER = "http://localhost:8080/sep12" +ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" + +# Add support for USDC +[[CURRENCIES]] +code = "USDC" +issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" +status = "test" +is_asset_anchored = false +desc = "USD Coin issued by Circle" + +[DOCUMENTATION] +ORG_NAME = "Your organization" +ORG_URL = "Your website" +ORG_DESCRIPTION = "A description of your organization" +``` + + + +Ten en cuenta que necesitarás crear otro archivo para tu despliegue en producción que use la clave de paso de la red pública, tus URLs de servicio de producción, tus cuentas de distribución y claves de firma de Mainnet, así como las cuentas emissoras de activos de Mainnet que utiliza tu servicio. + +### Modificar el Archivo de Configuración de Activos + +Ahora estás listo para especificar lo siguiente en tu archivo `dev.assets.yaml`, y cambiar los valores según tu caso de uso. Este archivo de activos de ejemplo habilita el soporte para USDC de Circle y un fiat USD para depositar y retirar. + +Los métodos especificados en las secciones `sep38` son métodos que el endpoint SEP-38 [`GET /info`][sep38] expondrá. + +Los métodos especificados en las secciones `deposit` y `withdraw` son los métodos que el endpoint SEP-6 [`GET /info`][sep-6] expondrá. Los métodos listados deben coincidir con los métodos definidos en la sección SEP-38 del archivo. + +También ten en cuenta que los activos fiat, aquellos con `schema: iso4217`, no necesitan especificar los objetos de configuración `sep6_enabled`, `deposit` o `withdraw`. De manera similar, los activos Stellar, aquellos con `schema: stellar`, no necesitan especificar los objetos de configuración `sep38.sell_delivery_methods` o `sep38.buy_delivery_methods`. + + + +```yaml +items: + - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 + significant_decimals: 2 + sep6: + enabled: true + deposit: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + withdraw: + enabled: true + min_amount: 0 + max_amount: 10 + methods: + - ACH + sep38: + enabled: true + exchangeable_assets: + - iso4217:USD + - id: iso4217:USD + significant_decimals: 2 + sep38: + enabled: true + exchangeable_assets: + - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 + buy_delivery_methods: + - name: ACH + description: ACH debits for US bank accounts + sell_delivery_methods: + - name: ACH + description: ACH credit for US bank accounts +``` + + + +### Administrar Cuentas de Distribución + +Ten en cuenta que el ejemplo anterior lista un atributo `distribution_account` para la entrada USDC. Si se especifica, esta cuenta será proporcionada junto con un memo único y generado aleatoriamente por transacción a los clientes como la dirección a la cual enviar fondos para transacciones de retirada. El memo de la transacción es cómo tú o la Anchor Platform harán coincidir los fondos recibidos con un registro de transacción en la base de datos de Anchor Platform. + +Si no dispones de tu propia cuenta Stellar y en su lugar usas un tercero que te proporciona una cuenta Stellar y memo para recibir fondos en tu nombre, como un exchange o custodio, debes omitir el campo `distribution_account` de tu archivo de configuración de activos. En su lugar, deberás proporcionar la cuenta Stellar y memo que desees usar para recibir fondos mediante una solicitud al Anchor Platform [`request_onchain_funds`][request-onchain-funds] para cada transacción. + +Para configurar la Anchor Platform para esperar que la cuenta Stellar y memo se proporcionen vía API en lugar de configurarse vía archivo de activos, especifica la siguiente variable de entorno. + + + +```bash +# dev.env +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +``` + + + +### Habilitar Callbacks al Servidor del Negocio + +Los negocios necesitan recolectar y validar la información KYC de los clientes para quienes están facilitando transacciones. Los clientes preguntan a tu negocio qué información KYC debe recopilarse y envían esa información mediante la API KYC SEP-12 alojada por la Anchor Platform, pero la Anchor Platform nunca almacena información de identificación personal (PII). En su lugar, reenvía las solicitudes de los clientes al servidor del negocio, y devuelve las respuestas del negocio al cliente, actuando como un servidor proxy. + +Además, los negocios deben proporcionar a los clientes una API [Rates][get-rates-api] para consultar las tasas de cambio que están ofreciendo entre los activos onchain y offchain admitidos por el negocio. Si la tasa es competitiva, los clientes también deben poder solicitar un compromiso con la tasa actualmente ofrecida por el negocio por un corto período de tiempo. De manera similar a la API KYC, la Anchor Platform realiza solicitudes a tu servidor empresarial para obtener tasas de cambio y cotizaciones y las devuelve a los clientes. + +Para habilitar estas solicitudes a tu servidor empresarial, primero necesitarás agregar tu servidor al archivo docker compose. Luego, para admitir solicitudes a tu servidor empresarial desde la Anchor Platform, necesitas habilitar callbacks. + + + +```bash +# dev.env +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +Lo anterior indica a la Anchor Platform que incluya un [JWT][how-to-use-jwt], firmado con el secreto configurado, en el encabezado `Authorization` de las solicitudes realizadas a `/callbacks/` para que tu servidor pueda autenticar a la Anchor Platform antes de procesar las solicitudes. + +Consulta la [API KYC][platform-api-kyc] y la [API de Tasas][get-rates-api] para detalles sobre los endpoints que deben implementarse en tu servidor empresarial. + +### Configuración Opcional Adicional + +`more_info_url` es una URL opcional proporcionada por tu servidor empresarial para que las aplicaciones de billeteras muestren información sobre transacciones iniciadas previamente. Esta URL es usada típicamente por las billeteras en sus vistas de historial de transacciones, y tu negocio puede especificar la información que se mostrará sobre la transacción. + + + +```bash +# dev.env +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" +``` + + + +Los negocios pueden establecer un plazo para las acciones del usuario en las transacciones usando el campo `user_action_required_by`. Para ejemplos, consulta los [Métodos JSON-RPC][json-rpc-methods]. Además, el parámetro `initial_user_deadline_seconds` establece un tiempo predeterminado (en segundos) que el usuario tiene para actuar antes de que la transacción pase al estado `EXPIRED`. + + + +```bash +# dev.env +SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 +``` + + + +## Probar con la Demo Wallet + +Las billeteras ahora deberían poder descubrir, autenticarse e iniciar transacciones con tu servicio. Tu proyecto y archivos fuente deberían verse ahora algo así. + + + +``` +├── dev.env +├── docker-compose.yaml +├── config +│ ├── dev.assets.yaml +│ ├── dev.stellar.toml +``` + + + +Tu entorno ahora debería verse algo parecido a lo siguiente. + + + +```bash +# dev.env +ASSETS_TYPE=file +ASSETS_VALUE=/home/dev.assets.yaml + +SEP1_ENABLED=true +SEP1_TOML_TYPE=file +SEP1_TOML_VALUE=/home/dev.stellar.toml + +SEP6_ENABLED=true +SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none +SEP6_MORE_INFO_URL_BASE_URL=http://example.com +SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" + +SEP10_ENABLED=true +SEP10_HOME_DOMAIN=localhost:8080 +SECRET_SEP10_SIGNING_SEED="a Stellar private key" +SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" + +SEP12_ENABLED=true + +SEP38_ENABLED=true + +CALLBACK_API_BASE_URL=http://business-server:3000/callbacks +CALLBACK_API_AUTH_TYPE=jwt +CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 +CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization +SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" +``` + + + +Para probar esto, ve a la [Stellar Demo Wallet][stellar-demo-wallet]. + +Inicia una transacción de depósito haciendo lo siguiente: + +- Crear un nuevo par de claves +- Haz clic en el botón "Add Asset" e ingresa + - el código del activo Stellar en tu archivo `stellar.toml` + - tu dominio principal, `localhost:8080` +- Selecciona el desplegable y haz clic en "SEP-6 Deposit", luego haz clic en "Start" + +La demo wallet debería poder encontrar tu archivo `stellar.toml`, autenticarse usando el par de claves Stellar que acabas de crear e iniciar una transacción. + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[sep1-ap]: ../sep1/README.mdx +[stellar-demo-wallet]: https://demo-wallet.stellar.org/ +[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx +[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md +[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx +[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx +[how-to-use-jwt]: ../sep24/faq.mdx +[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/getting-started.mdx new file mode 100644 index 0000000000..b330f7ff07 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/getting-started.mdx @@ -0,0 +1,34 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía te enseñará a configurar e integrar con la Anchor Platform con el propósito de desarrollar un servicio de entrada y salida compatible con [SEP-6][sep-6], el protocolo estandarizado del ecosistema para depósitos y retiros programáticos. + +Al aprovechar el soporte del Anchor Platform para SEP-6, las empresas hacen que su propio servicio de entrada y salida esté disponible como una experiencia integrada en aplicaciones basadas en Stellar, como wallets y exchanges, ampliando su alcance y conectándose con los usuarios a través de las aplicaciones que ya utilizan. + +Antes de continuar con esta sección, asegúrate de haber [instalado][installation-ap] la Anchor Platform y configurado las características necesarias requeridas por SEP-6: [SEP-1 (Stellar Info File)][sep1-ap], [SEP-10 (Stellar Authentication)][sep10-ap] y [SEP-45 (Stellar Web Authentication for contract account)][sep45-ap]. + +## La experiencia básica del usuario + +La experiencia completa del cliente para un depósito o retiro usando SEP-6 es la siguiente: + +1. El cliente abre la aplicación de wallet SEP-6 de su preferencia +2. El cliente selecciona un activo para depositar y la wallet encuentra un anchor (los clientes también pueden elegir el anchor específico) +3. Una vez que la wallet se autentica con el anchor, el cliente comienza a ingresar su información KYC y la información de la transacción solicitada por el anchor +4. La wallet proporciona instrucciones y el cliente deposita la moneda fiduciaria real con el anchor (como una transferencia bancaria) +5. Cuando la wallet recibe el depósito, el cliente recibe el activo tokenizado en la red Stellar desde la cuenta de distribución del anchor + +El cliente puede entonces usar el activo digital en la red Stellar para remesas, pagos, comercio, reserva de valor u otro caso de uso no listado aquí. En una fecha posterior, el cliente podría decidir retirar sus activos de la red Stellar, lo cual se vería así: + +1. El cliente abre su aplicación wallet +2. El cliente selecciona el activo para retirar y la wallet encuentra el anchor +3. Después de autenticarse con el anchor, el cliente puede ingresar su información de la transacción y cualquier información adicional KYC que no haya sido recopilada aún +4. Tras solicitar la aprobación del cliente, la wallet envía la cantidad especificada del saldo del activo del cliente a la cuenta de distribución del anchor en Stellar +5. Una vez que el anchor recibe el pago, el cliente recibe los fondos retirados mediante cualquier método que soporte el anchor (como transferencia bancaria) + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx +[sep45-ap]: ../sep45/README.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/integration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/integration.mdx new file mode 100644 index 0000000000..e9595256b9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/anchor-platform/sep-guide/sep6/integration.mdx @@ -0,0 +1,897 @@ +--- +title: Integración +sidebar_position: 30 +--- + +import Security from "../../admin-guide/component/security/security.mdx"; +import UsingApiKey from "../../admin-guide/component/security/api_key.mdx"; +import UsingJwt from "../../admin-guide/component/security/jwt.mdx"; +import Rpc from "../../admin-guide/component/rpc/rpc.mdx"; +import RpcRequest from "../../admin-guide/component/rpc/request.mdx"; +import RpcResponse from "../../admin-guide/component/rpc/response.mdx"; +import RpcError from "../../admin-guide/component/rpc/error.mdx"; +import Observer from "../../admin-guide/component/observer/observer.mdx"; + +Uno de los puntos principales de interacción con Anchor Platform es notificar a la Plataforma sobre eventos relacionados con las transacciones. + +En general, querrás proporcionar actualizaciones para los siguientes eventos. + +- Tu negocio requiere que el usuario envíe información KYC para procesar una transacción +- Tu negocio actualizó las cantidades de entrada/salida/comisión para una transacción +- Tu negocio está listo para recibir fondos del usuario +- Tu negocio ha recibido fondos del usuario +- Tu negocio ha enviado fondos al usuario +- Tu negocio ha procesado un reembolso para la transacción del usuario +- Tu negocio experimentó un error inesperado + +Esto se realiza haciendo solicitudes JSON-RPC al punto final de la API de la Plataforma. Las solicitudes JSON-RPC te permiten actualizar el estado de la transacción. Para mover la transacción a un estado específico, es necesario hacer una solicitud JSON-RPC correspondiente y pasar los datos requeridos por el método RPC. + +La API JSON-RPC de Anchor Platform está diseñada para notificar a la plataforma sobre cambios en el estado de la transacción. Dado esto, la API será llamada cada vez que un usuario o el anchor tome alguna acción que progrese el estado de la transacción en el flujo. + +La comunicación desde Anchor Platform sobre actualizaciones de transacciones, actualizaciones de clientes y creación de cotizaciones se maneja a través del servicio de eventos. Esta es una función opcional que debe configurarse separadamente de la integración SEP-6. Para más información, consulta [Manejo de Eventos][event-handling]. + +Puedes obtener más información sobre el flujo y los estados de la transacción en el [documento del protocolo SEP-6][sep-6]. + +## Callbacks + +Anchor Platform depende del servidor del negocio para proporcionar y almacenar información sobre clientes y cotizaciones. + +### Información del Cliente + +Anchor Platform no almacena información del cliente. En cambio, reenvía todas las solicitudes SEP-12 de clientes al servidor del negocio. El servidor del negocio es responsable de almacenar y gestionar esta información. Por lo tanto, tu servidor del negocio debe implementar las [APIs de cliente][customer-callback] para manejar actualizaciones KYC. + +### Cotizaciones y Tarifas + +Para admitir el intercambio de activos no equivalentes, Anchor Platform expone una API compatible con SEP-38 para proporcionar cotizaciones del exchange. La API de cotizaciones se usa para proporcionar al usuario la cantidad esperada del activo que recibirá a cambio del activo que está enviando. La API de cotizaciones también se usa para proporcionar al usuario las tarifas esperadas para la transacción. Por lo tanto, tu servidor del negocio debe implementar la [API de tarifas][rate-callback] para proporcionar cotizaciones a Anchor Platform. + +## Asegurar la API de la Plataforma + + + +### Uso de Clave API + + + +### Uso de JWT + + + +## Realizando solicitudes JSON-RPC + + + +### Solicitud JSON-RPC + + + +### Respuesta JSON-RPC + + + +### Códigos de error + + + +## Actualizando Transacción de Depósito (Exchange) vía JSON-RPC + +El diagrama del flujo de depósito SEP-6 define las secuencias/reglas de la transición de estados de la transacción y un conjunto de métodos JSON-RPC que deben llamarse para cambiar ese estado. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, Anchor Platform devolverá un error y no cambiará el estado de la transacción. + +El flujo de depósito exchange es igual que el flujo de depósito, excepto que no será necesario recalcular las cantidades al solicitar fondos fuera de cadena, si el usuario ha proporcionado una cotización firme del anchor. + +[![sep6 deposit flow](/assets/ap/sep6-deposit-flow-diagram.png)](/assets/ap/sep6-deposit-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo indican que la transacción está en un estado de error o ha caducado. + +::: + +### Verificación de Información KYC + +Aunque Anchor Platform no requiere que un cliente tenga su información KYC recopilada antes de iniciar un depósito, tu negocio puede querer recolectar esta información antes de que el cliente haga una transferencia. Escuchando eventos de creación de transacciones, o consultando el punto final [`GET /transactions`][get-transactions], puedes determinar si una transacción requiere que el cliente actualice su información. Los campos requeridos SEP-9 pueden comunicarse al usuario devolviendo un estado `NEEDS_INFO` con los campos requeridos en el atributo `fields`. + +Después de que el usuario haya enviado su información KYC, llama al método JSON-RPC `notify_customer_info_updated` para actualizar el estado de la transacción. Además, llama a este método siempre que el estado SEP-12 de un cliente cambie, por ejemplo, cuando la información del cliente está siendo validada y el estado cambia de `NEEDS_INFO` a `PROCESSING`. Esto asegura que cualquier cliente configurado con una URL de callback sea notificado del último estado del cliente, permitiendo que el cliente solicite al usuario actualizar su información. + + + +```json +// notify-customer-info-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_customer_info_updated", + "params": { + "transaction_id": "", + "message": "Customer info updated", + "customer_id": "45f8884d-d6e1-477f-a680-503179263359", + "customer_type": "sep6-deposit" // or sep6-withdrawal + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh notify-customer-info-updated.json +``` + + + +### Listo para Recibir Fondos + +Después de que el usuario haya enviado su información KYC, el anchor puede notificar a la Plataforma que está listo para recibir fondos. El anchor debe usar el RPC `request_offchain_funds` para proporcionar las cantidades finales al usuario. Para ello, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-offchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_offchain_funds", + "params": { + "transaction_id": "", + "message": "Request offchain funds", + "amount_in": { + "amount": 10, + "asset": "iso4217:USD" + }, + "amount_out": { + "amount": 9, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + }, + "amount_expected": { + "amount": 10 + }, + "instructions": { + "organization.bank_number": { + "value": "123456789", + "description": "US Bank routing number" + }, + "organization.bank_account_number": { + "value": "123456789", + "description": "US Bank account number" + } + } + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es la cantidad total de comisiones recogidas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. +- `instructions` es el conjunto de campos estándar SEP-9 que el usuario debe usar para enviar fondos al negocio. En este ejemplo, el usuario debe enviar fondos a la cuenta bancaria con el número de ruta `123456789` y número de cuenta `123456789`. + +La información sobre las cantidades (entrada/salida/comisión) es obligatoria si quieres mover la transacción al estado `pending_user_transfer_start`. + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh request-offchain-funds.json +``` + + + +:::caution + +Para depósitos exchange con cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. + +::: + +### Fondos Recibidos + +Si se recibieron fondos fuera de cadena, querrás proporcionar información actualizada de la transacción. + + + +```json +// offchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_received", + "params": { + "transaction_id": "", + "message": "Offchain funds received", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + }, + "amount_expected": { + "amount": 10 + } + } + } +] +``` + + + +- `funds_received_at` es la fecha y hora de recepción de los fondos. +- `external_transaction_id` es el ID de la transacción en la red externa. + +Los campos de cantidad son opcionales. Si se omiten, se usarán los valores anteriores a esta solicitud. + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh offchain-funds-received.json +``` + + + +### Esperando Fondos del Usuario + +En el mundo real, el proceso de confirmación de transferencia puede llevar tiempo. En tales casos, las transacciones deben establecerse en un nuevo estado que indique que la confirmación de la transferencia ha sido recibida pero los fondos aún no han sido recibidos. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_received_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "7...9" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Enviando Fondos Onchain + +Luego, envía una transacción en la red Stellar para cumplir con el depósito del usuario. Después de que la transacción Stellar haya sido enviada, es necesario enviar la solicitud JSON-RPC `notify_onchain_funds_sent` para notificar al usuario que los fondos fueron enviados exitosamente. + + + +```json +// onchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Onchain funds sent", + "stellar_transaction_id": "7...9" + } + } +] +``` + + + +- `stellar_transaction_id` es el ID de la transacción en la red Stellar de la transferencia. + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh onchain-funds-sent.json +``` + + + +Después de esta solicitud JSON-RPC, la transacción cambiará al estado `completed`. + +### Confianza Pendiente + +Este estado debe establecerse si un pago requiere una trustline de activo que el usuario no ha configurado. Hay dos formas en que la transacción puede moverse al estado `pending_trust`. La primera es cuando el servidor del negocio detecta que la trustline no está configurada. La segunda es cuando el negocio mismo detecta que falta la trustline y quiere notificar al usuario que debe configurarla. Para mover la transacción al estado `pending_trust`, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-trust.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_trust", + "params": { + "transaction_id": "", + "message": "Asset trustine not configured" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh request-trust.json +``` + + + +:::info + +El sistema de procesamiento de pagos verifica periódicamente si la trustline fue configurada. Si lo estuvo, enviará automáticamente un pago y cambiará el estado de la transacción a `pending_stellar`. + +::: + +### Trust Set + +Este estado debe establecerse si el negocio ha detectado que la trustline fue o no configurada por el usuario. + + + +```json +// trust-set.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_trust_set", + "params": { + "transaction_id": "", + "message": "Asset trustine set", + "success": "true" + } + } +] +``` + + + +- Flag `success` que define si la trustline fue o no configurada por el usuario + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh trust-set.json +``` + + + +:::info + +Dependiendo del flag `success`, el estado de la transacción cambiará a `pending_stellar` si la trustline fue configurada o a `pending_anchor` si no lo fue. + +::: + +### Reembolso Enviado + +A veces, es necesario devolver fondos al usuario (reembolso). Puedes reembolsar la suma total (reembolso completo) o hacer varios reembolsos parciales a la `source_account` usando el `refund_memo` y `refund_memo_type` asociados con la transacción, si están presentes. Además, si el usuario envió más dinero del esperado, puedes reembolsar una parte al usuario y enviar el resto como fondos onchain. + + + +```json +// refund-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_refund_sent", + "params": { + "transaction_id": "", + "message": "Refund sent", + "refund": { + "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", + "amount": { + "amount": 10, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "iso4217:USD" + } + } + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh refund-sent.json +``` + + + +:::info + +Si la suma de los reembolsos es menor que `amount_in`, el estado de la transacción será `pending_anchor`. Solo si la suma de los reembolsos es igual a `amount_in`, el estado de la transacción será `refunded`. + +::: + +### Reembolso Pendiente + +Este es similar a [Reembolso Enviado](#refund-sent), pero maneja el caso cuando un reembolso ha sido enviado a la red externa pero aún no confirmado. El estado de la transacción se establece en `pending_external`. Este es el estado que se configurará cuando se espere que Bitcoin u otra red externa de cripto complete una transacción, o cuando se espere una transferencia bancaria. + +### Error de Transacción + +Si encuentras un error irrecuperable al procesar la transacción, es necesario configurar el estado de la transacción a `error`. Puedes usar el campo mensaje para describir los detalles del error. + + + +```json +// transaction-error.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_error", + "params": { + "transaction_id": "", + "message": "Error occurred" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh transaction-error.json +``` + + + +:::tip + +Si un usuario hizo una transferencia, debes hacer una recuperación de la transacción, y luego puedes reintentar procesarla o iniciar un reembolso. + +::: + +### Transacción Caducada + +Tu negocio puede querer manejar transacciones abandonadas expirándolas después de que permanezcan inactivas por un periodo determinado. Para lograrlo, verifica el estado de la transacción usando el punto final `GET /transactions` y ordena los resultados por la marca temporal `user_action_required_by`. Si la marca temporal ha pasado, ejecuta manualmente la lógica correspondiente, como caducar la transacción o iniciar un reembolso automático, basado en el estado actual de la transacción. + + + +```json +// transaction-expired.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_expired", + "params": { + "transaction_id": "", + "message": "Transaction expired" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh transaction-expired.json +``` + + + +:::tip + +Este método JSON-RPC no puede usarse después de que el usuario haya hecho una transferencia. + +::: + +### Recuperación de Transacción + +El estado de la transacción puede cambiarse de `error/expired` a `pending_anchor`. Después de la recuperación, puedes reembolsar los activos recibidos o continuar con el procesamiento de la transacción. Para recuperar una transacción, realiza la siguiente solicitud JSON-RPC. + + + +```json +// transaction-recovery.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_transaction_recovery", + "params": { + "transaction_id": "", + "message": "Transaction recovered" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh transaction-recovery.json +``` + + + +## Actualizando Transacción de Retirada (Exchange) vía JSON-RPC + +El diagrama del flujo de retirada SEP-6 define la secuencia/reglas de la transición de estados de la transacción. No puedes definir el estado que quieres establecer para una transacción específica en tus solicitudes. Cada método JSON-RPC define las estructuras de datos que espera en la solicitud. Si la solicitud no contiene atributos requeridos, Anchor Platform devolverá un error y no cambiará el estado de la transacción. + +El flujo de retirada exchange es igual que el flujo de retirada, excepto que no será necesario recalcular las cantidades al solicitar fondos onchain, si el usuario ha proporcionado una cotización firme del anchor. + +[![sep6 withdrawal flow](/assets/ap/sep6-withdrawal-flow-diagram.png)](/assets/ap/sep6-withdrawal-flow-diagram.png) + +:::tip + +Los estados en verde son obligatorios y definen el camino más corto. + +Los estados en amarillo son opcionales y pueden omitirse. + +Los estados en rojo indican que la transacción está en un estado de error o ha caducado. + +::: + +Una vez que el flujo de retirada ha terminado, implementar la retirada es sencillo. Algunas partes del flujo son similares y pueden reutilizarse. + +El punto de partida tanto para retirada como para depósito es el mismo. + +### Listo para Recibir Fondos + +De manera similar al depósito, el paso después de que se ha recopilado KYC es notificar al usuario que el anchor está listo para recibir fondos. Sin embargo, como tu servicio estará recibiendo transacciones sobre la red Stellar, la solicitud RPC será diferente. El anchor debe usar el RPC `request_onchain_funds` para proporcionar las cantidades finales al usuario. Para ello, realiza la siguiente solicitud JSON-RPC. + + + +```json +// request-onchain-funds.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "request_onchain_funds", + "params": { + "transaction_id": "", + "message": "Request onchain funds", + "amount_in": { + "amount": 10, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_out": { + "amount": 9, + "asset": "iso4217:USD" + }, + "fee_details": { + "total": 1, + "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" + }, + "amount_expected": { + "amount": 10 + }, + "destination_account": "GD...G", + "memo": "12345", + "memo_type": "id" + } + } +] +``` + + + +- `amount_in` es la cantidad que el usuario debe enviar al negocio. +- `amount_out` es la cantidad que el usuario recibirá. +- `fee_details` es la cantidad total de comisiones recogidas por el negocio. +- `asset` es parte del campo `amount_x` y está en formato SEP-38. En este ejemplo, está configurado en USD, asumiendo que el usuario realizó una transferencia bancaria al sistema usando USD. +- `memo` es el memo que el usuario debe usar al enviar sus fondos onchain al anchor. +- `memo_type` es el tipo de memo que el usuario debe usar al enviar sus fondos onchain al anchor. +- `destination_account` es la cuenta a la que el usuario debe enviar los fondos. + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh request-onchain-funds.json +``` + + + +:::caution + +Para retiradas exchange con cotización firme (la solicitud está asociada con un `quote_id`), no deben proporcionarse cantidades. + +::: + +:::tip + +Configurar `memo`, `memo_type` y `destination_account` es opcional. + +Si la integración con un custodio tercero está habilitada, Anchor Platform puede generar `memo`, `memo_type` y `destination_address` si se elige un `deposit_info_generator_type` correspondiente. También puedes proporcionar `memo` y `memo_type` a la solicitud como se muestra arriba. Nota que el memo debe ser único, esto ayuda a asociar transacciones Stellar con transacciones SEP. + +Si tu negocio administra los activos, Anchor Platform puede generar memos por ti. Cuando el estado cambia a `pending_user_transfer_start`, Anchor Platform asigna automáticamente `memo` y `memo_type` (solo si no están incluidos en la solicitud). + +::: + +:::note + +Debe configurarse la cuenta Stellar que se usará para recibir fondos. + +::: + +### Fondos Recibidos + +Si se recibieron fondos onchain, necesitas proporcionar las cantidades y cambiar el estado de la transacción a `pending_anchor`. + + + +```json +// onchain-funds-received.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_onchain_funds_received", + "params": { + "transaction_id": "", + "message": "Onchain funds received", + "stellar_transaction_id": "7...9", + "amount_in": { + "amount": 10 + }, + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh onchain-funds-received.json +``` + + + +:::tip + +Este método será llamado por el observador de pagos Stellar cuando detecte que se han recibido fondos onchain. + +::: + +### Cantidad Actualizada + +Si se recibieron fondos onchain, pero por alguna razón `amount_in` difiere de lo especificado en el flujo interactivo (`amount_expected`), puedes actualizar `amount_out` y `fee_details` para que correspondan al `amount_in` real. El estado de la transacción en este caso no cambiará y seguirá siendo `pending_anchor`. + + + +```json +// amounts-updated.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_amounts_updated", + "params": { + "transaction_id": "", + "message": "Amounts updated", + "amount_out": { + "amount": 9 + }, + "fee_details": { + "total": 1 + } + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh amounts-updated.json +``` + + + +:::note + +Solo `amount_out` y `fee_details` pueden actualizarse usando esta solicitud JSON-RPC, y no necesitas especificar los activos de las cantidades. + +::: + +### Fondos Fuera de Cadena Disponibles + +Puedes mover el estado de la transacción a `pending_user_transfer_complete` si se enviaron fondos fuera de cadena y está listo para que el usuario/beneficiario los recoja. + + + +```json +// offchain-funds-available.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_available", + "params": { + "transaction_id": "", + "message": "Offchain funds available", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh offchain-funds-available.json +``` + + + +### Fondos Fuera de Cadena Pendientes + +Otra opción es mover el estado de la transacción a `pending_external`. Este estado significa que el pago se ha enviado a una red externa, pero aún no está confirmado. + + + +```json +// offchain-funds-pending.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_pending", + "params": { + "transaction_id": "", + "message": "Offchain funds pending", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh offchain-funds-pending.json +``` + + + +### Fondos Fuera de Cadena Enviados + +Para completar la transacción y cambiar su estado a `completed`, necesitas hacer la solicitud JSON-RPC `notify_offchain_funds_sent`. + + + +```json +// offchain-funds-sent.json +[ + { + "id": 1, + "jsonrpc": "2.0", + "method": "notify_offchain_funds_sent", + "params": { + "transaction_id": "", + "message": "Offchain funds sent", + "funds_sent_at": "2023-07-04T12:34:56Z", + "external_transaction_id": "a...c" + } + } +] +``` + + + +Para procesar esto, necesitas ejecutar: + + + +```bash +./call-json-rpc.sh offchain-funds-sent.json +``` + + + +### Reembolso Enviado + +La lógica de reembolso funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Reembolso Enviado](#refund-sent) del flujo de depósito. + +### Error de Transacción + +Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Error de Transacción](#transaction-error) del flujo de depósito. + +### Transacción Caducada + +Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Transacción Caducada](#expired-transaction) del flujo de depósito. + +### Recuperación de Transacción + +Funciona de la misma manera que en el flujo de depósito. Para más detalles, consulta [Recuperación de Transacción](#transaction-recovery) del flujo de depósito. + +## Seguimiento de Transacciones Stellar + + + +[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md +[manejo-de-eventos]: ../../admin-guide/events/README.mdx +[callbacks-de-cliente]: ../../api-reference/callbacks/README.mdx +[callbacks-de-tarifa]: ../../api-reference/callbacks/README.mdx +[obtencion-de-transacciones]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/README.mdx new file mode 100644 index 0000000000..0058f56650 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/README.mdx @@ -0,0 +1,19 @@ +--- +title: Introducción a Stellar Disbursement Platform +sidebar_label: Introducción +pagination_label: Introducción a Stellar Disbursement Platform +sidebar_position: 10 +pagination_next: platforms/stellar-disbursement-platform/admin-guide/overview +--- + +# Stellar Disbursement Platform + +La Stellar Disbursement Platform (SDP) es una herramienta desarrollada para organizaciones que permite realizar pagos masivos a un grupo de destinatarios a través de la red Stellar. + +Este es un proyecto open-source desarrollado sobre la red Stellar, y el código puede encontrarse en los siguientes repositorios: + +- [stellar/stellar-disbursement-platform-backend](https://github.com/stellar/stellar-disbursement-platform-backend): Este repositorio contiene el código del backend e infraestructura para la Stellar Disbursement Platform. +- [stellar/stellar-disbursement-platform-frontend](https://github.com/stellar/stellar-disbursement-platform-frontend): Este repositorio contiene el código del frontend web para la Stellar Disbursement Platform. +- [stellar/helm-charts](https://github.com/stellar/helm-charts/tree/main/charts/stellar-disbursement-platform): Este repositorio contiene el Helm chart para desplegar la Stellar Disbursement Platform usando kubernetes. + +En esta sección, encontrarás una [Guía para Administradores](./stellar-disbursement-platform/admin-guide/) que te enseñará cómo ejecutar la Stellar Disbursement Platform, así como una [Referencia de API](./api-reference/admin.tag.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/advanced-configration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/advanced-configration.mdx new file mode 100644 index 0000000000..4170ea4847 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/advanced-configration.mdx @@ -0,0 +1,236 @@ +--- +title: Configuración avanzada +description: Entiende cómo configurar el Stellar Disbursement Platform para diversos escenarios. Esto incluye multi-arrendamiento, testnet versus mainnet, etc. +keywords: + - SDP + - configuration +sidebar_position: 45 +--- + +En esta guía, aprenderás sobre las opciones avanzadas de configuración para el Stellar Disbursement Platform (SDP). Estas configuraciones te permiten adaptar el SDP para cumplir con requisitos específicos, como multi-arrendamiento, selección de red y ajuste de rendimiento. + +## Configuración de Testnet a Mainnet + +Al aprovisionar una nueva instancia de SDP, esta se configura para operar en modo Mainnet o Testnet según las variables de entorno establecidas durante la configuración. La mayoría de los usuarios comenzarán con Testnet para desarrollo y pruebas antes de pasar a Mainnet para uso en producción. + +:::caution + +Una instancia de SDP está diseñada para operar en Testnet o Mainnet. No se admite cambiar entre estas redes en una instancia existente y podría causar comportamientos inesperados. Si necesitas cambiar la red, se recomienda crear una nueva instancia de SDP con la configuración deseada. + +::: + +Una vez valides tu configuración en Testnet, puedes desplegar una nueva instancia configurada para Mainnet estableciendo las variables de entorno apropiadas durante el proceso de aprovisionamiento. + +### Variables de entorno + +Al cambiar de Testnet a Mainnet, debes actualizar las siguientes variables de entorno para cada servicio para apuntar a los recursos de la red pública. + +#### Servicio principal de SDP + +| Variable | Valor para Testnet | Valor para Mainnet | Descripción | +| :------------------- | :------------------------------------ | :----------------------------------------------- | :------------------------------------------------------------------------- | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | La frase de contraseña para la red Stellar. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon. | +| `DISABLE_MFA` | x | `false` | Desactiva la autenticación multifactor. **Debe ser `false` para Mainnet.** | + +#### Servicio de envío de transacciones (TSS) + +| Variable | Valor para Testnet | Valor para Mainnet | Descripción | +| :------------------- | :------------------------------------ | :----------------------------------------------- | :------------------------------------------ | +| `NETWORK_PASSPHRASE` | `Test SDF Network ; September 2015` | `Public Global Stellar Network ; September 2015` | La frase de contraseña para la red Stellar. | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon. | + +#### Panel de control + +| Variable | Valor para Testnet | Valor para Mainnet | Descripción | +| :------------------- | :---------------------------------------- | :--------------------------------------- | :------------------------------------------------- | +| `HORIZON_URL` | `https://horizon-testnet.stellar.org` | `https://horizon.stellar.org` | La URL del servidor Horizon usado por el frontend. | +| `STELLAR_EXPERT_URL` | `https://stellar.expert/explorer/testnet` | `https://stellar.expert/explorer/public` | La URL para el explorador Stellar Expert. | + +### Consideraciones críticas + +Antes de desplegar en Mainnet, debes atender los siguientes requisitos críticos para asegurar que tu instancia funcione correctamente. + +**Debes** generar un nuevo par de claves seguro para tu Cuenta de Distribución en Mainnet. No reutilices las claves de Testnet. + +- **Generar claves**: Crea un nuevo par de claves y configura `DISTRIBUTION_PUBLIC_KEY` y `DISTRIBUTION_SEED`. +- **Generar frase de cifrado**: Debes generar nuevas frases de cifrado para las cuentas de distribución de arrendatarios y cuentas de canal configurando `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` y `CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE`. +- **Financiar la cuenta**: La Cuenta de Distribución requiere un saldo inicial de XLM para funcionar. Es responsable de: + 1. **Crear cuentas de canal**: El sistema creará automáticamente `NUM_CHANNEL_ACCOUNTS` (por defecto: 2). + 2. **Bootstrapear arrendatarios**: Cuando se aprovisiona un nuevo arrendatario, el sistema transfiere una cantidad de arranque de XLM desde la Cuenta de Distribución a la Cuenta de Distribución del arrendatario. Esto se controla mediante `TENANT_XLM_BOOTSTRAP_AMOUNT` (por defecto: 5 XLM). + +### Métodos de configuración + +Puedes configurar el SDP para Mainnet usando Helm Charts (para despliegues en Kubernetes) o Docker Compose (para despliegues locales o simples). + +#### Helm Charts + +Si despliegas con Helm, el chart proporciona un ajuste global que configura automáticamente los parámetros de red necesarios. + +En tu archivo `values.yaml`, configura `global.isPubnet` como `true`. Esto establecerá automáticamente el `NETWORK_PASSPHRASE`, `HORIZON_URL` y `STELLAR_EXPERT_URL` correctos para todos los servicios. + +```yaml +global: + # Set to true for Mainnet + isPubnet: true +``` + +#### Docker Compose + +Actualiza tu archivo `.env` con los siguientes valores: + +```bash +# Network Configuration +NETWORK_TYPE="pubnet" +NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015" +HORIZON_URL="https://horizon.stellar.org" + +# Security +DISABLE_MFA=false + +# Distribution Account (Mainnet Keys) +DISTRIBUTION_PUBLIC_KEY="G..." +DISTRIBUTION_SEED="S..." + +# Encryption Passphrases +DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE="S..." +CHANNEL_ACCOUNTS_ENCRYPTION_PASSPHRASE="S..." +``` + +## Configuración de un solo arrendatario a multi-arrendatarios + +El Stellar Disbursement Platform (SDP) soporta multi-arrendamiento, permitiendo que una sola instancia sirva a varias organizaciones (arrendatarios). Cada arrendatario tiene sus propios datos aislados, usuarios y cuenta de distribución (fuente de fondos). + +### Configuración + +Para habilitar multi-arrendamiento, debes actualizar tu configuración para desactivar el modo de arrendatario único y asegurar el acceso a la API de administración. + +1. **Desactivar modo de arrendatario único**: Establece la variable de entorno `SINGLE_TENANT_MODE` a `false`. +2. **Exponer puerto de administración**: Asegura que el puerto de la API de administración (por defecto `8003`) esté expuesto en el servicio backend del SDP. + +### Enrutamiento e ingreso + +El SDP identifica al arrendatario para cada solicitud usando uno de los siguientes métodos, en orden de prioridad: + +1. **Encabezado HTTP**: El encabezado `SDP-Tenant-Name`. +2. **Subdominio**: El prefijo del nombre de host (por ejemplo, `tenant1` en `tenant1.sdp.stellar.org`). + +#### Encabezado HTTP + +Puedes especificar explícitamente el arrendatario configurando el encabezado `SDP-Tenant-Name` en tus solicitudes HTTP. + +```bash +curl -H "SDP-Tenant-Name: tenant1" https://sdp.stellar.org/ ... +``` + +#### Enrutamiento por subdominio + +En un entorno de producción, es común usar enrutamiento por subdominio. Por ejemplo, `tenant1.sdp.stellar.org` y `tenant2.sdp.stellar.org` apuntarán a la misma instancia de SDP. + +#### Helm Charts + +Al desplegar con Helm, configuras el dominio wildcard usando el valor `sdp.route.mtnDomain`. Esto crea una regla de Ingress que coincide con todos los subdominios. + +En tu archivo `values.yaml`: + +```yaml +sdp: + route: + # The wildcard domain for multi-tenancy + mtnDomain: "*.sdp.stellar.org" +``` + +:::note + +Asegúrate de que tu proveedor DNS tenga un registro A wildcard (por ejemplo, `*.sdp.stellar.org`) apuntando a la IP del Load Balancer de tu Ingress Controller. + +::: + +#### Docker Compose (desarrollo local) + +Para desarrollo local con Docker Compose debes mapear subdominios específicos de arrendatarios a `127.0.0.1` en el archivo `/etc/hosts` de tu máquina (para usuarios de Windows, el archivo está en `C:\Windows\System32\drivers\etc\hosts`). + +**Ejemplo de `/etc/hosts`:** + +```text +127.0.0.1 localhost +127.0.0.1 sdp.local # Default/Admin domain +127.0.0.1 tenant1.sdp.local # First tenant +127.0.0.1 tenant2.sdp.local # Second tenant +``` + +### Aprovisionamiento de arrendatarios + +En modo multi-arrendatario, aprovisionas nuevos arrendatarios usando la API de administración (puerto `8003` por defecto). Cada arrendatario tendrá sus propios datos aislados. + +**Endpoint**: [POST /tenants](../api-reference/create-tenant.api.mdx) **Ejemplo de solicitud:** + +```bash +curl --location 'http://localhost:8003/tenants' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Basic ' \ +--data '{ + "name": "tenant1", + "organization_name": "Tenant One Organization", + "base_url": "https://tenant1.sdp-api.stellar.org", + "sdp_ui_base_url": "https://tenant1.sdp-dashboard.stellar.org", + "owner_email": "owner@tenant1.com", + "owner_first_name": "Jane", + "owner_last_name": "Doe", + "distribution_account_type": "DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT" +}' +``` + +#### Cuentas de distribución multi-arrendatario + +Este es el campo más importante, ya que determina la fuente de fondos (cuenta de distribución) para el arrendatario, así como cómo se almacena el secreto de esta cuenta. + +Esto se determina por el campo `distribution_account_type` en la llamada API mencionada arriba. Los valores posibles se describen a continuación: + +- `DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT` + +- **Plataforma**: Stellar + +- **Ubicación de almacenamiento del secreto**: Base de datos, cifrada con `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` + +- **Activos soportados**: Cualquier activo Stellar + +- **Aislamiento de clave/secreto**: Segregado por arrendatario + +- **Adecuado para**: Multi-arrendatario y arrendatario único + +- **¿Cómo se configura?**: La cuenta de distribución se genera aleatoriamente y se financia durante el proceso de aprovisionamiento, y el secreto se cifra y almacena de forma segura en la base de datos. La cuenta se financia desde la cuenta HOST de distribución por una cantidad definida en `TENANT_XLM_BOOTSTRAP_AMOUNT`. + +- `DISTRIBUTION_ACCOUNT.CIRCLE.DB_VAULT` + +- **Plataforma**: [Circle](https://www.circle.com) + +- **Ubicación de almacenamiento del secreto**: Base de datos, cifrada con `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` + +- **Activos soportados**: [USDC](https://www.circle.com/en/usdc)/[EURC](https://www.circle.com/en/eurc) + +- **Aislamiento de clave/secreto**: Segregado por arrendatario + +- **Adecuado para**: Multi-arrendatario y arrendatario único + +- **¿Cómo se configura?**: La clave API de Circle la proporciona el propio arrendatario una vez que tiene acceso al panel de control. El secreto se cifra y almacena de forma segura en la base de datos. + +- 🔴 `DISTRIBUTION_ACCOUNT.STELLAR.ENV` + +- **Plataforma**: Stellar + +- **Ubicación de almacenamiento del secreto**: Variable de entorno `DISTRIBUTION_SEED` + +- **Activos soportados**: Cualquier activo Stellar + +- **Aislamiento de clave/secreto**: 🚨 Mismo cuenta de distribución que la HOST + +- **Adecuado para**: Solo arrendatario único + +- **¿Cómo se configura?**: El arrendatario usará la cuenta HOST **tal cual**. El host es responsable de crear la cuenta y configurarla con el secreto `DISTRIBUTION_SEED`. + +:::warning + +Una vez creado un arrendatario, no se puede cambiar el tipo de cuenta de distribución. Si deseas usar un tipo diferente de cuenta de distribución, tendrás que crear un nuevo arrendatario. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx new file mode 100644 index 0000000000..1b5faf49a9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/cli-manual.mdx @@ -0,0 +1,655 @@ +--- +title: Manual CLI +description: Guía para usar el CLI de Stellar Disbursement Platform +keywords: + - SDP + - CLI +sidebar_position: 50 +--- + +## Comando raíz + +El comando `stellar-disbursement-platform` es el punto de entrada principal para la aplicación. Proporciona varios subcomandos para administrar el servicio, la base de datos y otras utilidades. + +### Uso + +```bash +stellar-disbursement-platform [command] [flags] +``` + +:::tip + +Para todos los comandos siguientes, puedes usar la flag `--help` para obtener más información sobre el comando y sus opciones. Por ejemplo: + +```bash +stellar-disbursement-platform serve --help +``` + +::: + +## Flags globales + +Las siguientes flags están disponibles para todos los comandos: + +| Flag | Descripción | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| `--base-url` | La URL base del servidor backend de SDP. Por defecto es `http://localhost:8000`. | +| `--database-url` | URL de la base de datos Postgres. Por defecto es `postgres://localhost:5432/sdp?sslmode=disable`. | +| `--environment` | El entorno en el que se ejecuta la aplicación. Ejemplos: `development`, `staging`, `production`. Por defecto es `development`. | +| `--log-level` | El nivel de logs usado en este proyecto. Opciones: `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL` o `PANIC`. Por defecto es `TRACE`. | +| `--network-passphrase` | La passphrase de la red Stellar. Por defecto es `Test SDF Network ; September 2015`. | +| `--sdp-ui-base-url` | La URL base del servidor UI de SDP. Por defecto es `http://localhost:3000`. | +| `--sentry-dsn` | El DSN (clave cliente) del proyecto Sentry. Si no se proporciona, no se usará Sentry. | + +## Comando Serve + +El comando `serve` inicia el servidor backend de Stellar Disbursement Platform. Este servidor maneja las solicitudes API, procesa las distribuciones y administra las operaciones de los tenants. + +### Uso + +```bash +stellar-disbursement-platform serve [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--admin-account` | ID de la cuenta administrador. Para usar, agrégalo al encabezado de la solicitud como 'Authorization', formateado como 'ADMIN_ACCOUNT:ADMIN_API_KEY' codificado en Base64. | +| `--admin-api-key` | Clave API para la cuenta administrador. Para usar, agrégalo al encabezado de la solicitud como 'Authorization', formateado como 'ADMIN_ACCOUNT:ADMIN_API_KEY' codificado en Base64. | +| `--admin-port` | Puerto donde el servidor del tenant administrador estará escuchando. Por defecto es `8003`. | +| `--aws-access-key-id` | El ID de la clave de acceso de AWS. | +| `--aws-region` | La región de AWS. | +| `--aws-secret-access-key` | La clave secreta de acceso de AWS. | +| `--aws-ses-sender-id` | La dirección de email que AWS usará para enviar correos. Utiliza AWS SES. | +| `--aws-sns-sender-id` | El ID del remitente de la cuenta AWS que envía el mensaje SMS. Utiliza AWS SNS. | +| `--bridge-api-key` | Clave API de Bridge. Esto solo se debe configurar si la integración con Bridge está habilitada. | +| `--bridge-base-url` | URL base de Bridge. Esto solo se debe configurar si la integración con Bridge está habilitada. Por defecto es `https://api.bridge.xyz`. | +| `--captcha-type` | El tipo de CAPTCHA a utilizar. Opciones: `GOOGLE_RECAPTCHA_V2`, `GOOGLE_RECAPTCHA_V3`. Por defecto es `GOOGLE_RECAPTCHA_V2`. | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, tomará como valor el de la opción `distribution-seed`. | +| `--circle-api-type` | Tipo de API de Circle. Opciones: `TRANSFERS`, `PAYOUTS`. Por defecto es `TRANSFERS`. | +| `--cors-allowed-origins` | URLs de Cors permitidas para acceder a los endpoints, separadas por ",". | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Tiempo máximo en segundos que una conexión puede estar inactiva antes de cerrarse. Por defecto es `10`. | +| `--db-conn-max-lifetime-seconds` | Tiempo máximo en segundos de vida útil para una sola conexión. Por defecto es `300`. | +| `--db-max-idle-conns` | Número máximo de conexiones inactivas de base de datos retenidas por pool. Por defecto es `2`. | +| `--db-max-open-conns` | Número máximo de conexiones abiertas de base de datos por pool. Por defecto es `20`. | +| `--disable-mfa` | Desactiva la autenticación Multi-Factor (MFA) por email. | +| `--disable-recaptcha` | Desactiva ReCAPTCHA para iniciar sesión y recuperar contraseña. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--ec256-private-key` | La clave privada EC256 usada para firmar el token de autenticación. Esta clave EC debe ser al menos tan fuerte como prime256v1 (P-256). | +| `--email-sender-type` | Tipo de remitente de email. Opciones: `DRY_RUN`, `TWILIO_EMAIL`, `AWS_EMAIL`. Por defecto es `DRY_RUN`. | +| `--enable-bridge-integration` | Habilita la integración Bridge para Liquidity Sourcing. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--instance-name` | Nombre de la instancia SDP. Ejemplo: `SDP Testnet`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | +| `--max-invitation-resend-attempts` | El número máximo de intentos para reenviar una invitación a las Carteras Receptoras. Por defecto es `3`. | +| `--metrics-port` | Puerto donde el servidor de métricas estará escuchando. Por defecto es `8002`. | +| `--metrics-type` | Tipo de monitor de métricas. Opciones: `PROMETHEUS`. Por defecto es `PROMETHEUS`. | +| `--port` | Puerto donde el servidor estará escuchando. Por defecto es `8000`. | +| `--recaptcha-site-key` | La clave del sitio 'reCAPTCHA v2 - No soy un robot' de Google. | +| `--recaptcha-site-secret-key` | La clave SECRETA del sitio 'reCAPTCHA v2 - No soy un robot' de Google. | +| `--recaptcha-v3-min-score` | El umbral mínimo de puntuación para reCAPTCHA v3 (de 0.0 a 1.0, donde 1.0 es probablemente una buena interacción). Solo se usa cuando captcha-type es GOOGLE_RECAPTCHA_V3. Por defecto es `0.5`. | +| `--reset-token-expiration-hours` | El tiempo de expiración en horas del Token de Restablecimiento. Por defecto es `24`. | +| `--scheduler-payment-job-seconds` | El intervalo en segundos para los trabajos de pago que sincronizan transacciones entre SDP y TSS. Debe ser mayor a 5 segundos. Por defecto es `30`. | +| `--scheduler-receiver-invitation-job-seconds` | El intervalo en segundos para el trabajo de invitación a receptores que envía invitaciones a nuevos receptores. Debe ser mayor a 5 segundos. Por defecto es `30`. | +| `--sep10-client-attribution-required` | Si es true, la autenticación SEP-10 requiere que se proporcione y valide client_domain. Si es false, client_domain es opcional. Por defecto es `true`. | +| `--sep10-signing-private-key` | La clave privada de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. | +| `--sep10-signing-public-key` | La clave pública de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. | +| `--sep24-jwt-secret` | El secreto JWT usado para firmar el token JWT SEP-24. | +| `--single-tenant-mode` | Esta opción habilita la función Modo Tenant Único. Cuando la multi-tenencia no es necesaria, esta opción evita la resolución de tenant siempre resolviendo al tenant por defecto configurado en la base de datos. | +| `--sms-sender-type` | Tipo de remitente SMS. Opciones: `DRY_RUN`, `TWILIO_SMS`, `TWILIO_WHATSAPP`, `AWS_SMS`. Por defecto es `DRY_RUN`. | +| `--tenant-xlm-bootstrap-amount` | La cantidad del activo nativo que será enviada a la cuenta de distribución del tenant desde la cuenta de distribución del host cuando se cree, si aplica. Por defecto es `5`. | +| `--twilio-account-sid` | El SID de la cuenta Twilio. | +| `--twilio-auth-token` | El token de autenticación de la cuenta Twilio. | +| `--twilio-sendgrid-api-key` | La clave API de la cuenta Twilio SendGrid. | +| `--twilio-sendgrid-sender-address` | La dirección de email que Twilio SendGrid usará para enviar correos. | +| `--twilio-service-sid` | El ID de servicio usado dentro de Twilio para enviar mensajes. | +| `--twilio-whatsapp-from-number` | El número de WhatsApp Business usado para enviar mensajes (con prefijo whatsapp:). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | El SID de contenido de Twilio para la plantilla de invitación de receptor WhatsApp (comienza con HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | El SID de contenido de Twilio para la plantilla OTP de receptor WhatsApp (comienza con HX). | + +## Comando TSS + +El comando `tss` ejecuta el Servicio de Envío de Transacciones, que es responsable de enviar transacciones a la red Stellar. + +### Uso + +```bash +stellar-disbursement-platform tss [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, tomará como valor el de la opción `distribution-seed`. | +| `--crash-tracker-type` | Tipo de rastreador de fallos. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--db-conn-max-idle-time-seconds` | Tiempo máximo en segundos que una conexión puede estar inactiva antes de cerrarse. Por defecto es `10`. | +| `--db-conn-max-lifetime-seconds` | Tiempo máximo en segundos de vida útil para una sola conexión. Por defecto es `300`. | +| `--db-max-idle-conns` | Número máximo de conexiones inactivas de base de datos retenidas por pool. Por defecto es `2`. | +| `--db-max-open-conns` | Número máximo de conexiones abiertas de base de datos por pool. Por defecto es `20`. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | La URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | +| `--num-channel-accounts` | Número de cuentas de canal a utilizar para enviar transacciones. Por defecto es `2`. | +| `--queue-polling-interval` | Intervalo de sondeo (en segundos) para consultar la base de datos en busca de transacciones pendientes por procesar. Por defecto es `6`. | +| `--tss-metrics-port` | Puerto donde el servidor de métricas estará escuchando. Por defecto es `9002`. | +| `--tss-metrics-type` | Tipo de monitor de métricas. Opciones: `TSS_PROMETHEUS`. Por defecto es `TSS_PROMETHEUS`. | + +## Comando DB + +El comando `db` proporciona utilidades para la gestión y migración de bases de datos. Realiza dos funciones principales: + +1. Ejecutar migraciones de bases de datos para varios esquemas (admin, auth, sdp, tss). +2. Configurar activos y carteras basadas en la passphrase de la red. + +### Uso + +```bash +stellar-disbursement-platform db [command] [flags] +``` + +### Subcomandos + +| Comando | Descripción | +| :------------------ | :--------------------------------------------------------------- | +| `admin` | Migraciones de admin para el módulo multi-tenant. | +| `auth` | Migraciones del esquema de autenticación. | +| `sdp` | Migraciones del esquema SDP. | +| `setup-for-network` | Configura activos y carteras basadas en la passphrase de la red. | +| `tss` | Migraciones del esquema TSS. | + +--- + +### DB Admin + +El comando `db admin` gestiona las migraciones para el esquema admin, que maneja la configuración de multi-tenancy. + +#### Uso + +```bash +stellar-disbursement-platform db admin [command] [flags] +``` + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB Admin Migrate + +El comando `migrate` te permite ejecutar migraciones hacia arriba o hacia abajo. + +**Uso** + +```bash +stellar-disbursement-platform db admin migrate [command] [flags] +``` + +**Subcomandos** + +| Comando | Descripción | +| :------ | :-------------------------------------------------------- | +| `up` | Migra la base de datos hacia arriba [count] migraciones | +| `down` | Migra la base de datos hacia abajo [count] migraciones | + +**Ejemplos** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db admin migrate up + +# Apply the next 2 migrations +stellar-disbursement-platform db admin migrate up 2 + +# Revert the last migration +stellar-disbursement-platform db admin migrate down 1 +``` + +--- + +### DB Auth + +El comando `db auth` gestiona las migraciones para el esquema de autenticación. + +#### Uso + +```bash +stellar-disbursement-platform db auth [command] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` se ignorará si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB Auth Migrate + +Similar a `admin migrate`, este comando acepta subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db auth migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db auth migrate up --all +``` + +--- + +### DB SDP + +El comando `db sdp` gestiona las migraciones para el esquema SDP (Stellar Disbursement Platform), que contiene las tablas de lógica de negocio principal. + +#### Uso + +```bash +stellar-disbursement-platform db sdp [command] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` se ignorará si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB SDP Migrate + +Similar a `admin migrate`, este comando acepta subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply migrations for a specific tenant +stellar-disbursement-platform db sdp migrate up --tenant-id + +# Apply migrations for all tenants +stellar-disbursement-platform db sdp migrate up --all +``` + +--- + +### DB TSS + +El comando `db tss` gestiona las migraciones para el esquema TSS (Transaction Submission Service). + +#### Uso + +```bash +stellar-disbursement-platform db tss [command] [flags] +``` + +#### Subcomandos + +| Comando | Descripción | +| :-------- | :-------------------------------------- | +| `migrate` | Ayudantes para migraciones de esquemas. | + +#### DB TSS Migrate + +Similar a `admin migrate`, este comando acepta subcomandos `up` y `down`. + +**Ejemplos** + +```bash +# Apply all pending migrations +stellar-disbursement-platform db tss migrate up +``` + +--- + +### DB Setup For Network + +El comando `db setup-for-network` configura los activos y carteras registrados en la base de datos basándose en la passphrase de la red. Inserta o actualiza las entradas de estas tablas según la passphrase de red configurada. + +#### Uso + +```bash +stellar-disbursement-platform db setup-for-network [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `--all` | Aplica el comando a todos los tenants. Debe establecerse `--tenant-id` o `--all`, pero la opción `--all` se ignorará si `--tenant-id` está configurado. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | + +#### Ejemplo + +```bash +# Setup for a specific tenant +stellar-disbursement-platform db setup-for-network --tenant-id + +# Setup for all tenants +stellar-disbursement-platform db setup-for-network --all +``` + +## Comando Auth + +El comando `auth` proporciona ayudantes para la gestión de autenticación, específicamente para agregar usuarios al sistema. + +### Uso + +```bash +stellar-disbursement-platform auth [command] [flags] +``` + +### Subcomandos + +| Comando | Descripción | +| :--------- | :-------------------------- | +| `add-user` | Agregar usuario al sistema. | + +--- + +### Auth Add User + +El comando `auth add-user` añade un nuevo usuario al sistema. El email debe ser único y la contraseña debe tener al menos 12 caracteres. + +#### Uso + +```bash +stellar-disbursement-platform auth add-user [flags] +``` + +#### Flags + +| Flag | Descripción | +| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--owner` | Establecer al usuario como propietario (superusuario). Por defecto es "false". | +| `--password` | Establece la contraseña del usuario. Debe tener al menos 12 caracteres de longitud. Si se omite, el comando generará una contraseña aleatoria. | +| `--roles` | Establece los roles del usuario. Deben estar separados por comas. Ejemplo: `role1, role2`. Roles disponibles: `owner`, `financial_controller`, `developer`, `business`, `initiator`, `approver`. | +| `--tenant-id` | El ID del tenant al que se agregará el usuario. | + +#### Ejemplo + +Para agregar un nuevo usuario con roles específicos y una contraseña: + +```bash +stellar-disbursement-platform auth add-user mary.jane@stellar.org Mary Jane \ +--roles approver,initiator --password \ +--tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Comando Cuentas de Canal + +El comando `channel-accounts` gestiona las cuentas de canal utilizadas para la presentación de transacciones. + +### Uso + +```bash +stellar-disbursement-platform channel-accounts [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :-------------------------- | :------------------------------------------------------------------------------------------------- | +| `--crash-tracker-type` | Tipo de rastreador de fallas. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--tss-metrics-port` | Puerto donde el servidor de métricas estará escuchando. Por defecto es `9002`. | +| `--tss-metrics-type` | Tipo de monitor de métricas. Opciones: `TSS_PROMETHEUS`. Por defecto es `TSS_PROMETHEUS`. | + +### Subcomandos + +| Comando | Descripción | +| :------- | :-------------------------------------------------------------- | +| `create` | Crear cuentas de canal. | +| `delete` | Eliminar una cuenta de canal especificada. | +| `ensure` | Garantizar que exista un número específico de cuentas de canal. | +| `verify` | Verificar que las cuentas de canal existan en la red. | +| `view` | Listar claves públicas de todas las cuentas de canal. | + +--- + +### Crear Cuentas de Canal + +El comando `create` crea cuentas de canal. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts create [count] [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, por defecto será el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | + +--- + +### Eliminar Cuentas de Canal + +El comando `delete` elimina una cuenta de canal específica del almacenamiento y de la red. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts delete [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, por defecto será el valor de la opción `distribution-seed`. | +| `--channel-account-id` | ID de la cuenta de canal a eliminar. | +| `--delete-all-accounts` | Eliminar todas las cuentas de canal gestionadas en la base de datos y en la red. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | + +--- + +### Garantizar Cuentas de Canal + +El comando `ensure` garantiza que exista el número especificado de cuentas de canal. Si no existen, las creará. Si existen más cuentas de canal de las especificadas, eliminará las cuentas en exceso. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts ensure [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, por defecto será el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | + +#### Ejemplo + +```bash +stellar-disbursement-platform channel-accounts ensure 5 +``` + +--- + +### Verificar Cuentas de Canal + +El comando `verify` verifica que todas las cuentas de canal en la base de datos existan en la red Stellar. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts verify [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, por defecto será el valor de la opción `distribution-seed`. | +| `--delete-invalid-accounts` | Eliminar de almacenamiento las cuentas de canal que se verifiquen como inválidas en la red. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | + +--- + +### Ver Cuentas de Canal + +El comando `view` lista las claves públicas de todas las cuentas de canal almacenadas actualmente en la base de datos. + +#### Uso + +```bash +stellar-disbursement-platform channel-accounts view [flags] +``` + +## Comando Cuenta de Distribución + +El comando `distribution-account` gestiona la cuenta de distribución. + +### Uso + +```bash +stellar-disbursement-platform distribution-account [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :-------------------------- | :------------------------------------------------------------------------------------------------- | +| `--crash-tracker-type` | Tipo de rastreador de fallas. Opciones: `SENTRY`, `DRY_RUN`. Por defecto es `DRY_RUN`. | +| `--distribution-public-key` | La clave pública de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | + +### Subcomandos + +| Comando | Descripción | +| :------- | :---------------------------------------------- | +| `rotate` | Rotar la cuenta de distribución para un tenant. | + +--- + +### Rotar Cuenta de Distribución + +El comando `rotate` rota la cuenta de distribución para un tenant. + +#### Uso + +```bash +stellar-disbursement-platform distribution-account rotate [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--channel-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, por defecto será el valor de la opción `distribution-seed`. | +| `--distribution-account-encryption-passphrase` | Clave privada ed25519 compatible con Stellar usada para cifrar y descifrar las claves privadas de las cuentas de distribución de los tenants. | +| `--distribution-seed` | La clave privada de la cuenta de distribución Stellar del HOST, usada para crear cuentas de canal. | +| `--horizon-url` | URL del servidor Stellar Horizon con el que esta aplicación se comunicará. Por defecto es `https://horizon-testnet.stellar.org/`. | +| `--max-base-fee` | La tarifa base máxima para enviar una transacción Stellar. Por defecto es `10000`. | +| `--tenant-id` | El ID del tenant donde se aplicará el comando. | +| `--tenant-xlm-bootstrap-amount` | La cantidad del activo nativo que se enviará a la cuenta de distribución del tenant desde la cuenta de distribución del host cuando se cree, si es aplicable. Por defecto es `5`. | + +#### Ejemplo + +Para rotar la cuenta de distribución de un tenant específico: + +```bash +stellar-disbursement-platform distribution-account rotate --tenant-id 'f347e6b0-249c-4960-b0d2-aebcf4c6a60d' +``` + +## Comando Mensaje + +El comando `message` proporciona comandos relacionados con mensajería. + +### Uso + +```bash +stellar-disbursement-platform message [command] [flags] +``` + +### Flags + +| Flag | Descripción | +| :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- | +| `--aws-access-key-id` | El ID de clave de acceso de AWS. | +| `--aws-region` | La región de AWS. | +| `--aws-secret-access-key` | La clave secreta de acceso de AWS. | +| `--aws-ses-sender-id` | La dirección de correo electrónico que AWS usará para enviar correos. Usa AWS SES. | +| `--aws-sns-sender-id` | El ID del remitente de la cuenta AWS que envía el mensaje SMS. Usa AWS SNS. | +| `--message-sender-type` | Tipo de remitente del mensaje. Opciones: `TWILIO_SMS`, `TWILIO_WHATSAPP`, `TWILIO_EMAIL`, `AWS_SMS`, `AWS_EMAIL`, `DRY_RUN`. | +| `--twilio-account-sid` | El SID de la cuenta Twilio. | +| `--twilio-auth-token` | El token de autenticación de la cuenta Twilio. | +| `--twilio-sendgrid-api-key` | La clave API de la cuenta Twilio SendGrid. | +| `--twilio-sendgrid-sender-address` | La dirección de correo electrónico que Twilio SendGrid usará para enviar correos. | +| `--twilio-service-sid` | El ID del servicio utilizado dentro de Twilio para enviar mensajes. | +| `--twilio-whatsapp-from-number` | El número de WhatsApp Business usado para enviar mensajes (con prefijo `whatsapp:`). | +| `--twilio-whatsapp-receiver-invitation-template-sid` | El SID de contenido de Twilio para la plantilla de invitación de receptor de WhatsApp (comienza con HX). | +| `--twilio-whatsapp-receiver-otp-template-sid` | El SID de contenido de Twilio para la plantilla OTP de receptor de WhatsApp (comienza con HX). | + +### Subcomandos + +| Comando | Descripción | +| :------ | :----------------- | +| `send` | Enviar un mensaje. | + +--- + +### Enviar Mensajes + +El comando `send` envía un mensaje a un destinatario. + +#### Uso + +```bash +stellar-disbursement-platform message send [flags] +``` + +#### Flags + +| Flag | Descripción | +| :--------------- | :---------------------------------------------------------------------------------------------------- | +| `--email` | El correo electrónico al que se enviará el mensaje. Obligatorio si se envía un correo electrónico. | +| `--message` | El texto del mensaje a enviar. | +| `--phone-number` | El número de teléfono al que se enviará el mensaje, en formato E.164. Obligatorio si se envía un SMS. | +| `--title` | El título que se establecerá en el correo electrónico. Obligatorio si se envía un correo electrónico. | + +#### Ejemplo + +```bash +# Send an SMS +stellar-disbursement-platform message send --phone-number "+1234567890" --message "Hello World" --message-sender-type TWILIO_SMS + +# Send an Email +stellar-disbursement-platform message send --email "user@example.com" --title "Hello" --message "Hello World" --message-sender-type AWS_EMAIL +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx new file mode 100644 index 0000000000..af0f65afc2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx @@ -0,0 +1,241 @@ +--- +title: Configuración +description: Comprende las opciones de configuración disponibles para la Plataforma de Desembolso Stellar (SDP) +keywords: + - SDP + - configuration +sidebar_position: 40 +--- + +Los servicios de la Plataforma de Desembolso Stellar pueden configurarse mediante un conjunto de opciones que se pasan por la línea de comandos o se establecen como variables de entorno. Dependiendo de cómo estés usando y desplegando la SDP, estas configuraciones pueden establecerse en un ConfigMap en Kubernetes, como variables de entorno en un contenedor Docker, pasarse como argumentos de línea de comandos, etc. + +En esta sección discutiremos las diferentes opciones de configuración disponibles para la SDP. + +:::tip[Notes] + +- Las configuraciones marcadas con 🔑 son sensibles y deben almacenarse de forma segura. +- Todas las configuraciones pueden pasarse como variables de entorno o flags de CLI. Por ejemplo, la variable de entorno `BASE_URL` podría pasarse mediante el flag `--base-url`. Los flags de CLI tienen prioridad sobre las variables de entorno, aunque estas últimas son más convenientes. + +::: + +## Servicio principal de SDP + +Para obtener la configuración más actualizada, puedes ejecutar el siguiente comando en el [repositorio git del backend de stellar-disbursement-platform](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform serve --help +``` + + + +### Configuración operativa + +La configuración operativa permite controlar métricas, registro y otros aspectos operativos del Servicio principal de SDP. + +- `PORT` - El puerto en el que el Servicio principal de SDP escuchará las solicitudes HTTP entrantes. Por defecto: 8000. +- `LOG_LEVEL` - Determina el nivel de verbosidad de los registros. Opciones: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", o "PANIC". Por defecto: "TRACE". +- `METRICS_PORT` - El puerto en el que el Servicio principal de SDP expondrá sus métricas. Por defecto: 8002. +- `METRICS_TYPE` - El tipo de métricas a exponer. Opciones: "PROMETHEUS". Por defecto: "PROMETHEUS". +- `CRASH_TRACKER_TYPE` - El tipo de rastreador de fallos a usar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN". +- `SENTRY_DSN` - 🔑 El DSN (clave de cliente) del proyecto Sentry. Si no se proporciona, no se usará Sentry. +- `ENVIRONMENT` - El entorno donde la aplicación está ejecutándose. Ejemplo: "development", "staging", "production". Por defecto: "development". +- `BASE_URL` - La URL base del servidor backend de SDP. Por defecto: "http://localhost:8000". Las URLs específicas para cada tenant se configurarán durante el [proceso de provisión de tenants](./advanced-configration#provisioning-tenants). +- `SDP_UI_BASE_URL` - La URL base de la interfaz de usuario/dashboard de SDP usada para enviar el enlace de invitación cuando se crea un usuario nuevo. Las URLs específicas para cada tenant se configurarán durante el [proceso de provisión de tenants](./advanced-configration#provisioning-tenants). + +### Configuración de base de datos + +Las siguientes configuraciones están relacionadas con la base de datos PostgreSQL usada por el Servicio principal de SDP. + +- `DATABASE_URL` - 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato es `postgres://usuario:contraseña@host:puerto/base_de_datos?sslmode=disable`. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable". +- `DB_MAX_OPEN_CONNS` - Máximo número de conexiones abiertas por pool a la base de datos. Por defecto: 20. +- `DB_MAX_IDLE_CONNS` - Máximo número de conexiones inactivas mantenidas en el pool. Por defecto: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Cierra conexiones inactivas después de N segundos. Por defecto: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recicla conexiones después de N segundos. Por defecto: 300. + +### Configuración de mensajería + +La configuración de mensajería permite configurar el servicio de mensajería usado para enviar mensajes a los destinatarios y a los usuarios del dashboard de SDP. La configuración predeterminada está establecida en "DRY_RUN", lo que significa que no se enviarán mensajes y estos se registrarán en la consola. Esto se recomienda solamente para propósitos de prueba. + +- `EMAIL_SENDER_TYPE`: El tipo de mensajero usado para enviar invitaciones a nuevos usuarios del dashboard. Opciones: "DRY_RUN", "TWILIO_EMAIL", "AWS_EMAIL". Por defecto: "DRY_RUN". +- `SMS_SENDER_TYPE`: El tipo de mensajero usado para enviar mensajes SMS a los destinatarios. Opciones: "DRY_RUN", "TWILIO_SMS", "TWILIO_WHATSAPP", "AWS_SMS". Por defecto: "DRY_RUN". + +#### Configuración AWS + +Las siguientes configuraciones son necesarias cuando se usa AWS SES o SNS para enviar emails o mensajes SMS. + +- `AWS_ACCESS_KEY_ID` - 🔑 La ID de la clave de acceso de AWS. +- `AWS_REGION` - La región AWS donde el servicio SES está disponible. +- `AWS_SECRET_ACCESS_KEY` - 🔑 La clave secreta de acceso de AWS. +- `AWS_SES_SENDER_ID` - El email que AWS SES usará como remitente al enviar correos electrónicos. Requerido cuando `EMAIL_SENDER_TYPE` está configurado a "AWS_EMAIL". +- `AWS_SNS_SENDER_ID` - El ID del remitente para usar al enviar SMS usando AWS SNS. Requerido cuando `SMS_SENDER_TYPE` está configurado a "AWS_SMS". + +#### Configuración Twilio + +Las siguientes configuraciones son necesarias cuando `SMS_SENDER_TYPE=TWILIO_SMS`. + +- `TWILIO_ACCOUNT_SID` - 🔑 El SID de la cuenta Twilio. +- `TWILIO_AUTH_TOKEN` - 🔑 El token de autenticación Twilio. +- `TWILIO_SERVICE_SID` - El SID del servicio Twilio. + +Las siguientes configuraciones son necesarias cuando `SMS_SENDER_TYPE=TWILIO_WHATSAPP`. + +- `TWILIO_ACCOUNT_SID` - 🔑 El SID de la cuenta Twilio. +- `TWILIO_AUTH_TOKEN` - 🔑 El token de autenticación Twilio. +- `TWILIO_SERVICE_SID` - El SID del servicio Twilio. +- `TWILIO_WHATSAPP_FROM_NUMBER` - El número de empresa WhatsApp usado para enviar mensajes (con prefijo whatsapp:). +- `TWILIO_WHATSAPP_RECEIVER_INVITATION_TEMPLATE_SID` - El SID de contenido Twilio para la plantilla de invitación WhatsApp del receptor (comienza con HX). +- `TWILIO_WHATSAPP_RECEIVER_OTP_TEMPLATE_SID` - El SID de contenido Twilio para la plantilla OTP WhatsApp del receptor (comienza con HX). + +Las siguientes configuraciones son necesarias cuando `EMAIL_SENDER_TYPE=TWILIO_EMAIL`. + +- `TWILIO_SENDGRID_API_KEY` - 🔑 La clave API para el servicio Twilio SendGrid (correo electrónico). +- `TWILIO_SENDGRID_SENDER_ADDRESS` - La dirección de correo electrónico usada para enviar emails vía Twilio SendGrid. + +#### Configuración general de mensajería + +- `MAX_INVITATION_RESEND_ATTEMPTS` - El número máximo de intentos para reenviar (automáticamente) la invitación a las Carteras Receptoras. Por defecto: 3. + +### Configuración Stellar + +La configuración Stellar permite configurar cuentas, transacciones y otros ajustes relacionados con Stellar. + +- `NETWORK_PASSPHRASE` - La frase contraseña de la red Stellar. Por defecto "Test SDF Network ; September 2015". +- `HORIZON_URL` - La URL del servidor Horizon para usar al enviar transacciones. Por defecto "https://horizon-testnet.stellar.org/". +- `SEP10_SIGNING_PUBLIC_KEY` - La clave pública de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. +- `SEP10_SIGNING_PRIVATE_KEY` - 🔑 La clave privada de la cuenta Stellar que firma las transacciones SEP-10. También se usa para firmar URLs. +- `MAX_BASE_FEE` - La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000. +- `SEP10_CLIENT_ATTRIBUTION_REQUIRED` - Determina si se requiere la atribución del cliente SEP-10. Por defecto: true. + +#### Configuración de cuentas de canal + +La siguiente configuración es necesaria para usar la [CLI de cuentas de canal](./cli-manual#channel-accounts-command) para gestionar cuentas de canal. + +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que empieza con `S`) usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, tomará por defecto el valor de `DISTRIBUTION_SEED`. + +#### Configuración de cuentas de distribución + +Las siguientes configuraciones están relacionadas con las cuentas de distribución usadas para enviar fondos a destinatarios. Esta configuración debe coincidir con la configuración en el Servicio principal de SDP. + +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para cifrar/descifrar las claves privadas en memoria de las cuentas de distribución. +- `DISTRIBUTION_PUBLIC_KEY` - La clave pública de la cuenta anfitrión de distribución Stellar. Usada para distribuir fondos, crear cuentas de canal y cuentas de distribución de tenants. +- `DISTRIBUTION_SEED` - 🔑 La clave privada de la cuenta anfitrión de distribución Stellar. Usada para distribuir fondos, crear cuentas de canal y cuentas de distribución de tenants. + +### Configuración de seguridad + +La configuración de seguridad permite configurar los aspectos de seguridad del Servicio principal de SDP. + +- `CORS_ALLOWED_ORIGINS` - Especifica los dominios permitidos para hacer solicitudes cross-origin. "_" significa que todos los dominios están permitidos. Los dominios pueden contener comodines, por ejemplo, "https://_.example.com". +- `SEP24_JWT_SECRET` - 🔑 El secreto usado para firmar el token JWT para transacciones SEP-24. Este secreto se usa durante el flujo de registro de la cartera receptora. + +#### Configuración de autenticación del dashboard + +Las siguientes configuraciones están relacionadas con la autenticación y autorización de usuarios del dashboard. + +- `RESET_TOKEN_EXPIRATION_HOURS` - El tiempo de expiración en horas del token para restablecer la contraseña. Por defecto: 24 (horas). +- `EC256_PUBLIC_KEY` - La clave pública EC256 usada para validar la firma del token. Esta clave EC debe ser al menos tan fuerte como prime256v1 (P-256). +- `EC256_PRIVATE_KEY` - 🔑 La clave privada EC256 usada para firmar el token de autenticación. Esta clave EC debe ser al menos tan fuerte como prime256v1 (P-256). +- `DISABLE_MFA` - Deshabilita la autenticación multifactor (MFA) para los usuarios del dashboard de SDP. +- `DISABLE_RECAPTCHA` - Deshabilita Google reCAPTCHA v2 para los usuarios del dashboard de SDP. Este flag no afecta el reCAPTCHA usado en el flujo SEP-24. + +#### Configuración Recaptcha + +Las siguientes configuraciones son necesarias cuando se usa Google reCAPTCHA v2 para proteger el Servicio principal de SDP contra bots. ReCaptcha se usa tanto para los usuarios del dashboard como para los receptores de fondos durante el flujo SEP-24. + +- `RECAPTCHA_SITE_KEY` - La clave del sitio Google reCAPTCHA v2 - No soy un robot. +- `RECAPTCHA_SITE_SECRET_KEY` - 🔑 La clave secreta del sitio reCAPTCHA usada para validar las respuestas del reCAPTCHA. + +### Configuración de trabajos en segundo plano + +- `SCHEDULER_PAYMENT_JOB_SECONDS`: Intervalo en segundos para el trabajo que sincroniza pagos entre SDP y TSS. El mínimo es 5 s. +- `SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS`: Intervalo en segundos para el trabajo que envía invitaciones a receptores. El mínimo es 5 s. + +### Configuración multi-inquilino + +- `ADMIN_ACCOUNT`: El nombre de usuario de la cuenta de administrador usada para autenticar las solicitudes HTTP al servidor Admin. Las solicitudes dirigidas a Admin deben añadir el encabezado "Authorization", formateado como Base64 codificado `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_API_KEY`: La clave API de la cuenta de administrador usada para autenticar las solicitudes HTTP al servidor Admin. Las solicitudes dirigidas a Admin deben añadir el encabezado "Authorization", formateado como Base64 codificado `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_PORT`: el puerto del servidor Admin usado para crear y gestionar tenants. Por defecto es 8003. +- `INSTANCE_NAME`: el nombre de la instancia SDP que se mostrará en el archivo `stellar.toml`. Ejemplo: "SDP Testnet". +- `SINGLE_TENANT_MODE`: Cuando se establece a `"true"`, activa el modo de un solo inquilino, útil para desarrollo local o configuraciones de inquilino único. Además de establecerlo en true, necesitarás configurar el tenant predeterminado llamando a la solicitud [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). +- `TENANT_XLM_BOOTSTRAP_AMOUNT`: La cantidad de XLM que la cuenta Stella anfitriona depositará a la cuenta de distribución del tenant para su inicialización. + +### Configuración de integración del bridge + +Las siguientes configuraciones son necesarias cuando se usa la integración del Bridge. + +- `ENABLE_BRIDGE_INTEGRATION` - Determina si la integración del bridge está habilitada. +- `BRIDGE_BASE_URL` - La URL base de la API del bridge. Por defecto: `"https://api.bridge.xyz"`. +- `BRIDGE_API_KEY` - 🔑 La clave API para la integración del bridge. Requerido si `ENABLE_BRIDGE_INTEGRATION` está establecido como true. + +## Servicio de envío de transacciones (TSS) + +Para obtener la configuración más actualizada, puedes ejecutar el siguiente comando en el [repositorio git del backend de stellar-disbursement-platform](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform tss --help +``` + + + +### Configuración general + +- `QUEUE_POLLING_INTERVAL` - Intervalo de sondeo (segundos) para consultar la base de datos sobre transacciones pendientes para procesar. Por defecto: 6. + +### Configuración operativa + +La configuración operativa permite controlar métricas, registro y otros aspectos operativos del Servicio de envío de transacciones (TSS). + +- `LOG_LEVEL` - Determina el nivel de verbosidad de los registros. Opciones: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", o "PANIC". Por defecto: "TRACE". +- `TSS_METRICS_PORT` - El puerto en el que el TSS expondrá sus métricas. Por defecto: 9002. +- `TSS_METRICS_TYPE` - El tipo de métricas a exponer. Opciones: "PROMETHEUS". Por defecto: "PROMETHEUS". +- `CRASH_TRACKER_TYPE` - El tipo de rastreador de fallos a usar. Opciones: "SENTRY", "DRY_RUN". Por defecto: "DRY_RUN". +- `SENTRY_DSN` - 🔑 El DSN (clave de cliente) del proyecto Sentry. Si no se proporciona, no se usará Sentry. +- `ENVIRONMENT` - El entorno donde la aplicación está ejecutándose. Ejemplo: "development", "staging", "production". Por defecto: "development". + +### Configuración de base de datos + +Las siguientes configuraciones están relacionadas con la base de datos PostgreSQL usada por el Servicio principal de SDP. + +- `DATABASE_URL` - 🔑 La cadena de conexión para la base de datos PostgreSQL. El formato es `postgres://usuario:contraseña@host:puerto/base_de_datos?sslmode=disable`. Por defecto: "postgres://localhost:5432/sdp?sslmode=disable". +- `DB_MAX_OPEN_CONNS` - Máximo número de conexiones abiertas por pool a la base de datos. Por defecto: 20. +- `DB_MAX_IDLE_CONNS` - Máximo número de conexiones inactivas mantenidas en el pool. Por defecto: 2. +- `DB_CONN_MAX_IDLE_TIME_SECONDS` - Cierra conexiones inactivas después de N segundos. Por defecto: 10. +- `DB_CONN_MAX_LIFETIME_SECONDS` - Recicla conexiones después de N segundos. Por defecto: 300. + +### Configuración Stellar + +La configuración Stellar permite configurar cuentas, transacciones y otros ajustes relacionados con Stellar. + +- `NETWORK_PASSPHRASE` - La frase contraseña de la red Stellar. Por defecto "Test SDF Network ; September 2015". +- `HORIZON_URL` - La URL del servidor Horizon para usar al enviar transacciones. Por defecto "https://horizon-testnet.stellar.org/". +- `MAX_BASE_FEE` - La tarifa base máxima para enviar una transacción Stellar. Por defecto: 10000. + +#### Configuración de cuentas de canal + +Las siguientes configuraciones son necesarias para usar cuentas de canal para enviar transacciones a la red Stellar. + +- `NUM_CHANNEL_ACCOUNTS` - Número de cuentas de canal a utilizar para el envío de transacciones. Por defecto: 2. +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para cifrar/descifrar las claves privadas de las cuentas de canal. Si no se establece, tomará por defecto el valor de la opción 'DISTRIBUTION_SEED'. + +#### Configuración de cuentas de distribución + +Las siguientes configuraciones están relacionadas con las cuentas de distribución usadas para enviar fondos a destinatarios. Esta configuración debe coincidir con la configuración en el Servicio principal de SDP. + +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 Una clave secreta Stellar ed25519 (que comienza con `S`) usada para cifrar/descifrar las claves privadas en memoria de las cuentas de distribución. +- `DISTRIBUTION_PUBLIC_KEY` - La clave pública de la cuenta anfitrión de distribución Stellar. Usada para distribuir fondos, crear cuentas de canal y cuentas de distribución de tenants. +- `DISTRIBUTION_SEED` - 🔑 La clave privada de la cuenta anfitrión de distribución Stellar. Usada para distribuir fondos, crear cuentas de canal y cuentas de distribución de tenants. + +## Dashboard + +El dashboard SDP es una aplicación web que permite a los usuarios gestionar sus cuentas, ver el historial de transacciones y más. Las variables de entorno pueden establecerse en un objeto global `window._env_` o como variables `process.env`. Todas las variables de entorno usadas en este repositorio están en el archivo `src/constants/envVariables.ts`, incluyendo sus tipos. La ubicación predeterminada del objeto `window._env_` es `public/settings/env-config.js`. + +### Configuración general + +- `API_URL` - La URL base del Servicio principal de SDP. Por defecto: "http://localhost:8000". +- `STELLAR_EXPERT_URL` - La URL base del explorador Stellar Expert. Por defecto: "https://stellar.expert/explorer/testnet". +- `HORIZON_URL` - La URL base del servidor Horizon. Por defecto: "https://horizon-testnet.stellar.org". +- `RECAPTCHA_SITE_KEY` - La clave del sitio Google reCAPTCHA v2 - No soy un robot. Esta clave debe coincidir con la utilizada en el Servicio principal de SDP. +- `SINGLE_TENANT_MODE` - Cuando se establece a `"true"`, activa el modo de un solo inquilino, útil para desarrollo local o configuraciones de inquilino único. Además de establecerlo en true, necesitarás configurar el tenant predeterminado llamando a la solicitud [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). Por defecto: "false". diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx new file mode 100644 index 0000000000..d445e1bbb5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx @@ -0,0 +1,112 @@ +--- +title: Despliegue +sidebar_position: 30 +--- + +## Despliegue mediante Helm Charts + +### Requisitos mínimos del sistema + +- **Cuentas Stellar**: Necesitarás una **Cuenta de Distribución** (con fondos) y una **Cuenta de Firma SEP-10**. +- **Certificados**: Al ejecutar el SDP en una configuración multiusuario, necesitarás adquirir certificados TLS comodín para facilitar la provisión de usuarios, ya que el SDP utiliza subdominios para diferenciar entre ellos. Esto te permitirá provisionar usuarios sin tener que configurar manualmente certificados TLS para cada uno. Puedes usar un servicio como [Let's Encrypt](https://letsencrypt.org/) o [Namecheap](https://www.namecheap.com/security/ssl-certificates/) para obtener estos certificados. + +| Componente | Requisito | Notas | +| :------------- | :-------- | :----------------------------------------------------------------------------- | +| **Kubernetes** | v1.19+ | Para despliegue con Helm | +| **Helm** | v3.14.0+ | Para despliegue con Helm | +| **PostgreSQL** | v14.0+ | Requerido para ambos métodos de despliegue | +| **RAM** | 4GB+ | Memoria mínima recomendada para ejecutar la pila completa en modo multiusuario | + +### Instalando el Chart + +#### 1. Agregar el Repositorio Helm de Stellar + +Agrega el repositorio oficial de charts Helm de Stellar a tu cliente Helm local: + +```shell +helm repo add stellar https://helm.stellar.org/charts +``` + +#### 2. Preparar la Configuración + +Descarga el archivo de configuración mínima para usarlo como base: + +```shell +curl -LJO https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/main/helmchart/sdp/minimal-values.yaml +``` + +Los siguientes parámetros pueden establecerse en el archivo `minimal-values.yaml` o sobrescribirse directamente mediante la CLI durante la instalación: + +- `global.distributionPublicKey`: Clave pública de la cuenta de distribución. +- `global.distributionPrivateKey`: Clave privada de la cuenta de distribución. +- `global.sep10PublicKey`: Clave pública para la autenticación SEP-10. +- `global.sep10PrivateKey`: Clave privada para la autenticación SEP-10. +- `global.isPubnet`: Establecer en `true` para Mainnet. + +Consulta el [README del Helm Chart](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#parameters) para obtener una lista completa de parámetros. + +:::tip + +Hay una explicación más detallada de cómo configurar el SDP en la [Guía de Configuración](configuring-sdp). + +::: + +#### 3. Instalar el Chart + +Instala el chart usando tu archivo de valores personalizado. Puedes sobrescribir valores directamente mediante la CLI o modificar el archivo `minimal-values.yaml`. + +```shell +helm install sdp -f minimal-values.yaml stellar/stellar-disbursement-platform \ + --set "global.distributionPublicKey=" \ + --set "global.distributionPrivateKey=" \ + --set "global.sep10PublicKey=" \ + --set "global.sep10PrivateKey=" +``` + +## Despliegue mediante Docker Compose + +Esta sección describe cómo desplegar el SDP usando Docker Compose para un entorno similar a producción. A diferencia de la configuración de desarrollo, esta configuración usa imágenes precompiladas para producción y requiere la configuración explícita de variables de entorno y secretos. + +### Requisitos mínimos del sistema + +- **Cuentas Stellar**: Necesitarás una **Cuenta de Distribución** (con fondos) y una **Cuenta de Firma SEP-10**. +- **Acceso a la red**: Acceso de salida a la red Stellar (Horizon/Soroban) y a cualquier integración de terceros (Twilio, AWS SES, etc.). + +| Componente | Requisito | Notas | +| :--------- | :-------- | :-------------------------------------------------------- | +| **Docker** | v20.10+ | Requerido para la orquestación de contenedores | +| **RAM** | 4GB+ | Memoria mínima recomendada para ejecutar la pila completa | + +### Pasos para el despliegue + +#### 1. Clona el Repositorio + +```shell +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend +``` + +#### 2. Crear archivo de entorno + +Copia el archivo de entorno de ejemplo. + +```shell +cp dev/.env.example dev/.env +``` + +#### 3. Configura las variables de entorno + +Edita `dev/.env` y completa las siguientes variables con las claves de tus cuentas Stellar: + +- `DISTRIBUTION_PUBLIC_KEY` +- `DISTRIBUTION_SEED` +- `SEP10_SIGNING_PUBLIC_KEY` +- `SEP10_SIGNING_PRIVATE_KEY` + +Para despliegue en mainnet, establece: _ `NETWORK_TYPE=pubnet` _ `NETWORK_PASSPHRASE=Public Global Stellar Network ; September 2015` _ `HORIZON_URL=https://horizon.stellar.org` _ `DISABLE_MFA=false` (Impuesto por seguridad) + +#### 4. Iniciar los Servicios + +```shell +docker compose -f dev/docker-compose.yml up -d +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx new file mode 100644 index 0000000000..81978f0456 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx @@ -0,0 +1,78 @@ +--- +title: Arquitectura +sidebar_position: 20 +--- + +La Plataforma de Desembolso Stellar consta de tres servicios desplegados juntos: + +- **Dashboard**: la interfaz de usuario que los administradores usan para iniciar y rastrear el progreso de los desembolsos +- **Servicio Central SDP**: el servicio principal de backend que realiza varias funciones: + - **API del Dashboard**: la API que usa la interfaz frontal para todas las solicitudes de desembolso. La API está documentada [aquí](../api-reference) + - **API Admin**: la API que usa la organización anfitriona para administrar la provisión y configuración de inquilinos. La API está documentada [aquí](../api-reference/admin) + - **Servicio de Mensajería**: un proceso recurrente que envía mensajes de texto a los usuarios para invitarlos a descargar la wallet seleccionada para un desembolso en particular y verificar su teléfono con un OTP + - **Registro de Wallet**: una aplicación web que registra a un destinatario recogiendo y verificando su código OTP e información de verificación a través del protocolo [SEP-24: Depósito y Retiro Hospedado](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) de Stellar +- **Servicio de Envío de Transacciones**: el servicio que envía todas las transacciones de pago a la red Stellar. Este servicio está diseñado para maximizar el rendimiento de los pagos, manejar la cola y la reaplicación/control de errores de forma elegante + +## Dependencias {#dependencies} + +- **Orquestación de Contenedores**: el SDP se empaqueta como contenedores Docker y puede desplegarse en Kubernetes o AWS Fargate. SDF proporciona un Helm Chart para Kubernetes +- **Postgres**: el SDP usa un servidor de base de datos Postgres para todos sus servicios +- **Twilio o AWS SNS y SES**: el servicio de mensajería del SDP usa mensajes SMS/WhatsApp vía Twilio o AWS SNS y correos administrativos para configuración y recuperación de cuentas de organizaciones vía AWS SES o Twilio SendGrid +- **Cuentas Stellar**: + - Cuenta de Distribución: el SDP requiere acceso a al menos una cuenta Stellar financiada para realizar pagos al destinatario + - Cuenta de Autenticación SEP-10: el SDP necesita una cuenta Stellar para el protocolo de autenticación mutua [SEP-10: Autenticación Web Stellar](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md) usado para conectar aplicaciones wallet + +## Diagrama de Arquitectura + +![Architecture Diagram](/assets/SDP/SDP2-2.png) + +### Roles de Usuario {#user-roles} + +El SDP define los siguientes roles de usuario: + +- **Admin Anfitrión**: la organización que aloja la instancia SDP y administra la provisión y configuración de los inquilinos a través de la API `Tenant Admin` +- **Usuario del Dashboard**: un usuario que pertenece a un inquilino y usa el Dashboard del SDP para crear y administrar desembolsos, destinatarios y otros datos específicos del inquilino. +- **Usuario API**: un usuario que pertenece a un inquilino y utiliza la `Dashboard API` para crear y gestionar desembolsos, destinatarios y otros datos específicos del inquilino de forma programática +- **Receptores**: los usuarios finales que reciben los fondos enviados a través del SDP. Los receptores pueden usar una aplicación wallet que soporte SEP-24 para registro automático, o recibir fondos directamente en su cuenta Stellar. + +### Flujo de Trabajo {#workflow} + +1. El admin anfitrión usa la API `Tenant Admin` para proveer y administrar inquilinos. +2. `Usuario del Dashboard` y `Usuario API` usan el Servicio Central SDP para enviar desembolsos y administrar/invitar a otros usuarios. Esto puede hacerse vía la interfaz del Dashboard o directamente mediante la `Dashboard API`. +3. Para pagos que requieren registro SEP-24, el `Servicio Central SDP` envía un mensaje para notificar a los receptores. El mensaje contiene un enlace profundo que abre la wallet destino, lo que a su vez inicia el **flujo de depósito SEP-24** y registra a los receptores. +4. El Servicio de Envío de Transacciones saca los pagos listos para ser procesados y luego los envía a la red Stellar mediante Cuentas Canal. + +## Base de Datos y Esquemas {#database} + +El SDP usa una base de datos Postgres para todos sus servicios. El esquema de la base de datos es gestionado por el Servicio Central SDP y está versionado en el código. El esquema de la base de datos está diseñado para ser consciente de los inquilinos, lo que significa que cada inquilino tiene su propio conjunto de tablas y datos. Esto permite que el SDP sea multi-inquilino y soporte varias organizaciones usando la misma instancia. + +Hay 3 tipos de esquemas en la base de datos: + +- **Esquema Admin**: contiene tablas para administrar inquilinos. Este esquema es usado por la API Admin para gestionar la configuración y provisión de inquilinos. +- **Esquema TSS**: contiene tablas para administrar transacciones. Este esquema es usado por el Servicio de Envío de Transacciones para manejar el estado de las transacciones de pago. +- **Esquemas de Inquilinos**: cada inquilino tiene su propio esquema que contiene tablas para administrar desembolsos, destinatarios y otros datos específicos del inquilino. Estos esquemas están prefijados con `sdp_`. + +## Multi-inquilino {#multi-tenancy} + +El SDP puede desplegarse en configuración multi-inquilino, donde múltiples organizaciones comparten la misma instancia del SDP. Cada organización se denomina inquilino y tiene su propio conjunto de datos y configuración. Una organización anfitriona puede administrar múltiples inquilinos y su configuración mediante la API Admin. + +### Resolución de Inquilinos {#tenant-resolution} + +El SDP utiliza una estrategia de resolución de inquilinos para determinar a qué inquilino pertenece una solicitud. La resolución de inquilinos solo es necesaria para solicitudes no autenticadas, ya que las autenticadas incluyen la información del inquilino en el token JWT. + +- **Encabezado**: el encabezado `SDP-Tenant-Name` se usa para especificar el nombre del inquilino en la solicitud. Cuando está presente, este encabezado se usa para intentar resolver el inquilino. +- **Subdominio**: el SDP puede usar el subdominio de la URL de la solicitud para resolver el inquilino. Por ejemplo, `tenant1.sdp.backend.test` resolvería al inquilino `tenant1`. + +La prioridad de resolución es la siguiente: token JWT (solicitudes autenticadas) > Encabezado > Subdominio. + +#### Modo de Inquilino Único {#single-tenant-mode} + +Cuando el modo inquilino único está habilitado usando la variable de entorno `SINGLE_TENANT_MODE`, todos los inquilinos se resolverán automáticamente al inquilino predeterminado. Un inquilino predeterminado se establece llamando a la API [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). + +El inquilino predeterminado es útil para propósitos de desarrollo o cuando el SDP es usado por una sola organización. Esto permite a la organización omitir especificar el inquilino en cada solicitud y simplifica la configuración operativa del SDP, eliminando la necesidad de proveer certificados TLS comodín para configuraciones multi-inquilino. + +#### Resolución de Subdominios {#subdomain-resolution} + +Cuando se ejecuta el SDP en modo multi-inquilino, el SDP usa el subdominio de la URL de la solicitud para resolver el inquilino. Por ejemplo, `tenant1.sdp.backend.test` resolvería al inquilino `tenant1`. Esto permite que el SDP diferencie entre inquilinos sin requerir que el nombre del inquilino se especifique en la solicitud. + +La resolución de subdominios es especialmente importante para el proceso de Registro de Wallet, ya que el SDP depende de los subdominios para diferenciar entre inquilinos durante el flujo de depósito SEP-24. Los dominios principales, que contienen el nombre del inquilino como subdominio, se utilizan durante el proceso de registro por el SDP para identificar al inquilino y dirigir la solicitud de registro de wallet al contexto correcto del inquilino. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx new file mode 100644 index 0000000000..e58c4a6992 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx @@ -0,0 +1,110 @@ +--- +title: Comenzar +sidebar_position: 10 +--- + +Esta guía cubre cómo ejecutar la Plataforma de Desembolso Stellar localmente, enviar un desembolso de muestra y reclamarlo mediante la cartera demo en Testnet. Considera este recorrido como un entorno de aprendizaje en lugar de la ruta para implementaciones en producción. + +### Requisitos previos + +- **Docker:** Asegúrate de tener Docker instalado en tu sistema. Si no, puedes descargarlo desde [aquí](https://www.docker.com/products/docker-desktop) y arrancarlo una vez instalado. +- **Git:** Necesitarás Git para clonar el repositorio. Puedes descargarlo desde [aquí](https://git-scm.com/downloads). +- **Go:** Requerido para generar tu archivo de entorno. Instálalo desde [aquí](https://golang.org/dl/). +- **jq:** Útil para scripts opcionales y diagnóstico. Puedes descargarlo desde [aquí](https://jqlang.org/download/) + +Para macOS y Linux, puedes instalarlo con Homebrew: + +```bash +brew install --cask docker +brew install git go jq +``` + +### Clona el repositorio + +```bash +git clone https://github.com/stellar/stellar-disbursement-platform-backend.git +cd stellar-disbursement-platform-backend +``` + +### Ejecuta el asistente + +```bash +make setup +``` + +En las indicaciones, elige según lo siguiente. El asistente genera y financia las cuentas firmantes SEP-10 y de distribución (testnet), inicia Docker y muestra las credenciales del tenant. + +``` +? Select an existing run configuration or create new: +▸ Create new configuration +✔ Setup name (optional): +? Select network: +▸ testnet +? Select tenant mode: +▸ single-tenant +? Account setup: +▸ Generate new accounts +? Launch local environment now (project=sdp-sdp-test, setup=)? [Y/n] Y +? Initialize tenants and users? [y/N] Y +``` + +Al finalizar deberías ver: + +``` +🎉🎉🎉🎉 SUCCESS! 🎉🎉🎉🎉 +Single tenant mode - Login URL: +🔗Default tenant: http://localhost:3000 + username: owner@default.local password: Password123! +``` + +### Inicia sesión en el SDP + +Abre http://localhost:3000 e inicia sesión usando las credenciales de administrador generadas por el asistente de configuración (organización: default). ![Inicio de sesión](/assets/SDP/SDP32.png) + +### Envía un desembolso de prueba + +Haz clic en `New Disbursement +` en el panel; verás una cuenta de distribución financiada lista para usar: + +- Elige número de teléfono como Tipo de Contacto de Registro. Este es el canal que los destinatarios usarán para recibir mensajes. +- Selecciona XLM como el activo a desembolsar. +- Escoge Demo Wallet como la cartera receptora. +- Elige Fecha de Nacimiento como el método de verificación; los destinatarios la ingresarán para confirmar su identidad. +- Asigna un nombre al desembolso. ![Detalles del Desembolso](/assets/SDP/SDP33.png) + +Crea y carga un archivo de desembolso: + +- Descarga la plantilla a través de `Download CSV Template`; incluye todas las columnas requeridas. +- Actualiza los números de teléfono de marcador de posición o inválidos antes de usarla. +- La columna de verificación contiene los datos de identidad que deben coincidir los destinatarios. ![CSV de Desembolso](/assets/SDP/SDP34.png) + +Haz clic en el botón Revisar. Cuando estés listo para comenzar el desembolso, haz clic en el botón "Confirm disbursement". En Detalles del Desembolso verás el pago en estado `Ready`, lo que significa que el receptor aún no ha aceptado la invitación y el pago. ![Panel de Desembolso](/assets/SDP/SDP35.png) + +### Recibir pago + +:::note + +Esta sección muestra el flujo del Demo Wallet solo en Testnet para que puedas observar la experiencia del receptor mientras ejecutas SDP localmente. Para producción o integraciones con carteras reales, sigue la guía en [Making Your Wallet SDP-Ready](./making-your-wallet-sdp-ready.mdx). + +::: + +Reclama el pago en la cartera demo creando primero una cartera: + +- Abre la cartera demo: http://localhost:4000. +- Haz clic en `Generate Keypair for new account` para crear un par de claves; guarda las claves pública y secreta si planeas reutilizar la cuenta. +- Haz clic en `Create account` para crear la cuenta en la testnet de Stellar (la cuenta inicia con 10,000 XLM). ![Creación de Demo Wallet](/assets/SDP/SDP36.png) + +Para recibir tu pago, inicia un depósito SEP-24: + +- En Activo XLM, haz clic en `Add Home Domain`, ingresa `localhost:8000` y haz clic en `Override`. +- En el menú desplegable `Select action`, elige `SEP-24 Deposit`, luego haz clic en `Start`. ![Depósito SEP-24](/assets/SDP/SDP37.png) + +Verifica tu identidad: + +- Cuando se solicite, ingresa el mismo número de teléfono usado en el CSV de desembolso. +- Completa la verificación OTP y Fecha de Nacimiento. El OTP aparece en los registros del contenedor `sdp-api` (por ejemplo, “Aquí está el código de verificación de 6 dígitos que solicitaste ...”). ![Código OTP](/assets/SDP/SDP38.png) ![Verificación PII](/assets/SDP/SDP39.png) + +### Monitorización + +- En el panel SDP, el pago cambia de `Ready` a `PENDING` durante el flujo de la cartera, y luego a `Success` cuando los fondos se depositan. ![Panel SDP](/assets/SDP/SDP40.png) + +- En la cartera demo, el saldo se actualiza reflejando el nuevo monto. ![Saldo de Demo Wallet](/assets/SDP/SDP41.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx new file mode 100644 index 0000000000..5b049490cf --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx @@ -0,0 +1,176 @@ +--- +title: Preparar tu Wallet para SDP +sidebar_position: 80 +--- + +Recuerda que cualquier instancia de SDP necesitará un acuerdo con un proveedor de wallet antes de enviar desembolsos a esa wallet. Esto asegura que las wallets estén cómodas recibiendo fondos de tu organización y regula cualquier arreglo comercial entre las organizaciones. La wallet necesitará incluir en su lista blanca el dominio del SDP antes de que el SDP pueda enviar desembolsos a esa wallet. Cuando se añade el dominio de la wallet a un SDP, se está incluyendo efectivamente en la lista blanca por parte del SDP. Ambas partes listando a la otra les permite recuperar el archivo stellar.toml y verificar la clave de firma necesaria para el handshake [SEP-10]. + +En esta página, cubriremos los aspectos técnicos de la integración SDP-Wallet, incluyendo cómo añadir una Wallet en la base de datos del SDP, cómo validar y soportar los enlaces de registro usando [deep linking] de aplicaciones móviles, cómo iniciar el flujo de registro de usuario en la wallet usando [SEP-24], y un enfoque recomendado para manejar [deferred deep linking]. + +## Agregar una Wallet a un SDP + +La lista predeterminada de wallets SDP depende de qué red se esté usando (testnet o pubnet). La red se pasa como variable de entorno y luego la lista de wallets se puede inicializar apropiadamente al iniciar el SDP mediante el comando CLI `./stellar-disbursement-platform db setup-for-network`, de acuerdo con una lista fija de wallets conocidas. Alternativamente, las wallets se pueden insertar directamente en la base de datos del SDP mediante un comando SQL. Ambos métodos requieren añadir el nombre de la wallet, página principal, dominio cliente SEP-10 y esquema de deep link. + +Para insertarlo directamente en la base de datos, actualiza tus valores y ejecuta la siguiente consulta en Postgres. Asegúrate de revisar primero tu base de datos y el espacio de nombres. + + + +```sql +INSERT INTO wallets (name, homepage, deep_link_schema, sep_10_client_domain) +VALUES ('Vibrant Assist', 'https://vibrantapp.com', 'https://vibrantapp.com/sdp', 'api.vibrantapp.com'); +``` + + + +Para configurar una wallet mediante código, añádela a la sección de testnet o pubnet de `DefaultWalletsNetworkMap`. Esto se usará cuando ejecutes el comando CLI `./stellar-disbursement-platform db setup-for-network`, que actualiza la base de datos SDP y hace que la wallet esté disponible para nuevos desembolsos. Añade tu nueva wallet siguiendo el mismo formato ya presente en el código. + + + +```go +var DefaultWalletsNetworkMap = WalletsNetworkMapType{ + utils.PubnetNetworkType: { + { + Name: "Vibrant Assist", + Homepage: "https://vibrantapp.com/assist", + DeepLinkSchema: "https://vibrantapp.com/sdp", + SEP10ClientDomain: "api.vibrantapp.com", + }, + }, + utils.TestnetNetworkType: { + { + Name: "Vibrant Assist", + Homepage: "https://vibrantapp.com", + DeepLinkSchema: "https://vibrantapp.com/sdp-dev", + SEP10ClientDomain: "api-dev.vibrantapp.com", + }, + { + Name: "Demo Wallet", + Homepage: "https://demo-wallet.stellar.org", + DeepLinkSchema: "https://demo-wallet.stellar.org", + SEP10ClientDomain: "demo-wallet-server.stellar.org", + }, + }, +} +``` + + + +## Experiencia de Registro del Receptor + +La experiencia de registro del receptor es fundamental para que esta aplicación sea fluida y fácil de usar. Esto requiere que la wallet soporte [deferred deep linking], que se discutirá en una sección posterior. Una buena descripción de la experiencia de registro es la siguiente: + +1. El receptor recibe un mensaje de invitación notificándole que tiene un pago pendiente de la organización y se le invita a hacer clic en un [deep link] para abrir o instalar y abrir una aplicación de wallet + +2. Cuando el receptor abre la aplicación de wallet, la wallet inmediatamente integra al receptor, crea una cuenta Stellar y trustline para el activo deseado, inicia una transacción de depósito [SEP-24] con el SDP, y abre la página web de registro del SDP como una pantalla superpuesta/iframe dentro de la app. + +3. El usuario confirma su número de teléfono y fecha de nacimiento directamente con el SDP, sin compartir datos con la wallet, y después de concluir el registro, se le redirige a la aplicación de wallet. Aquí están las pantallas que demuestran estos pasos: + + ![Flujo de Registro](/assets/SDP/SDP25.png) + +4. El usuario recibe el pago en segundos + +## Enlace Profundo de Registro + +Una vez que el usuario ha instalado la aplicación de wallet, esta debe ser capaz de interpretar un [deep link] que siga el formato registrado en el SDP para iniciar el [Procedimiento de Registro de Wallet](#wallet-registration-procedure). El formato del deep link soportado por el SDP sigue este formato: + +```url +https://?asset=&domain=&name=&signature= +``` + +- `asset`: el activo Stellar. +- `domain`: el dominio que aloja el archivo `stellar.toml` del SDP. La wallet necesitará usarlo tanto para obtener el archivo `stellar.toml`, como para rellenar el campo `home_domain` en la transacción GET challenge [SEP-10]. +- `name`: el nombre de la organización que envía los pagos. +- `signature`: una firma de la clave de firma [SEP-10] del SDP. + +:::info + +Ten en cuenta que el deep link es específico para cada SDP, organización pagadora y activo. No es específico para cada receptor individual. No hay riesgo en compartir el enlace con receptores que forman parte del mismo desembolso. El enlace será el mismo para múltiples receptores, y estos probarán su identidad como parte del flujo de depósito [SEP-24]. + +::: + +A continuación, un ejemplo de enlace de registro (firmado) + +```url +https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test&signature=fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a +``` + +En este ejemplo, el host es `https://vibrantapp.com/sdp-dev` y la firma es el resultado de firmar la URL (sin firma) abajo usando la clave de firma [SEP-10] `SBUSPEKAZKLZSWHRSJ2HWDZUK6I3IVDUWA7JJZSGBLZ2WZIUJI7FPNB5`, con la clave pública siendo `GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F`: + +```url +https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test +``` + +En este ejemplo, la firma es `fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a`. + +A continuación, un fragmento JavaScript demostrando cómo verificar la firma: + +```js +#!/usr/bin/env node + +const { Keypair } = require("stellar-sdk"); + +// The SDP's stellar.toml SIGNING_KEY +// +// For security, this should ideally be fetched from +// https:///.well-known/stellar.toml on demand +const keypair = Keypair.fromPublicKey( + "GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F", +); +console.log("public key:", keypair.publicKey()); + +let url = + "https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar%20Test"; +let signature = + "fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a"; + +console.log( + "verified:", + keypair.verify( + Buffer.from(url.toString(), "utf8"), + Buffer.from(signature, "hex"), + ), +); +``` + +### Procedimiento de Registro de Wallet + +Al abrir el [deep link] de registro, estos son los pasos que la wallet debe seguir para aplicar las medidas de seguridad y privacidad esperadas en este flujo, y para permitir que el usuario ingrese su información directamente con el SDP: + +1. 🚨 Confirma que el `domain` del deep link esté en la lista blanca (allowlist) de la wallet. Esto es crucial para autenticar desde una wallet confiable.🚨 +2. Obtén el archivo toml del SDP en `{domain}/.well-known/stellar.toml` y confirma que la variable `SIGNING_KEY` esté poblada. +3. Verifica que la firma del enlace de registro haya sido realizada usando `SIGNING_KEY`, similar a la función `keypairPk.verify(...)` en el fragmento arriba, y que la firma sea válida con el contenido del enlace. +4. Revisa el `asset` del enlace y confirma que el usuario receptor tenga una trustline para ese activo. Crea una si no existe. +5. (Opcional) Usa el `name` del enlace para actualizar la interfaz de usuario de la wallet. +6. Inicia el flujo de depósito [SEP-24] con ese activo usando el valor `TRANSFER_SERVER_SEP0024` del archivo toml del SDP. + - Esto incluye usar [SEP-10] para autenticar al usuario con el servidor SDP. Ten en cuenta que el SDP requiere que los campos `client_domain` y `home_domain` sean proporcionados en la solicitud `GET `, y deberían establecerse como sigue: + - `client_domain`: el dominio del servidor de wallet que expone el archivo `stellar.toml` del servidor de wallet. + - `home_domain`: el dominio del servidor SDP que estaba presente en el enlace de registro. + - `account`: la cuenta Stellar de la wallet del receptor. +7. Lanza el flujo de depósito en un navegador _in-app_ dentro de tu aplicación móvil, siguiendo las instrucciones en la especificación [SEP-24]. + - ATENCIÓN: la wallet no debe, bajo ninguna circunstancia, extraer o intentar extraer contenido del navegador _in-app_ para obtener información del receptor. + - NOTA: se recomienda altamente usar un navegador _in-app_ en lugar de un webview. +8. 🎉 ¡Felicidades! El usuario receptor ahora puede completar los formularios en el navegador _in-app_ y registrarse para recibir su pago 🎉. + +Además, la wallet debería guardar el enlace y/o los atributos del enlace y asociarlos con el usuario receptor individual por estas razones: + +1. Así es como la wallet sabrá que el usuario está asociado con cierta organización o SDP. +2. Guardar la información es útil para reportes y solución de problemas, especialmente si la wallet necesita justificar la fuente de fondos por regulaciones o propósitos fiscales. +3. Si la organización pagadora quiere cubrir cualquier comisión de pago cobrada por la wallet o el offramp, la wallet necesitará saber qué usuarios y transacciones deben ser facturados upstream. + +### Enlaces diferidos (Deferred Deep Links) + +Es muy probable que el receptor no tenga la aplicación wallet necesaria instalada en su dispositivo. Por esta razón, las wallets deberían soportar el concepto de [deferred deep linking], que permite el siguiente flujo: + +1. La acción inicial del receptor al hacer clic en el deep link debería redirigirlo a la tienda de aplicaciones apropiada para descargar la aplicación wallet. +2. Después de instalar y abrir la aplicación, el receptor debería ser redirigido al flujo típico de integración de wallet. +3. Una vez que el usuario se haya integrado con éxito, la wallet debería usar la información incluida en el deep link para iniciar el [Procedimiento de Registro de Wallet](#wallet-registration-procedure). + +El deferred deep linking es una característica común soportada por numerosas soluciones móviles de deep linking; existen servicios de terceros que se pueden usar para implementar esta funcionalidad, como Singular, Branch, AppsFlyer, Adjust, entre otros. [Aquí](https://medium.com/bumble-tech/universal-links-for-android-and-ios-1ddb1e70cab0) hay una publicación de blog con más información sobre cómo implementar [deferred deep linking]. + +El SDP soporta un formato básico de enlace, tal como `https://`. Si el sistema de deep linking de tu wallet necesita una estructura más compleja, deberás gestionarlo con una aplicación web. Esta aplicación debería ser propiedad del proveedor de la wallet, y debería ser capaz de recibir el deep link, interpretarlo y dirigir al usuario a la ubicación correcta. + +[deferred deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking#Deferred_deep_linking +[deep link]: https://en.wikipedia.org/wiki/Mobile_deep_linking +[deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking +[sep-10]: https://stellar.org/protocol/sep-10 +[sep-24]: https://stellar.org/protocol/sep-24 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx new file mode 100644 index 0000000000..95a4de8e77 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx @@ -0,0 +1,58 @@ +--- +title: Monitorización +description: Guía para usar la CLI de la Plataforma de Distribución Stellar +keywords: + - SDP + - CLI +sidebar_position: 70 +--- + +Esta guía explica cómo la Plataforma de Distribución Stellar (SDP) expone métricas en tiempo de ejecución y cómo conectar esas métricas con el conjunto Prometheus + Grafana. + +### Puntos finales de métricas + +Tanto el Dashboard API como el Servicio de Envío de Transacciones (TSS) exponen puntos finales `/metrics` compatibles con Prometheus. El servidor HTTP está definido en [serve_metrics.go](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/internal/serve/serve_metrics.go) y se controla a través de las siguientes variables de entorno: + +- `METRICS_PORT` – Puerto usado por el servidor de métricas del Dashboard API (por defecto [8002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-sdp.yml)). +- `METRICS_TYPE` – Backend de monitorización en uso (actualmente `PROMETHEUS`). +- `TSS_METRICS_PORT` – Puerto usado por el servidor de métricas del TSS (por defecto [9002](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-tss.yml)). +- `TSS_METRICS_TYPE` – Backend de monitorización para el TSS (por defecto `TSS_PROMETHEUS`). + +Cuando el servidor se inicia, monta la ruta `/metrics` y muestra contadores e histogramas específicos de solicitudes, base de datos y TSS que se alinean con los dashboards de Grafana provistos en [Grafana README](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). + +### Conjunto local Prometheus y Grafana + +Proveemos un archivo Docker Compose que inicia Prometheus y Grafana preconfigurados para extraer las métricas de la SDP. + +1. Desde la [raíz del repositorio](https://github.com/stellar/stellar-disbursement-platform-backend/), ejecuta: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml up -d +``` + +Esto lanza Prometheus en el puerto `9090` y Grafana en el puerto `3002` por defecto según la [configuración de monitorización](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/docker-compose-monitoring.yml). + +2. El contenedor de Prometheus carga su configuración desde [config prometheus](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml), que apunta a `host.docker.internal:8002/metrics` por defecto. Ajusta la lista de `targets` si ejecutas la API en un host diferente o si quieres extraer las métricas del TSS (`host.docker.internal:9002`). +3. Grafana usa la configuración de datasource en [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml), que apunta a la instancia de Prometheus mencionada. Si tienes un despliegue de Prometheus existente, actualiza esta URL en consecuencia. + +Para desmontar el conjunto de monitorización, ejecuta: + +```sh +cd dev +docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml down +``` + +### Cargar el Dashboard de Grafana de SDP + +1. Navega a [http://localhost:3002](http://localhost:3002) e inicia sesión con las credenciales por defecto `admin` / `admin`. ![Inicio de sesión en Grafana](/assets/SDP/SDP42.png) + +2. Haz clic en el ícono `+` en la barra de navegación superior (junto al campo de búsqueda), elige `Importar dashboard` y pega el contenido de [Grafana Dashboard Json](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/dashboard.json). ![Importar Dashboard](/assets/SDP/SDP43.png) + +3. Selecciona el datasource `prometheus` provisto por [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml). ![Seleccionar datasource](/assets/SDP/SDP44.png) + +Este dashboard visualiza volumen/latencia de solicitudes HTTP, tiempos de consultas a base de datos y estadísticas de transacciones TSS, detalles descritos en [Grafana README.md](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). Todos los paneles pueden filtrarse por método, ruta, tenant o instancia para distinguir tráfico entre múltiples despliegues. + +### Integración con instancias externas de Prometheus + +Si ya gestionas un clúster Prometheus, añade trabajos de scrap equivalentes a los que están en [config prometheus](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/prometheus/prometheus.yml). Cada subsistema expone métricas en `http://:/metrics` (Dashboard API) y `http://:/metrics` (TSS). Los despliegues con [Helm](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/values.yaml) exponen las mismas configuraciones mediante `sdp.configMap.data.METRICS_*` y `tss.configMap.data.TSS_METRICS_*`. Una vez que los nuevos trabajos estén presentes, puedes importar el mismo JSON de dashboard en tu despliegue Grafana o adaptar las consultas PromQL a tu suite de observabilidad preferida. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/overview.mdx new file mode 100644 index 0000000000..82bb132b18 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/overview.mdx @@ -0,0 +1,20 @@ +--- +title: Descripción general +sidebar_position: 5 +pagination_label: "Guía del administrador: descripción general" +--- + +El proceso paso a paso completo del SDP generalmente se ve algo así después de que el SDP está implementado y los usuarios organizacionales han sido configurados: + +1. La organización financia la cuenta de distribución del SDP con un activo basado en Stellar (p. ej., USDC) +2. Un administrador inicia sesión en el panel del SDP y carga un archivo CSV que contiene la información de pago para iniciar una nueva dispersión de fondos +3. El SDP envía un mensaje de texto a cada beneficiario primerizo en el CSV invitándolos a descargar una aplicación de billetera compatible con Stellar +4. Mientras tanto, el SDP comienza inmediatamente a realizar pagos a cada beneficiario que ya tiene una billetera registrada a su nombre +5. Cada beneficiario primerizo hace clic en un enlace profundo para descargar la aplicación de billetera compatible con Stellar que la organización seleccionó para esta dispersión, descarga la aplicación y pasa por el proceso de registro en la billetera +6. Una vez que el beneficiario se ha registrado y su cuenta Stellar ha sido creada, la billetera se autentica inmediatamente con el SDP usando los parámetros del enlace profundo y abre la vista web de registro del SDP para que el beneficiario complete la verificación +7. El usuario confirma su identidad proporcionando un código OTP enviado a su número de teléfono y un dato adicional de verificación por razones de seguridad. El SDP admite tres tipos diferentes de información de verificación: fecha de nacimiento, PIN personal y DNI. Esta información es ingresada por el beneficiario en un flujo web y se envía directamente al SDP, lo que significa que la billetera no necesita procesar ni almacenar esta información. +8. El SDP verifica la información del beneficiario. Si coincide con la información del CSV, el SDP realiza automáticamente el pago a la cuenta Stellar del beneficiario + +Representación gráfica del flujo de fondos: + +![Flow of Funds](/assets/SDP/SDP1.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/security.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/security.mdx new file mode 100644 index 0000000000..b3eab8f91b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/security.mdx @@ -0,0 +1,91 @@ +--- +title: Seguridad +sidebar_position: 60 +--- + +Este manual describe las medidas de seguridad implementadas en la Stellar Disbursement Platform (SDP) para proteger la integridad de la plataforma y sus usuarios. Al seguir estas directrices, puedes asegurarte de que tu uso de la SDP sea lo más seguro posible. + +La seguridad es un aspecto crítico de la SDP. Las medidas descritas en este documento están diseñadas para mitigar riesgos y mejorar la seguridad de la plataforma. Se recomienda encarecidamente a los usuarios seguir estas directrices para proteger sus cuentas y operaciones. + +### Implementación de reCAPTCHA + +Se ha integrado el reCAPTCHA de Google en la SDP para evitar ataques automatizados y asegurar que las interacciones sean realizadas por humanos y no por bots. + +El reCAPTCHA está habilitado por defecto y puede desactivarse configurando la variable de entorno `DISABLE_RECAPTCHA` a `true`. + +La configuración está disponible en dos niveles: + +1. **Predeterminado del entorno** – Configura `DISABLE_RECAPTCHA=true` para aplicar la configuración globalmente a todos los tenants. +2. **Anulación por tenant** – Cada organización puede habilitar o deshabilitar reCAPTCHA a través de sus propias configuraciones (UI o API). Cuando existe, la elección a nivel de tenant anula el valor predeterminado del entorno. + +Usa las siguientes variables de entorno para controlar el comportamiento del reCAPTCHA: + +- `CAPTCHA_TYPE` – `GOOGLE_RECAPTCHA_V2` (predeterminado) o `GOOGLE_RECAPTCHA_V3`. +- `RECAPTCHA_SITE_KEY` – Clave de sitio de Google emitida para el tipo de CAPTCHA elegido. +- `RECAPTCHA_SITE_SECRET_KEY` – Clave secreta de Google asociada con la clave de sitio. +- `RECAPTCHA_V3_MIN_SCORE` – Puntuación mínima permitida (0.0–1.0, por defecto 0.5) cuando `CAPTCHA_TYPE=GOOGLE_RECAPTCHA_V3`. + +**Nota:** Desactivar reCAPTCHA en los entornos de producción (pubnet) reduce sustancialmente la protección contra abusos automatizados. Esta configuración debe usarse solo cuando se aplican controles compensatorios equivalentes. + +### Aplicación de la Autenticación Multi-Factor + +La Autenticación Multi-Factor (MFA) proporciona una capa adicional de seguridad a las cuentas de usuario. Se aplica por defecto en la SDP y se basa en OTPs enviados al correo electrónico de la cuenta. + +La MFA está habilitada por defecto y puede desactivarse en el entorno de desarrollo configurando la variable de entorno `DISABLE_MFA` a `true`. + +**Nota:** La MFA no puede desactivarse en entornos de producción (pubnet) por riesgos de seguridad. + +### Limitación de Tasa de Solicitudes y Protecciones de Red + +La SDP aplica limitación de tasa en la capa HTTP para frenar abusos automatizados. Cada par único `` está limitado a 40 solicitudes dentro de 20 segundos (ventana móvil). Las solicitudes que superen este umbral recibirán respuestas limitadas hasta que la ventana se reinicie. + +### Modelos de Autenticación y Autorización + +Todas las rutas API autenticadas requieren que los clientes presenten una clave API emitida por la SDP o un JWT derivado de los flujos SEP10/SEP24. Estos dos mecanismos funcionan en paralelo: los JWT son para usuarios interactivos, mientras que las claves API habilitan integraciones programáticas con su propio modelo de alcance. + +#### Roles JWT + +Los JWT representan usuarios humanos que inician sesión a través de la UI. Después de la autenticación, la plataforma los autoriza según los roles asignados a su cuenta de usuario. Los roles principales son: + +- **Owner** – Control total, incluyendo creación de usuarios, asignación de roles y edición de configuración de la organización. Owner es el único rol que puede otorgar o revocar acceso a otros. +- **Financial Controller** – Puede realizar todas las tareas operativas (carteras, activos, desembolsos, estadísticas) excepto la gestión de usuarios. Este rol es ideal para el personal financiero que ejecuta pagos. +- **Developer** – Administra configuración técnica como carteras, activos y claves API, y puede ver estadísticas; no puede modificar usuarios ni flujos financieros. +- **Business** – Solo lectura sobre datos comerciales (desembolsos, receptores, estadísticas) pero no tiene acceso a detalles de gestión de usuarios. +- **Initiator** – Crea y guarda desembolsos pero no puede enviarlos. Mutuamente exclusivo del rol Approver para garantizar la separación de funciones. +- **Approver** – Revisa y envía desembolsos pero no puede crear nuevos; mutuamente exclusivo con Initiator. + +Cada endpoint API especifica qué roles JWT pueden acceder a él—por ejemplo, las rutas de gestión de claves API (`/api-keys`) requieren Owner o Developer, mientras que la creación de desembolsos requiere Initiator o Financial Controller y el envío requiere Approver o Financial Controller. + +#### Permisos de la clave API + +Las claves API omiten los roles JWT e incluyen sus propios ámbitos de permisos. Cuando una solicitud incluye una clave API, el middleware valida la clave, confirma que la dirección IP del llamante esté permitida (si está restringida), verifica la expiración y finalmente asegura que la clave contenga los ámbitos requeridos por el endpoint. Las claves API se usan típicamente para automatización e integraciones entre servicios donde se necesita acceso preciso de lectura/escritura; crearlas o rotarlas sigue requiriendo un usuario con el rol JWT apropiado (Owner o Developer) para acceder a los endpoints `/api-keys`. + +Los ámbitos disponibles mapean directamente a los principales recursos de la SDP: + +- `read:all`, `write:all` +- `read:disbursements`, `write:disbursements` +- `read:receivers`, `write:receivers` +- `read:payments`, `write:payments` +- `read:organization`, `write:organization` +- `read:users`, `write:users` +- `read:wallets`, `write:wallets` +- `read:statistics` +- `read:exports` + +#### Configuración recomendada + +Para mejorar la seguridad, las responsabilidades de desembolso deberían distribuirse entre varios usuarios con el rol Financial Controller. + +1. **Flujo de aprobación**: Activa el flujo de aprobación en la página de la organización para requerir dos usuarios en el proceso de desembolso. El propietario puede hacerlo en _Perfil > Organización > ... > Editar detalles > Flujo de aprobación > Confirmar_. +2. **Rol Financial Controller**: Crea dos usuarios con el rol _Financial Controller_ en la página de la organización para aplicar la separación de funciones. El propietario puede hacerlo en _Configuración > Miembros del equipo_. +3. **Gestión de la cuenta Owner**: Utiliza la cuenta Owner únicamente para la gestión de usuarios y la configuración de la organización. Evita usar la cuenta Owner para tareas de financial controller para minimizar la exposición de esa cuenta. + +### Buenas prácticas para la gestión de carteras + +La cartera de SDP debería usarse principalmente como una hot wallet con una cantidad limitada de fondos para minimizar posibles pérdidas. + +#### Hot y Cold Wallets + +- Una hot wallet está conectada a internet y permite transacciones rápidas. +- Una cold wallet está desconectada y se usa para almacenar fondos de manera segura. +- Aprende más sobre estos conceptos en [Investopedia](https://www.investopedia.com/hot-wallet-vs-cold-wallet-7098461). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx new file mode 100644 index 0000000000..d79d223827 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx @@ -0,0 +1,10 @@ +--- +title: Interfaz de usuario +sidebar_position: 100 +--- + +import DocCardList from "@theme/DocCardList"; + +Una descripción y recorrido por las distintas partes de la interfaz de usuario de SDP. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx new file mode 100644 index 0000000000..6a6579457f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx @@ -0,0 +1,20 @@ +--- +title: Analítica +sidebar_position: 60 +--- + +La página de Analítica proporciona información completa sobre varios aspectos de las transacciones financieras, permitiéndote rastrear y comprender métricas clave relacionadas con los pagos. A medida que estén disponibles más métricas y estadísticas, se añadirán fichas adicionales a esta pantalla. La página muestra información como la tasa de pagos exitosos, el número total de pagos exitosos, el número de pagos fallidos y el número de pagos pendientes. Además, muestra el monto total desembolsado, el monto promedio por transacción, el monto total en USDC y la cantidad de personas y billeteras involucradas en las transacciones. + +Con más detalle: + +- La "tasa de pagos exitosos" indica el porcentaje de pagos procesados exitosamente sobre el total de pagos intentados. +- "Pagos exitosos" muestra la cantidad de todas las transacciones que se han completado con éxito. +- "Pagos fallidos" revela el número de transacciones que no se realizaron correctamente, lo que ayuda a identificar problemas en el proceso de pago. +- "Pagos pendientes" proporciona el número de transacciones que aún están por procesarse. +- "Total desembolsado" ofrece información sobre el monto total de fondos que se han enviado. +- El "monto promedio" ofrece un valor promedio de todas las transacciones que han ocurrido en USDC. +- "USDC" revela el monto total de fondos en el sistema, denominado en USDC. +- "Individuos" representa la cantidad de personas involucradas en estas transacciones. +- "Billeteras" indica la cantidad de billeteras digitales únicas involucradas en las transacciones. + +![Analítica](/assets/SDP/SDP24.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx new file mode 100644 index 0000000000..cb85f2c3ea --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx @@ -0,0 +1,24 @@ +--- +title: Configuración de Circle +sidebar_position: 70 +--- + +Si el tenant fue creado con una cuenta de distribución [Circle], entonces el propietario del tenant deberá configurar manualmente esa cuenta desde el panel de SDP. + +Una vez que un usuario con privilegios de propietario inicie sesión, verá un banner en la parte superior de la página indicando que la cuenta de Circle está pendiente de configuración: + +![Circle Configuration Banner](/assets/SDP/SDP30.png) + +Al hacer clic en el banner, el usuario será llevado a la sección Cuenta de Distribución, donde podrá ingresar la clave API de Circle y el ID de la billetera de Circle. + +![Circle Configuration](/assets/SDP/SDP31.png) + +:::info + +La clave API se almacenará en la base de datos cifrada mediante la clave «DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE», mientras que el ID de la billetera se almacena en texto plano. + +El ID de la billetera se usa para identificar la cuenta (interna) de Circle al realizar desembolsos. Es útil porque una cuenta de Circle puede tener varias billeteras, cada una con diferentes monedas y saldos. + +::: + +[Circle]: https://www.circle.com diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx new file mode 100644 index 0000000000..ba6c588ee0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx @@ -0,0 +1,44 @@ +--- +title: Inicio del Panel de Control +sidebar_position: 10 +--- + +La página principal del panel de control contiene un resumen de la actividad reciente de desembolsos y métricas clave de rendimiento. + +Esto incluye: + +- Tasa de pagos exitosos: El porcentaje de pagos completados con éxito (los pagos pendientes no se cuentan como exitosos). +- Pagos exitosos: El número total de pagos que se han realizado con éxito. +- Pagos fallidos: El número total de pagos que no pudieron procesarse. +- Pagos restantes: El número total de pagos programados que aún no se han procesado. +- Total desembolsado: La cantidad total de fondos enviados con éxito a los beneficiarios por una organización a lo largo del tiempo. +- Individuos: El número total de personas que están fijadas para recibir desembolsos. +- Carteras: El número total de carteras utilizadas dentro del SDP. Esto usualmente equivale al número de individuos, pero es posible que cada persona tenga más de una cartera. + +![Dashboard Home](/assets/SDP/SDP19.png) + +En el lado izquierdo del panel de Stellar Disbursement Platform está el logo de la organización y pestañas que te ayudan a navegar por la plataforma. + +Incluyen: + +- Inicio: Este es el panel principal que ofrece una visión general de las actividades de tu organización. +- Desembolsos: Esta sección muestra el historial y los detalles de todos los desembolsos. +- Receptores: Listas de personas que están fijadas para recibir desembolsos. +- Pagos: Aquí puedes encontrar el historial y detalles granulares de todos los pagos. +- Carteras: Información relacionada con la cartera de tu organización, la fuente de fondos para tus desembolsos. +- Analíticas: Herramientas de visualización de datos para ayudarte a analizar tus desembolsos y pagos. +- Perfil: Gestiona tu información personal y de la organización. +- Configuración: Ajusta las configuraciones del SDP según tu preferencia. + +El panel también muestra una lista de Desembolsos Recientes, proporcionando una vista rápida de tus desembolsos más recientes. + +Cada entrada muestra: + +- Nombre del Desembolso: El nombre único que tu organización asigna a la operación de desembolso. +- Total de pagos: Número total de pagos dentro del desembolso específico. +- Exitosos: Número de pagos que han sido enviados con éxito desde la cartera de distribución del SDP a las carteras de los receptores hasta ahora. +- Fallidos: Número de pagos que fallaron durante el proceso. +- Restantes: Número de pagos que están programados pero aún no se han procesado, usualmente porque el receptor no ha configurado una cartera. +- Creado el: La fecha y hora en que se creó el desembolso, mostrada en tu zona horaria local. +- Cantidad total: El valor total del desembolso en el activo correspondiente. +- Cantidad desembolsada: La cantidad del desembolso que se ha pagado con éxito hasta ahora. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx new file mode 100644 index 0000000000..2dbd7aad3a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx @@ -0,0 +1,26 @@ +--- +title: Desembolsos +sidebar_position: 20 +--- + +La página de Desembolsos proporciona una lista paginada de todos los desembolsos, detallando el estado de cada uno y la información de pago relacionada. + +![Desembolsos](/assets/SDP/SDP20.png) + +La página contiene lo siguiente: + +- Borradores: Haz clic en el botón Borradores en la parte superior derecha para acceder a una lista de desembolsos que han sido creados pero aún no enviados. +- Nuevo desembolso: Haz clic en el botón Nuevo Desembolso para iniciar el proceso de crear un nuevo desembolso. +- Buscar por nombre del desembolso: Introduce el nombre de un desembolso para encontrar rápidamente detalles específicos. +- Filtrar: Te permite reducir la lista de desembolsos basándote en criterios específicos como estado o fecha de creación. +- Exportar: Usa esta opción para descargar los datos del desembolso en formato CSV. +- Detalle del desembolso: Cada desembolso se muestra con los siguientes detalles: + - Nombre del desembolso: El nombre único asignado al desembolso por tu organización. + - Pagos totales: El número total de pagos dentro del desembolso. + - Exitosos: La cantidad de pagos dentro del desembolso que se han procesado exitosamente desde la cuenta de distribución hacia las carteras registradas. + - Fallidos: La cantidad de pagos que fallaron durante el procesamiento. + - Restantes: La cantidad de pagos que aún están por procesar. + - Creado el: La fecha y hora en la que se creó el desembolso. + - Monto total: El valor total del desembolso en el activo correspondiente. + - Monto desembolsado: La cantidad del desembolso que ya ha sido pagada. +- Puedes hacer clic en un desembolso individual para ver sus detalles, incluyendo una lista completa de receptores y pagos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx new file mode 100644 index 0000000000..22c783bbf6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx @@ -0,0 +1,29 @@ +--- +title: Pagos +sidebar_position: 40 +--- + +La página de Pagos proporciona una lista de todos los pagos, detallando el estado de cada uno y la información relacionada. + +![Payments](/assets/SDP/SDP22.png) + +La página de Pagos incluye: + +- Buscar por ID de pago: Introduce un ID de pago para encontrar rápidamente detalles específicos del pago. +- Filtro: Esta herramienta te permite reducir la lista de pagos según criterios específicos. +- Exportar: Esta opción te permite descargar los datos de pagos en formato CSV. +- Detalles del pago: Cada pago se lista con los siguientes detalles: + - ID de pago: Un identificador único asignado a cada pago. + - Dirección de la wallet: La dirección de la wallet digital a la que se envía el pago. Un guion ("-") indica que la dirección de la wallet aún no está configurada. El pago no puede realizarse hasta que la wallet del receptor sea creada y vinculada en el Stellar Disbursement Platform. + - Nombre de la distribución: El nombre de la distribución asociada con el pago. + - Completado en: La fecha y hora en que se completó el pago. Un guion ("-") indica que el pago aún no ha sido completado. + - Monto: El valor del pago en el activo correspondiente. + - Estado: El estado actual del pago. Las opciones son: + - `DRAFT`: Estado no terminal para pagos que fueron registrados en la base de datos pero cuya distribución aún no ha comenzado. Los pagos en este estado pueden ser eliminados o pasar a `READY`. + - `READY`: Estado no terminal para pagos que están esperando que el receptor se registre. Tan pronto como el receptor se registre, el estado cambia a `PENDING`. + - `PENDING`: Estado no terminal para pagos que fueron marcados por la plataforma correspondiente de la cuenta de distribución (actualmente TSS o Circle) para su envío a la red Stellar. Pueden o no haber sido enviados a la red aún. + - `PAUSED`: Estado no terminal para pagos que fueron pausados manualmente. Los pagos en este estado pueden reanudarse. + - `SUCCESS`: Estado terminal para pagos que fueron enviados exitosamente a la red Stellar. + - `FAILED`: Estado terminal para pagos que fallaron al enviarse a la red Stellar. Los pagos en este estado pueden intentarse nuevamente. + - `CANCELED`: Estado terminal para pagos que fueron cancelados manual o automáticamente. +- Puedes hacer clic en un pago individual para ver sus detalles, incluyendo un historial detallado del estado y detalles del blockchain de Stellar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx new file mode 100644 index 0000000000..5881bd5209 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx @@ -0,0 +1,24 @@ +--- +title: Receptores +sidebar_position: 30 +--- + +La página de Receptores muestra una lista de personas configuradas para recibir pagos, con información sobre sus billeteras e historial de pagos. Esta información te permite rastrear y administrar los pagos realizados a cada receptor, y proporciona una visión rápida de la interacción de cada receptor con una distribución de fondos. + +![Receivers](/assets/SDP/SDP20x.png) + +La página de Receptores incluye lo siguiente: + +- Buscar y Filtrar: En la parte superior de la página de Receptores, hay varias herramientas disponibles para ayudarte a encontrar información específica: + - Buscar por número de teléfono: Ingresa el número de teléfono de un receptor para encontrar su información rápidamente. + - Filtrar: Usa esta herramienta para reducir la lista de receptores según criterios específicos. + - Exportar: Esto te permite descargar los datos de los receptores en formato CSV. +- Detalles del receptor: Cada receptor está listado con los siguientes detalles: + - Número de teléfono: El número de teléfono del receptor, que sirve como identificador único dentro del SDP. + - Proveedor(es) de billetera: El proveedor de la billetera digital del receptor (normalmente una aplicación no custodial en el teléfono de la persona). + - Billeteras registradas: El número de billeteras registradas y vinculadas exitosamente al SDP por receptor. Un guion ("-") indica que no se ha registrado ninguna billetera. + - Pagos totales: El número total de pagos destinados al receptor. + - Exitosos: El número de pagos que se han enviado con éxito a la billetera del receptor. + - Creado en: La fecha y hora en que se creó el receptor en el sistema, mostrada en tu zona horaria local. + - Monto(s) recibido(s): El monto total que el receptor ha recibido con éxito en el/los activo(s) correspondiente(s). +- Puedes hacer clic en un receptor individual para ver sus detalles, incluyendo sus billeteras vinculadas y el historial completo de pagos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx new file mode 100644 index 0000000000..1e2bd05b6a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx @@ -0,0 +1,19 @@ +--- +title: Carteras De Dinero Digital +sidebar_position: 50 +--- + +La página de Carteras proporciona información detallada sobre tu cuenta de distribución, que es la cuenta principal de Stellar desde la que se realizan tus desembolsos. + +![Wallets](/assets/SDP/SDP23.png) + +La página de Carteras incluye lo siguiente: + +- Clave pública de la cuenta de distribución: Este es tu identificador único para tu cuenta de distribución en la red Stellar. Usas esta clave pública para recibir fondos en tu cuenta de distribución. +- Saldo: Esta sección muestra el saldo actual de diferentes activos digitales en tu cuenta de distribución: + - USDC, EUROC, etc.: Este es el saldo actual disponible para realizar pagos dentro de un desembolso. + - XLM: Este es el saldo de Stellar Lumens. Esto se usa para financiar la cuenta de distribución (reserva base) y las tarifas de transacción asociadas con la realización de pagos. Esto es solo con fines informativos y no es la fuente de fondos para los desembolsos. En general, no necesitas preocuparte por mantener esto, ya que las tarifas de la red Stellar son muy bajas. + +### Agregar fondos + +Agrega fondos a tu cuenta de distribución: Puedes depositar activos digitales basados en Stellar en tu cuenta de distribución enviándolos a la clave pública proporcionada. Asegúrate de que tu cuenta tenga una trustline al activo antes de enviar fondos. Como principio general, no uses tu cuenta de distribución como un lugar de almacenamiento a largo plazo para dinero. Está destinada a ser una cartera de paso para financiar desembolsos. diff --git a/ap_versioned_docs/version-2.9/api-reference/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/_category_.json similarity index 100% rename from ap_versioned_docs/version-2.9/api-reference/_category_.json rename to i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/_category_.json diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx new file mode 100644 index 0000000000..ac04e35d21 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/admin.tag.mdx @@ -0,0 +1,20 @@ +--- +id: admin +title: "Admin (Tenant Management)" +description: "Admin (Tenant Management)" +custom_edit_url: null +--- + + + +The Admin API oversees the management of tenants within the system, facilitating tasks such as provisioning new tenants, updating their information, and retrieving tenant data. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx new file mode 100644 index 0000000000..71bb54e4f4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/api-keys.tag.mdx @@ -0,0 +1,20 @@ +--- +id: api-keys +title: "API Keys" +description: "API Keys" +custom_edit_url: null +--- + + + +API Keys functionality allows to create access key with granular permissions and resource management. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx new file mode 100644 index 0000000000..986110bbdd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx @@ -0,0 +1,74 @@ +--- +id: authenticate-mfa +title: "Provide Multi-Factor Authentication" +description: "Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required." +sidebar_label: "Provide Multi-Factor Authentication" +hide_title: true +hide_table_of_contents: true +api: eJzNV01z2zYQ/SsYnJIMKTqetAfe5I80bpPUEznTg+NxluRSRAQCDLC0rHr03zsLkhZlJXLSNjPRRRKweHj7sNhd3EmCuZfppZy2VKEhlQMpa+RVJAv0uVNN+JvK3+wNOuMFVSjqVpOKS8jJOgFbC0XjbI7ei9I6MTs5F61HJ7SdKxMJZXLdFsrMAwpkSitaCbLCYY11hi6MF3ijchTeijcvp0J5YSwJ0EtYeeHwc6scFhMZSdugC3ueFTKVIxr45uVURrIBBzUSOvbvThqoUabyJKDHZycykoodqxAKdPKhv2cFo5UKnbDliJeM5EBCpiVoj5H0tNKM7VXdaLbA20bbAjcGeYU1yPRO0qoJluSUmcv1+qqDQ09HtlixxTYNlqA3EAUQyEjm1hAaYttnyTP+2sBvqF3KuoTrnFlcRcO2NvuEObE2jtUjhZ5X3VvuEHyoyps9Jx8Q1uxPd5jX9Rgws1YjmB3Eo25clBrmO6HAwdNB5tBQXsE12QWax3lesFmIQYfH0/OL41dTcQNaFYHqRLy7Hw2AHGWDdKI1mgOY9/94cjabHr0+vX532tt/FLk1pZq3XejxQo/ExMm1OJFr/oxDhIfDgG+s8Z3ehwcHuyc9a3O+OGWrHwi7feTQNLqfSD55a7bPf/85f6N426mgU6hzbB3JF1/ifgSFeNdF6f/HFp2z7nG2J0igtBeQ2ZbCqXUL13wNyYF/dKfgF95CuLybjeWZCSEjlGlakmO4UqEurktrZbr5PQ4iGfXjGbh7mwycMIiF53DJUIARyhDOOcbv1X2+q+57wwFhnfo7AP9Yeb9dNukJqB3bmZZvLkPU6D3Mv5BQ1l8T+y0n+bGbGxbDPi8Ono+QH674kcAB+zbmDDdHE/cJOc5ssYr7usK/O3A0XlnTFZ0FrmS6d2Ukb0C39whcEGqkynJNa2y4Tw1QJVOZ1CWnf4/uZqhprdMylWGRx7x1ilYzPv7ufI4QHDq+zaNzgEb9gaudW/T7XxecbYuQM7fzTyS8mhssxFJRxUF7Ojv85VfROHUDhGKBK67GvQzTXrchc41LLIuoTGkDG0WhZM4ItQYnTpTPWuexRkPiXAOV1tVien7GAqHzHcvDyfPJAWvQ1jU4lvaiQrEf48ns5Pwp300QZK0WWas0BTetm4PpqYY7WcMCRdbqhWhgxShhFMTc2bbhNsBhrhoVJrgdCtlm2N0gLa1bTHZr0U9H8YP5YC4q5cOWRtgGText63Lk9o3vuqAKiKc7KqEKNEMj9AAuEmCKMMFRLnIwnNxK25oiLKz4j9Z2yY2fw8Z6RdYp9CnziMWl7/CS/jsuRiLFTS9SnEG+QFNcPamIGp8myVxR1WaT3NbJdyE8TUVw/p7Kims6geq7294seKVM6cCTa3NqXe8gnws9dqaT7/CsdCGj/xfXBojHfFtiJgbbf+1NhbqO8woc+b2UR3YJOcSkBmWSfmCvP4+58Qp1LQJQ4F9go+1qeFfsv2utZ7tFm6EzSOgnHzhNEbra/1nO0IUeP5WDWz3NiXXzJBjFtox9bxZJrXI0PtSbIQE2kFcoDkOe6vIzY6VJslwuJxBmA1q/1Cevz45P385O48PJwaSiWoc8yam/BjMCPnf2RhUouhb8ZdeCTx92ilup527TK/yE77e+IBHeUtJoUIYbh6DYXV/ywhuGny8VF8L0Ut7dZeDxvdPrNQ9/bpGLwOUVF1GnIOOScnm1joaKwzWyUJ4nNq+1r0q058n3Ra5dcR8/KIdSLtfRUPuPO/j4ghE2Fvxy2xhN8xwbGk3vNHZbfcH5n7MLGXUNAz/fwtNNOljy4xSWgcB6/Q9FjJ0S +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx new file mode 100644 index 0000000000..a7c1b1271d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/authentication.tag.mdx @@ -0,0 +1,20 @@ +--- +id: authentication +title: "Authentication" +description: "Authentication" +custom_edit_url: null +--- + + + +Authentication controls the log in/log out process for all SDP users, as well as the token refresh process. Authentication uses a JWT approach signed with an ES256 private key. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx new file mode 100644 index 0000000000..77993d11d2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/balances.tag.mdx @@ -0,0 +1,20 @@ +--- +id: balances +title: "Balances" +description: "Balances" +custom_edit_url: null +--- + + + +Endpoints related to balances. A balance is an amount of a particular asset held by an organization, tenant, or account. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx new file mode 100644 index 0000000000..458e0ab900 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/bridge-integration.tag.mdx @@ -0,0 +1,34 @@ +--- +id: bridge-integration +title: "Bridge Integration" +description: "Bridge Integration" +custom_edit_url: null +--- + + + +Bridge integration endpoints for connecting organizations with Bridge services. + +**Integration Flow:** +1. Organization opts into Bridge (OPTED_IN status) +2. Complete KYC verification process via Bridge +3. Create virtual account for USD deposits (READY_FOR_DEPOSIT status) +4. Receive USD deposits that are automatically converted to USDC on Stellar + +**Status Description:** +- NOT_ENABLED → Bridge service not configured +- NOT_OPTED_IN → Organization hasn't opted in +- OPTED_IN → Organization opted in, KYC link created +- READY_FOR_DEPOSIT → Virtual account created, ready for deposits +- ERROR → Integration error occurred + + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx new file mode 100644 index 0000000000..44dc4afd0e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-api-key +title: "Create API Key" +description: "Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs." +sidebar_label: "Create API Key" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx new file mode 100644 index 0000000000..26489ab0d0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-asset +title: "Create Asset" +description: "This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement." +sidebar_label: "Create Asset" +hide_title: true +hide_table_of_contents: true +api: eJzVVk1T20gQ/Stdc0qqJIsQEqp0Mxg2bFggMQm1a3wYSW1rYmlGmQ8bRaX/vtUjCcxHyGZz2eVg7Jnu191vevpNwyxfGhbP2Llecim+cSuUZPOAZWhSLSr/M2aXuTCAMquUkBaEAWcwA6sg1cgtAgeJG+DGoAWbcwspl5BgZyYkcJgIkzhtsERpR3CmLMZgcwS1FRdKZyzkqsiAQ8ILLlPsvCuurUhdwfUQRBE2CNvtZ9voLGCqQu0hTzIWs0Of5JgcWcA0fnVo7IHKahY3DwodD+gJ9rVlLGCpkhalJXNeVYVIPXb0xZBPw0yaY8npG2ELjRkxmqoMWcCEMQ41UWrrClnMVPIFU0qk0pSmFWjI1ZvHzWBlrBZyyR4fBPYM9PB4w8uqII9P08kha28D/iOo3nYb5reDg8ne/snx29Or9/sX+39Mjj5PD68+7k8uPl19fn325+vJ5Yejz8ene2fjy73xh3ev/zo9PT4dv2Et/QVbFFjt0C+YSknTVbm78+p7pPd0g3FpisYsXFHU97gn9L2dncf+BzyD/lQDEHLNC3G7AInKalDaN1ul1VpkmHnyoq546ubeZ/QgXBswg6nTwtYsnjXsALlGPXY2Z/Fs3s4DdhMS0hJl2IcLKVwoeUlU0nfPrUVphJLGo6ywZvGzngFb88LdIlCgEm2uqJcrZXzvcEqCRb4XDKNE9Rp1F8HpgsXM+w35T6lFuyPYruK2R3gl3mP9qEd+v7rs7vBCaeDO5iht3/0BGLGUmMFG2By4hKPp7pu3UGmxpomwwpro7JmgaEoP4yVggsBz5BlqRjTTTfp4dy+Phm4crkXX3He9/QtdSsEXypcurO/4qcWCJsv2iIKLgtuF0iWML07oQFCbjpLd0avRDhHuypLrur9Iz2O8mE4uXlKjcbBKFZA4UVjP6fb4MzR3Sr5CSFyxgorXhOJXOSy1chWoBWhMRSX8hlpj19dDdIl2o/Rq9ORd/2+leC2vpVcVCilBVShDo5xO/S2lCdkJiTB9KkqCVR7+CbgAuMz8BvXLoD4L5WTmHXP6URRqI+QSNFbKCKu0QBNTHiHMTIcX9f/DbUEJq56kMOHpCmU2f5FbW5k4ipbC5i4ZpaqMfgrhZQy++NtUaqDBwwUxnCP0Zr4qIReaG6tdap3uC1yo+6w+eaajn6hsof3c+5XSBogf1bbBBAbbf11NjkUZpjnX1jyb8pZdZDViVHIho37h2Xp+VMY7LErwQD7/DKtC1dReP6wEnCG7lUtQS7RoRtc0Ey3q0pwvpqjXIqW5NJTVpzlSehl5o1AtQtObBawQKUrjh+UwbSue5gi7fk51YkBYcRRtNpsR97serXc10enJ4dHZ9CjcHe2MclsWfiiT1JRcbgF3DykYXlL3ZkxzJ53/u+diL4IWb2xUFVxIkglPXNMr7Yz1SjsPWE4SHM9Y0yTc4CddtC0tf3VIcjCbk3xrwRMSl9m8DQahuxP/w46p8JLi3qn9o7flPeW/OJ9esqB7EsQNKzth1HxDb1q+IcWnh6/tHhpNt9awgsul40uy7TDpaPkj9V959e+/UKbDlqy3Mnyo41059NkG33Fpmu5t0ba39t3Wdz16ugZrOo1527Z/AxqDc2E= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx new file mode 100644 index 0000000000..226a191ae9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-direct-payment +title: "Create Direct Payment" +description: "Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly." +sidebar_label: "Create Direct Payment" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx new file mode 100644 index 0000000000..31b6080bf7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-disbursement +title: "Create Disbursement" +description: "Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `." +sidebar_label: "Create Disbursement" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx new file mode 100644 index 0000000000..db5b9c9ef5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-receiver +title: "Create Receiver" +description: "Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements." +sidebar_label: "Create Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx new file mode 100644 index 0000000000..19cb8124c5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-tenant +title: "Create Tenant" +description: "Create Tenant" +sidebar_label: "Create Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Create Tenant + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx new file mode 100644 index 0000000000..22aa14dcc0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-user +title: "Create User" +description: "This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email." +sidebar_label: "Create User" +hide_title: true +hide_table_of_contents: true +api: eJzNV1lv2zgQ/isEn9pCsmLHzuGnTY/FprtoAzjBPrhBMRJHFmuKVEnKjtfwf18MJcdykjrbLgr0xZI1B7+5h2vuYeb4eMpvHFrHbyMu0GVWVl4azcf8upCOoRaVkdqzzCJ4dAyYxiWbvL1itUPLwDFfILPoauWZyRnoQDRLTVQhpJ4Rh7RM6tzYEkg7kzqI3Vz22KVnoJxhBWih0DGHeivEpF5IjwxLkKrHI24qtEHBpeBj/iZAIvQ84ha/1uj8ayNWfLzmmdEetafXV8kreriswBLoza8q5GNu0i+YeR7xypJeL9ERNZfW+c8aSuzwOm+lnvFNxBUcolqjGi0tBayFFY+49Fi6JyQ2EQ/GfYN0B2Wl8CEq/t4Umu9B4W8N8vvjpzytndToQlTbA5rnb40vM1PyzYbOIL9Ji4KPc1AOwxdXGe0aOwZHfXrsZ0bjeMGjrpuhqpTMQnSSL474uj7fHTNtAUVdmyIuSZ10nyHzcoF71m3tuo2eCZ0Uj/3Y8SLvnx6fpCiO49P0fBAPT0+O4rM8H8Sjfp4enSEenZ7nFMVDKdDVF+JwOCe67BSjAwH/oezZeWxHTo1RCHo/haaNe/gpDLOT0WgU9/PT43h4nh7HMOj34/x8lIpBeobZ+dF+bA7k27dSq5OJAheoKEgUvg5ab2vcRC2oUT4UeV+IODsb5vHwbADx2RBEPBr281wMT/B0BI9AgcYfBZVLDTqToD5TAluj1CN8TTVQykkfohf6TFMzw6eK4kZD7Qtj5T/fVxmHUxqtNfbJZME7b8E9r8F58HWXT9dlSqZEvETnYPZUJ9s8aD8tDP7BeLZn5g7F9pzhUb+j+aHEz1TchOb4cWh+NzaVQqD++XF52rodgP/AEOxwmNVW+lUo3NcIFu1F7Qs+nt5SUt7FmRE4Qx23cy9OjVjFbR3Qe+NC1E4a7YKWOa74+KBkxBeg6nsNdFCJvjBUopVxwQtAIHhSh52BcNoFvdEBtaWyC2Jb+BNyZ+OxrhG7DlfJP5Gw7gfs/d/XtF4Ilhsbgozat5GKmJMzjYItpS9o23g3GYxOWGXlAjyyOa5oUWgdcdHmR5CkRkrKCwQRSpn+5yagaWt84lEpsOytdGltHZaoPbtS4GlzYRdXl+QitK5BOej1e9QrXV2WYFdhZUJ2WMeLydurl0zSHuWNUSytpfLBTGNnoFuojnnDSpgjS2s1ZxWsSEv4CmxmTV3RqmUxk5UMBLNAGzam7eka/dLYee+Ra389iJ/0Jx12TTpSM1Ohjp2pbYassoaqj/kCPJEbKEYzb4L6J9RFDLQIBMpzloFmKbLc1FoEwYL+KGWWtGNarIyT3liJbkw4YjZ1jb6kfcai46S4ap0Up5DNUYvbF4X3lRsnyUz6ok5p0CTfpeHlmAXj76GsGLUokLrZrFu2YJXUuQXnbZ352rYGUlz8czHtfYdluQ0d8v+YtlXxnG1LTNmW94etKVCVcVaA9e4g5A5f4i1iUoLUSfvhoD3PmfEHqpIFRQG/wEqZ1fYKc7jWaE2fsXmdotXo0fU+UZvyaEv3MZ+gXciM+tLWrBZmz9hZEphik8euZYu4khlqFwbLtgFWkBXIBqFPNf2ZdI2TZLlc9iBQg7ZW1CV/Xb5592HyLh70jnqFL1Xok9T8S9Adxc0VgLWXr70W07l8/Yp3yHbyeLzzSaVAhg0+uGbdTrcpr7c34oKm3njK1+sUHN5YtdnQ5681Ur+f3tLEtBLSsGHfbqLtcNnN2zeNL+JrOnY3YOlSSutvw3SRZVj5DvnRarI3i68+Tq551Azp8ZqXRpCMhSXtuLAMQzji8GjUzsOobV8I4pakV52zHw7NBiL9EuAnRdbrZpBvNvf8DembEq2fttwUhdvNZvMvTKbC3w== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx new file mode 100644 index 0000000000..966b61bc6c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: create-wallet +title: "Create Wallet" +description: "Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains." +sidebar_label: "Create Wallet" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx new file mode 100644 index 0000000000..46017e9842 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx @@ -0,0 +1,77 @@ +--- +id: default-tenant +title: "Default Tenant" +description: "Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true." +sidebar_label: "Default Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true. + +Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx new file mode 100644 index 0000000000..c57a26092b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-a-disbursement +title: "Deletes a Draft Disbursement" +description: "Deletes a Disbursement in Draft or Ready Status by `id`." +sidebar_label: "Deletes a Draft Disbursement" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Deletes a Disbursement in Draft or Ready Status by `id`. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx new file mode 100644 index 0000000000..7b74f62ca1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-api-key +title: "Delete API Key" +description: "Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests." +sidebar_label: "Delete API Key" +hide_title: true +hide_table_of_contents: true +api: eJzVV01v3DYQ/SsET0mglWzX7UE3t3ZRN0FixA56cHzgSrMrZimSHg69URf678VQkr22NzbcIkB6Wa3E+XpD6r3RRpJaBlleyqOzU/EWuiCvMllDqFB70s7KUp4BtsqCJdOJGgwQBKGsYIcVdLm4aHQQqmJrUSlrHYk5iGhrZyEXH2wFo1udCWpgchRrbYywThhnl4Dso+YGBDmhIjVgSVeKBnOE6wiBQi4z6Tyg4mSntSzlcYp8dHb6FjqZSa9QtUCAjGkjrWpBllLXMpOasXhFjXwI8KLhcvV1BKFrzrvQgMIt7lVLbkQhM8nlaIRaloQRMhmqBloly42kznPCQKjtUvb9FRsH72yAwOsHe4d8uZ9/SjF2SYRYVRDCIhrTyT6Th3v7j50+We6SQ/03MLrKWQJLbPemeMOXR0W5+ReoiJuE3EPSQ0mA6HBH7ZmEr4QqPB8hkKK4bWdjOwfkEC2EoJawqzV9yqBab2CrDPnekbiH7K6KKc/h3v5W5IceQ2TlveHzo50tvgTu2Oa7ZUtb9NPjLfrd4VzXNdjvsj+723eX8yVtuOeV4DxxTPkFX7ho/6/H7oXHY4K662Qcbp+MjxBcxAq2GjSlC1BF1NQlUvoVFAIeRWpkeXnFFNECNY7Z7JZhEk+VslBez1bQhWKj615yILyZyC2ikaWUHGCKf87NH7qzneW2C8rrgSfv7+yff12IGKAWC4fb5KudzUTQSwu1WGtqmPZPzg9+/kV41DdMziwAMpt49mh8L5LnRLkNqJp3pef7hUvVaOI+y3MCYxSKYx3mEQO0YEmcGUULhy0zr8wkwx2qPMj38z3uQWxbhd1I3E/HeHV+fPZasD4Jcs6IedSGEkyHS2XHUgOze6tWIObRrIRXHUdJT5VYooue1QCh0l6nBXcDmNRhym6B1g5X+U5t+bFK/Gw/2yTZOsm482Bn48H16PhNE9Qo4uWhFGcFOT/p4YNwmVC2TguVq4H1n4U8nf7k2PCNMW6t7VIgeBc0OdQQSq5jJi7DEK8Yr7N6q0kzPzZpNlfVCmx99aoh8qEsiqWmJs7zyrXFiyK8Lod55baUTjCHKc0dbkCMZgmVtgtUgTBWFHEEyPtCz+1p/gJkC0wU+l+gTSGew7aGuZhs/zWaBkw7qxqFFJ4secuuIAQoWqVtMT54Es9zMP4A04oUKNVfgzeu4+P1LBIRA9ut4hzQ8hybf2aaIsA2fFicA97oinlpgjWWmTtcFslo5hazMJpl0ugKbEiCMRGgV1UD4iDx1MDPHKssivV6nau0mqKNrqF4d/rbyfvzk9lBvpc31JrEk94FapXdCjyMuWIc0h+yzOZOh3+0aX0UHoKvVHijtGV5Tp3ZjCJ3KSeRk5ksdc0fII0LxCubzVwF+ISm7/nxdQTm/curTN4o1FxAUsJaB/5fy3KhTIAnuvPq4zi6vxYvnvp3QpmE1fKm3CgT+U5mcgXd8OHRX/XZpIFc67BwVFXgacuFp6d7o8DxybuTixOZSfVIwlfpBIx/OObOIh6K8ZCYf/vsGy6bzTAg9P2t/bD0TY8R2C1ey3j7/h9IugUA +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx new file mode 100644 index 0000000000..fa3636ede7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-asset +title: "Delete Asset" +description: "This endpoint is used to soft delete an asset." +sidebar_label: "Delete Asset" +hide_title: true +hide_table_of_contents: true +api: eJzNVsFu4zYQ/RViTgkgW6mx7UG3dGOgaRfdoE7Rg+MDLY0s1hTJJUf2qoL+fTGU5HqTTYJsL71YljjzZt5wOI8dkNwFyNbw0e+kUf9IUtbAJoECQ+6Vi68Z3FcqCDSFs8qQUEE0AQtBVgRbkihQI6GQRsgQkOaQgHXoI9ZtARncRINrXoQEnPSyRkLPgTswskbIQBWQgOJgTlIFjzO4vRG2FFThEINjD2EhAY+fGuWxgIx8gwkEajVDBlU7zQb42WlbIGSl1IEN8gprCVkH1LpoSV6ZHfT9htGCsyZg4PXF1RU/vs4lEhnDFyI0eY4hlI3WLSSQW0NoCLKu7xNYXL17zl9qj7JoJ5wnru+edzWWRGkb89ipTyBg3nhFbSztzyg9+uuGKsjWGyZXI1WWt+RUvFjtDNJY1pB2quiBYfxh2qDGa8gA2H1CX3EBhwqdxzjVUzr1G7ZPNvHXv+6HzimtF7KhCg2pPPZJIoLaGSzEUVHFrbRcLX78STivDpJQ7LHlthp7haNZP3Xr2DYVygI9cBGUKW3MRlFshBWh1tKLGxW2jQ9YoyFxpyWV1tfi+u4WEmC6Q5aL+Q/zK65BU9fSt7H9UbyMcbG6ubvkgyEFWavFtlGaIk17drACt20t9yi2jd4LJ1tGiV+l2HnbOG5yj7lyKi7YA/rY9FN0g3S0fj9/Utr/X4oP5sHEucEhjbAOzSzYxuconLd/Y06CKhmnyZCKNYKsm475I7hESFPEhdwWKHJpxBaHQxAdK37R2h6V2QmPzgZF1isMGecxE+sw4KXjc1acFWnmxiLNtjLfoyk2FxWRC1ma7hRVzXae2zp9E8JlJiL5Uyqt4JMqFVe4QjGaRVbKlF4G8k1OjR8J8r7Qa3s6fwOz0sdB8V+oTRCvcTviVky2382mQl3P8kp6Ci+mfGaXkkdMa6lMOn54kc9rNH5BXYsIFPMv0Gnbcnu9ykQ0ge32zRa9QcIwf+AxRejr8LFcoT+onOfSRGtMc279Lo1GM1vOwmiWgFY5moA80aYB6GReoVjEOTXMZ8bK0vR4PM5lXI1oo2tIP9y+X/6+Ws4W86t5RbWOc9LZQLU0Z8CDUotJqr+aMd2/WvP2C8EoDISfKXVaKgP9mHk3StAaBgmCBDJV8B2ksoH4e9dtZcA/ve57/vypQZ7K600CB+mV3PKMX3dQqMD/i5PMP5v9xR/jjeFSvHSv+GbOk8IZlreD1A2/QQJ7bIdbTL/pz3T2Zvlheb+EBOQThdxHhRz/MIFvQj/WuiEO//bJMy5dN+hv35/sh6VnPUbtPLEwzKLvvwCSVJKU +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to soft delete an asset. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx new file mode 100644 index 0000000000..badcdef409 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/disbursements.tag.mdx @@ -0,0 +1,20 @@ +--- +id: disbursements +title: "Disbursements" +description: "Disbursements" +custom_edit_url: null +--- + + + +Endpoints related to disbursements. A disbursement is a group of payments sent to multiple individuals at once. An SDP user with the appropriate role triggers a new disbursement through the SDP dashboard by uploading a list of receivers and amounts. When the receiver has linked their wallet to the SDP, the payment automatically begins. SDP users can track their disbursements in real-time through the SDP dashboard. Each disbursement must have a unique name defined by the organization. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx new file mode 100644 index 0000000000..2cf119dab3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx @@ -0,0 +1,74 @@ +--- +id: download-disbursement-instructions +title: "Download Disbursement Instructions" +description: "Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement." +sidebar_label: "Download Disbursement Instructions" +hide_title: true +hide_table_of_contents: true +api: eJzVV0tz2zYQ/isYnJIMJTqu2wNvTuy0bjupJ3Lag6PpLMmliAgEGGApRdXov3cWfJiSX3XTzDQXUUPu6/uw2MdWEiy8TK7lmfJp4zxWaMjLeSRz9JlTNSlrZCJPtbZrL8CI2dmlaDw6QVbkdm20hVxQicLBWrye/S4KpVFQCSTW4EVTswDmYl2iEZlDIGUWQSEfuZyKq1J5sVZaC2v0Rjikxhnh0DeavICC0AllPLkm45i8KGGFIkU0AoggKzHnkEDkDgraNy4jaWt0wIoXuUzkWRf4GPXFyLiMZA0OKiR0TM9WGqhQJlLlMpKKGamBSnlI08WZsEUAN7YsI+nwU6Mc5jIh12AkPW002/OqqjXKSOLnWtscZVKA9iyQlViBTLaSNnWQJKfMQu52c7bma2s8ev5+fHTEj/1Axu6HU5GRLBHyAGkrX1tDaGhypnxtvWoVD+1clRhUGX4PrT0azAe7zO8XAIqGUK7Cl8MYCD9TnPnVl3nZRTJr3YSvvc1kK/EzBGuJbMVO7iL0FeSCDxE9RUKZFWg1vBCjXNnz8iJ+wY9bQdn0I2acFrXjvCTVniQ6Z93t2A+T7AwJlPYCUttQOJFWccd0kAP/qKcAc4A9OJYXHS5l6obk2FyhUOd/FtbK5Oa/UF4MiR1171Nwg0wKThjE3PPNTJHLhzKEC3TMdEf2y9tkvzfQUGmd+isY/s8Z/edMSU9AzVjONFWKgewKvYcF3plsd/P71pLYQ3YTRe/n5OjlyPKhRmsZ6lqrLFSz+KNvr+3X8haO6LvbR/TGulTlOZqvcj5303fj8yk07GkFOCeP1Eum4Y1tzLeae0/MkaKDeld6nIzT4x1627gMhRm0ences8Yp2oRe+QrBoTttqJTJ9ZwbVoVUWm68CwwwuXcmMh43aR9vVb6L1X4X9uhWfQtunA41en7jbsZn0ZI1djqQArX6BTe3KujPf1zxDJOLwrqQ8GioIysSXi24ua0VlVywzmfH3/8gaqdWQCiWuOFu100Dp91dCZr9YNC22JDDyhQ2RKMo9JcZodbg9oYDcamBCusqcXp5ISPJcNsoj6cvp0fMQVNV4DZdN37YxrPZ2eVzrssgyFot0kZpCjCtW4DpQg31uIIlirTRS1HDJpxAOz8tnG1q7vUOM1Wr8MGueOAbeTdIa+uW01vU/v9C/GA+mDBcqjC/2hrNpMvj2lm+eO20qnwXijWCbN1POwfmIgGmnXczm6PIwHBjC5chKPK8ZHlY5inXYZisrFPoE45jIq59ay/unpPxHZjUHUmTFLIlmnz+rCSqfRLHC0Vlk04zW8VPsvA8aSfrIZSN4JIGihkuUXRiAZUyhYP2+jWuA8jnQo+d6fQJyAoXKuqXQOtNPIZtjanoZf81mhJ1NclKcOQfDHkkF5NDjCtQJu5ePIjnMRg/oa5EMBTiz7HWdtMvUQ/ftcaz3LJJ0Rkk9NMPXKYIXeV/K2boVirjutTD6sKcWreIg9DEFhPfiUVSqwyND/2jL4A1L17iONSptj6zrSSO1+v1FMLXYK1T9fGvF6/P387OJ8fTo2lJlQ51sraeKjAjw/2Cto/rYEXbqzzbm1b97W+rXfsKW0qtQRnu+YHfbdc8r+Ve85SRTLrddETRPJKl9cTS220KHt87vdvx608Ncke5nkdyBU5Byv3pestG+X8+LFT3cvzsXTf5Pxf3br13wuhbs+G+vALdhM0rkkvctAv2br7rF9UQU/vhNMuwppHKsMLtDRg/nl/JSMKtMWAZxoDuD1u9M4zDht665t9ddI/KdtsOGbvdIN9+ulejgzYgNox4t/sbFvwyRw== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx new file mode 100644 index 0000000000..7aa1fcfb9e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-disbursements +title: "Export Disbursements" +description: "Exports a CSV file of disbursements." +sidebar_label: "Export Disbursements" +hide_title: true +hide_table_of_contents: true +api: eJzNWNty2zYQ/RUMnpIMJcpumge+qZHcpk0aT+S043E0GZBciohIgFks7aga/ntnQUqmfJEvcWbyYpHEYvecXWAvXktSCyejMzn9VlkkJ+eBTMElqCvS1shosyCUeD37R2S6AGEzkWoX1+igBENuKANpK0DFW96kMpLgN036QjKQlUJVAgGyxbU0qgQZya8ykJotfa0BV/Kq/bFwoDDJBQGWonaQCrLCywrK0daLXFAOO4gEq/awEL7WGiGVUaYKB4F0tCrYamaxlAEDLWwKMiKseTXJoVQyWktaVSzmCLVZyKYJtngdKardftDTbyohUSpKcmGNx9duY99dRfuEOAMJpi45npMP46MTGcgP0/HkVAZydjL+cDKdyEAejz/O/MPr9++O30754zyQpMnb68ds1jJt2Lwqq3bd6+25I0FQBOlnRZ9VRoD7HfPeFCuBQDWa3TMkKFckFILoFAqvTVCunUgVwVAcWSwVReL09PR08O7dYDJ5wgD3OR6ORq8Go4PB6PAWojFkFuHJmLbqfiKqziLtZ3ekoUi3t5Hld0k+5ZFOIVN1QTsh6J10jznor8371zXVCIlHvZfQZCMmMouekDaL62nuB5BSLumxad8YG9OYs0VXWePAsZbD0Yh/dqHfmpfZK9YQGPII4BuFiTvn59txZf7kyUjG2ihcyaZpmkC+HB1ct/vRqJpyi/o/SHdNvQhf3GjFxl8g4dhVyPWCdMsKEC3eclAJlbtbQ5eTL+VMXcaArKIE59QCbsrpTf8qbGHIvy2JHWaXKDZ2Xo4Oepqv7mg1q6oqdOJrYvjFscfWP8yaD9Ev10N0ZDHWaQrmh8TnZvdd2nyIG3Z28T4HSY2aVr5V+A0UAo5rymV0NudrUQLllluNBXjAipdk2DYeLrx6Dxzg+abvqLGQkZSsZWNkxp5oyfZNbRmrSv8F15PGn/+etDmQcwaHBAx1XAPh9MJAKi405UIZMZ0d/vpKVKjPFYFYworTSZejxl00VT9P5aBSPsINv2fWo+mK9IygKBSKfrEWx4Uivr1ifPxGBpLptigPhwfDEfugLku+0pE8yUHs1/FsNjl+LjS3fWRtIeJaF+RpWlwo00F1nPxLtQQR18VSVGrVVTgrlFigrSvOSQiJrrRfsOe+pF9aN0AXFpfDa679+SB+Mp/MCZdoNmmErcAMnK0xAVGh5YvTVnbtOijc+Nlq0/FdURcIZVK/kNgURKKMiEFktjbppmPMbFHYCy5DCJV1mixqcBHjGIgz1+oLu99B/8QPqs5Jg1glSzDp/FlOVLkoDBea8joeJrYMH6TheSQ8+S2UleCEojR7OAfRiXlW2mSoHGGdUI0dQY4L3RXT4QOYZejz2fdQ26i4i9sFxGIj+2g2ORTlIMkVktsLuScXEgKEpdIm7D7s5XMXjT+gKIVX5PGnUBV2xcfrTiaidiy3rGNAAwRu+InTFE9k7n02AzzXCeelDa0O5tDiIvRCA5sNXCcWyEInYJxP/5sEWKkkB3Ho81Sbn1lXFIYXFxdD5Ve9tm6rC9++eT39ezYdHA5Hw5zKwufJyjoqlekpbqdXcXUS3ck168vSeN9ptysLvqWqCqUNdxoe97orRWfdDOyt7VifBzK3jlhkvY6Vg49YNA1/bjtTLlGpdiouem3mrYC/bzy+kccSVt1Yfq6KGnytDB6C6cHT7x4Y22n7kViefODcg/WGUfjHo77n8Hg/2NvB9pG47zEW7ot1O3Y+0vY9J7g99vuj4iWIOb+gZhS++Qw2nRlf1HbjOEmg6kPfzlo7rervU/6PjLrWWi59a9k9sNbNkln1dF5tElvT/Jf9dOOW9bptXJtmK98u3bqjo7aRZu/Mm6b5H3hhCE8= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of disbursements. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx new file mode 100644 index 0000000000..c5e7012278 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-payments-csv +title: "Export Payments" +description: "Exports a CSV file of payments." +sidebar_label: "Export Payments" +hide_title: true +hide_table_of_contents: true +api: eJzNWG1v2zYQ/isEP7WFZDle6m7+5sVOl61NgzrpEKRGQUkni7VEqkcqqWvovw9HyY7cOM7LEqBfYkl3vHueI3kvWXIrZoYPLvj4e6HRGj71eAwmQllYqRUfrARMsIPJJ5bIDJhOWCEWOShrOtzjugAUpH0U8wEHp3/SyA8mn7jHC4EiBwtIrpZciRz4gBsrbGm4xyX5+VYCLvhN7yKyLBc2SplWzKbA6mUEgt4aIIQD4VspEWI+SERmwOPGLjJylGjMuUfIMh0DH1gsSRqlkAs+WHK7KGo8KNXsBoTT23ySSVXmFL3Rx+HhKff4x/FwdM49fjI+Hh0dv6Wn4dlkPOIen5wdHIwnE+7xw+HRO/fpYHh8MKbHqcettA5rE7hJHZuKUIu8cKLaSeWtA4gQgbwE/CLj3VE8OzsaMZsKyxAKBEM7wwRbrWeyjmwsrAiFgaeL5Qb+sB/2+29E7PejqOfv96PE/yOEN/7r/l4sRARv4v3f2/QiBGEh/iLsF5FYwN0cP6hswRBsiWp9OmvOAoE1tpgzxGwqDbGFDjvUmAs7YOfn5+f++/f+aPRM7Hvdbt/v7vnd3i0cQ0g0wlOQrC39QiyNRrub2KGELGalgZhZzUh/I8U84dVORJnZjci37nHr47RqEYglQuSg7mQxWqmxRKNjIdXsuYkIE7UY1G8EixhMyaMptDJgyEqv26WfTdTb8jr3eKSVpSxHzuG7DSJzSc+3Q0rcIaOLLpXABa+qqvL4fnfvpsszJUqbapQ/IN509Sp4tdWLDr9CRFtVINUbK2tCgKjxljNpUZi7LTRV6FpPlXkISCZyMEbMYIt5x2x96tcw+LG2bIPZNYqVn/3uXsvyzytqy6IoMhm5mhp8NRSx5bN5c1v0280tOtQYyjgG9Sz7sz181z4fEoaNVbTOQFSitAvXbPwJAgGHpU354GJKNyIHm2pqVWbgAAsS8aBuXEzQugIG8HLVtJSY8QHnZGBlf0JBqHm2vazJikL+AzezxN//ntaZjpIE7QYo29D0mJEzBTG7kjZlQrHxpPe6zwqUl8ICm8OCkkiTlIbNRop2YkpBxHR6K3pPtEPTtBYTC1kmkI2kCUs0QCzZSSYsXVw2PDniHie6NcpeZ6/TpRiUeU63uW6Edtt4MRmdvGSSegurdcbCUmbW0dQ4E6qBaijF52IOLCyzeauOaSbYDHVZUCZCiGQhnUBfupp97V2BvdI472zt1X4tiJ/VZ3VKhZhcKqYLUL7RJUbACtR0Z+r6LU0DhbpcXaxazZ/MeUyo2AkiHQOLhGIhsESXKl61x4nOMn1FdQeh0EZajRLMgHD47MLU9oLm149bQfKLJkh+KKI5qHj6IrW2MIMgmEmblmEn0nnwIAsvB8yRX0NZMMolQlKEU2CNmmMlVYLCWCwjW2JDkPbF3rWnnQcwS9Clsv9DbWXiLm5XELKV7qPZpJDlfpQKtGYn5JZeYBEgyIVUQfNhJ5+7aPwFWc6cIYc/hiLTCzpedzJhpSG9eRkCKrBgOp8pTVnA3HxIJoCXMqK8tKLVwOxonAVOydeJbxo1j2cyAmVc5l8lwEJEKbCey1N1fiZbgyC4urrqCCd11pqlJnh3dDA+noz9XqfbSW2euTxZaGNzoVqG65mXnVxXgo00s7wuiPcYj5ti4HqoIhNSUWvh0C6b2nPRDM3GVaPG59TjqTaWpMslTWVnmFUVfa57T6pJsTQizFrd5A6Y95+jtwKew6I9sl+KrARXD72HwHj4ILoDzOb4+0hETzk27sC6ZZZ9VsD3HAHvh3g9mT4S8h3D3a7zVg+Oj/R79zi2w3V75Lv2P6UXlATAtZPequGi61gvHEYRFG3U6+lpo/l8O6Z/GIkbHePcdYzNA1ldidSiZfPn3q92TX8pRFuXLJd1P1pVa/1adOuKhtpKm6IzrarqPxK+AXI= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of payments. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx new file mode 100644 index 0000000000..1b4e75d75d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx @@ -0,0 +1,74 @@ +--- +id: export-receivers-csv +title: "Export Receivers" +description: "Exports a CSV file of receivers." +sidebar_label: "Export Receivers" +hide_title: true +hide_table_of_contents: true +api: eJzNWNtu2zgQ/RWCT20hW0622we9eWsnm912W8RpiyA1CkoaWawlUiVHdr2G/n0xlGTLieNcNgH6ElnicOacGXIuWXMUM8uDKz7+WWiDlk89HoONjCxQasWDdoEJ9nbymSUyA6YTZiACuQBj+9zjugAjSPws5gEHt+G8FXg7+cw9XggjckAwZGzNlciBB/wH97gkIz9KMCt+3fSQWRAmShmCyVlpIWaomZNlmBpdzlKGKWzAsCLVCr6pMg/BeAxyITOPCRWzsxHhNPCjlAZiHiQis+Bxi6uMcCTa5Nwj5JmOgQdoSlqNUsgFD9YcVwWJWTRSzXhVeRsGFgWW9jCN8U8RIcsFRinTyiGut5Ejd/AvRZYBPiFUj4Mqc4rv6Hx4csE9fj4eji7d8/RscjE+H4+4x0/eDU9PxyMKPkp0djbx++IwTWqeFVkWeeFEapUdZ0QGBEL8TeA3kSCYw275oLIVM4ClUdvjxDAVyIQB1ihjThPDVFoWC4Q+O9EmFxiwy8vLy977973R6AlD2+V3PBi86Q2OeoPjW0iGkGgDT8KyVvUL0bTa4GFmJxKyeHMrSX5L8ClPcAyJKDPccX3nYHc+Trs3M5YGIgf1IItRK8YSbRwLqWa76e0ZmAgbdSjUb4SLKEzJoi20smBJy/FgQI9d2HtzMfd4pBWCQmcdfqIf2QX9vh1T4o4ZD3golTArXlVV5fHXg6ObNj8pUWKqjfwX4l1Tr/xXe63o8DtEFKzCUI1AWTMCY7S55VSiEfZuDU3a3crVOZ9U5GCtmMG+tF11z/0GBv9HI9thtkXR2nk9OOpovr6j1iyKIpORq4P+d0seWz+bNRei326G6ESbUMYxqGeJz373bW0+xA07u2ifhag0EleuP/gDhAEzLDHlwdWUrkQOmGpqL2bgAAta4n7dbFi/ewcsmEXbaJQm4wHnpKE1MCEv1ES7ZjZsRSH/hpuJ4q8vF3WyozxB4QCFDU+PWTlTELOlxJQJxcaT49/fsMLIhUBgc1hRGmny0rCJpOjmphRETMe3ovdEOzRNIZ4gZJkwbCRtWBoLOShkHzOBdHPZ8OMZ9zjRrVEe94/6A/JBmed0nQN+kQI7rOPFZPTxJZPU4qHWGQtLmaGjqc1MqAaqpSyfizmwsMzmrBAr0uK+CjYzuiyaXCQL6Rb0wtXtrXUFuNRm3r/h2l8P4lf1VV1QLSaTiukCVM/q0kTACqPp0tQlXNoGCvV1umgbumvq6h6UFiIdA4uEYiGwRJcqbhvCRGeZXtalp9BWojYSbEA4euzK1vr85tmLO07qFY2TeqGI5qDi6YsUsbCB788kpmXYj3TuP0jDy4A58hsoK0bJREjycAqsEXOspEqMsGjKCEvTEKS44F0x7T+AWWJcLvs/1FoVd3FbQsha2UezSSHLe1EqDNqDkDtyPhoAPxdS+c2Hg3zuovEnZDlzihz+GIpMr+h43cmElZbk5mUIRgGC7X+lNEUjmP2QTMAsZER5qaXVwOxrM/OdUE8nPduIeTyTESjrUn+bAAsRpcCOXZ6q8zPpCnx/uVz2hVt12pqt1n939nb8z2TcO+4P+inmmcuThbaYC9VRXE+q7LxTCnbyzHpbEu8z1TblwLVRRSakou7C4V035eeqmXXrdre1OvV4qi3S8nodCgufTFZV9LnuQKksxdKKMOu0lLcCfeoZeC+rOayaaXwhshJcxfQegvIxI+4BJJup+pFwnnS0PIBzz8D7vIjvOSbeD/JmfH0k5jsGwEPxrYfLR9q9x8h2wHZ3LtwCmNKLkYTAdZxe25LRba03DqMIii7szYC105+ejunfLOJGTzl3PWXzg7S2S2rV0Xm9O6xN01/y0d4t63XdsVbVRr5eunVHQ62VJu9Mq6r6D9uw+Rc= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Exports a CSV file of receivers. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx new file mode 100644 index 0000000000..0b4045a635 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx @@ -0,0 +1,74 @@ +--- +id: forgot-password +title: "Forgot Password" +description: "Sends an email with a token to an SDP user who has gone through the Forgot Password process." +sidebar_label: "Forgot Password" +hide_title: true +hide_table_of_contents: true +api: eJzNVk1v4zYQ/SsET7sLyUqDtgfd8lVs+rXG2kUPTrAYSWOJtURyh6M4XsP/vRhKTlyniLEtClQXSeTwcd4M5w23mqEOOl/oi54btGxKYOOsvk90haEk4+Nvrmdoq6DAKuzAtGptuFGg2K3QKnYyMbueqj4gqXXjVANB1c6i4oZcXzeKG1Q/OKodqymEsHZUKU+uxBAmOtHOI8Wdbyud62U03NvpRBN+7jHwpas2Ot8euTbC+j3saKwqYNCJLp1ltCzr3mXv5BXKBjuQLzE1hJVEIBIT4rzxqHPtij+wZJ1oT+IdGwyyZDDLt3uzwGRsrY/jdRPD5JaRuIRFJ0KrA9b5iLETXiV4Lhv4FCN5GnYeA750pAivLqbzq/cX6gFaUw1p28mTHNBi6jEOBO9sGBicn52dDuKQ5oCWVehLSdOyb9vNV8SzwxCgxtMR3Ru+IC9U2HArQ78MRh9HInog+u3fUbmESn0czsAJd09kmsjR6ZRcI4Npg4LC9RzTPSzcJRofmSCc3ClSwUfofIsHG+tbG1OrjPW9LHqGWxpsq09L56RY9t/KBPWUgGQcL4CebAogZRGrIBVboBStsYw10nBwxI3HtHQV1mjTsYzSwlWb1EIn/sv34AjaYJwV6djqFW50/urKRD9A2z8h7O4T3SE3Tordu5gnD9zoXGdD7af+ufgD0gPSsFVPrc51BAhY9mR4M5N0Dhm7RCAkkbKDmIM3P+HmRdp+/H0udVnFYoK/qF+igqktVqPKWXUzO//ue+XJPACjWuFGJGsMiezmyHwZCjDRRsAbhCpGVf6XLnozHuQZY9sCqWsTip4CdlJi0xZY1EFdTG8lWEhh8PJ88s3kTGLQdx2QhHneoHod483sevpWDoPos2tV0ZuWI01HNdjR1XgIOlihKvp2pTxsBCWOgqrJ9V7Ui7A03sQJ94AUj/d+d4u8drSavBSp/52Ld/bOzhsT4pZWOY82Da6nEqUJSU0qboBlenDFSVfze/0+gksU2CpOyIlXJVippqXrbRUXNvLTtm5tbK0IvQuGHRkMufiRqkUY8LLxnVYHQUr9GKS0gHKFtrp/0zD7kGdZbbjpi0npuuyrEN7mKpJ/cmWjRBXBSIQbVKNZZGXskiAw9SX3NBKUvPCpnE6+gtmSoij/G2p7iFPc1liove0/ZtNg26VlA8ThVZcP7DImxKwDY7Nx4FU+p2i8x7ZTESj6X6Fv3UaO10kmqg9it+oLJIuMYXInMsVIXfiwnCE9mFJ0aU9rdHPiqM6iUeqWaRjNEt2aEqX/5tsnAfRQNqjOo04N+ixYeZat1+sJxNmINi4N2c+3Vze/zm7S88nZpOGujTopbaADewB8dF08lpntc2v/r2+nYydhfOTMt2CsNPdIdTv2rYU+7lv3iW6ks+ULvd0WEPA3anc7Gf7coyj54l66IhkopC8s7nfJvm0899SrgWE6Fweem6hcZHbJ3uiiLNHz8fRhi51+mM11MvReuXC5SswI1nK1hnXsqLvdnySKRJ4= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Sends an email with a token to an SDP user who has gone through the Forgot Password process. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx new file mode 100644 index 0000000000..665d6023af --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-assets +title: "Get All Assets" +description: "Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement." +sidebar_label: "Get All Assets" +hide_title: true +hide_table_of_contents: true +api: eJzVV11z2jgU/SsaPW1nbOzwkez4jZYkzTabpgtpZpsyO7J9wSqypJWuoZThv+9INgQS2vRjO7PLA9jS1dE5V9I9YkWRTS1N7uhrM2WSf2LIlaTjgOZgM8O1f03oGWBWgCVYABHcIlETwuaMC5YKIMxaQEtQEa10JRiCD8yN0rlaSJKqj4RL33YFCzLgNq2MhRIkkolQixa5UgiJD1A7PEhZWSSFEjlhJGWCyQwcECOaGeRZJZipJ3dzVxYIx7o/35miRQOqNBgPeZHThJ4D9oXoe9Y0oAasVtKCpcmKtuPY/ezL79+L3gzKlESQ6GKZ1oJnHj76YN2AFbVZASVzT7jUQBPKjGFLGlCOUNqddpV+gAxpQLVxJJHXNHi+E2PRcDmlAYWPrNTCNU0mDLJu2gm7x2kcdvO0G7Ju1g2Ps04v/jXunZzEPbp2NHM4hPRAn8+hj92d5GY4eOFAuLUVmK+FqaMJy3MD1u4Bnj9/PuieXJwdX96+Ork++X1w+nb44vaPk8H1ze3bztWfncHozenbs8vuVX/U7b952Xl3eXl22a+VGGAI+V8MDxGZKFO6HpozhBB5ua+kHbc7YdwO487oKE66vaR39M6BVjr/90FzEPCDoMcNaK8BXT9M9agAMkQQ9ydgu5GQo0fyq0HX7hPQbnz0eFvfSFZhoQz/BPl3bOnPbF0wRh3YLGunEg37is1vkWG1GyerMgXjIEqwlk0PbOla5jaPWxr0SiHZk3nPYjNPNz7aQX444mcC10vTebw0Z8qkPM9B/vx1OazunsBXBHgdFrLKcFzS5G5FnwMzYPoVFjS5G6/HLg1YKFd9p+C5MddFo21BtWDmYKwfXRlBE0rdsA3q0Kmshexi39dXzV/B8lFJ+u125IwhJxNlfO5BYpPAgFg+lZCTBceCMElOh+3eMdGGz52DzWDpnEOy0h+mZtlqfwwod+AFsNxtS1ci5UR5Ns3h25zNPa+7Fgzd8Sf96wsaUCe3ZtluHbVil4OqLJlZPjjfhzF+GQ6unxFuCSOolCBpxQV6mbsW6l25ZDMgaSVmRLOlQ/GtjEyNqrRzNQMZ19x3qDkYb8Sb2SXgQplZ61Fq/3sU38v3clRw66eURGmQoVWVyYBoo9yhIFgw51ANFSUJKg9/AC4gTOa+wxkjyZgkKZCJqmTuBxbuRQi14HJKDGhlOSrDwSaOR0jubI0XNb/h7qUk1E2SwpRlM5D5+JcCUdskiqYciyptZaqMvgnhWUK8+C2VJXGVg3FZ39uaMK+Ky4lhFk2VYWUagW5d8Kk1bX2DsonxhetHpG0gntK2gJRsYr9bTQGiDLOCGbRfpLwTF6EBiErGZdQ0fFHPUzJegiiJB/L8c9BCLd32elIJqayLm1UpGAkItvXelSkEU9rXkyGYOc9cXdrIami2lJlGPihUk9A2YQEVPANpfb3fFEDNsgJI29epuj47rCSKFotFi/lej9YMtdHlxYvTq+Fp2G7FrQJL4eukVhZLJneAzwFJXwiyvY7vVZnVvfv97/+ENE6F8BEjLRiX/gbqUrlq7PCONnY4DmihLLqW1SplFm6MWK9d898VOIO4Gwd0zgx30r3DBhs3cv45A+ch/SwD7bx2zkRVe+SD28OeL5+fjmhA2SNbnXlbbR4c+qZLLnewHxpkTcF9r4PPDFmtatNer7fxdddnRzQSN9Eug+P1ev0PXdMlYQ== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx new file mode 100644 index 0000000000..a2e14c816f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-roles +title: "Get All Roles" +description: "Fetches available SDP roles, such as owner, financial controller, business user, and developer." +sidebar_label: "Get All Roles" +hide_title: true +hide_table_of_contents: true +api: eJzNVsFy2zYQ/ZWdPSUzlOi4aQ+8uY2TpukknsieHhRNByRXIiIQYBdLKapG/95ZiLLl2ImbNun0IorYxcN7C2IftihmEbGY4lUkjjjLsKZYse3EBo8FPiepGopgVsY6UzqCybML4OAoZhD7qgETIaw9cQZz642vrHFQBS8cnNPRso/WU4zQR301voaaVuRCRzzGDPVpdLWXNRb4guTMubeKjxkyxS74SBGLLZ6enOjjNr83rzBDXY68aNR0nbNVwsvfR03ZYqwaao3+k01HWGAo31MlmGHHurrY/QJJ1VGaYTYbzNAKtcfjUdj6Be52uwzpg2k7R0fTp3gtDzO8rsnvNzXBDA9FUf1aPJx9ZTCFe3ry5G7BrrzppQls/6T665WOmAPfUyLVJGziwwhRjPTHeb5vS2KFaClGs6B7d+B21QYa+DoI3JJ5w+KwztOTJ0fIH8/4lsD7rfnu7tY8D1zauib/7fflfnU3BP5GQtIRqerZygaL6RZ/JMPEZ700WExnu5mWQZqgx3pBiZvREObaCWLOwyGPxCvtPQrRs8MCUeceoCcqda/meIGbU9rZV6TH9HYxf/ntUjtODfPAaQPIy1DFDKJdeKphbaUB4+F8cvr9D9CxXRkhWNJG+5I3rcKfDXuXZmozUPCGTK3f5k7f5yGxsaK1womQc4bhmY1lz5Fa8gIXzsg8cAtnFy8xQ5W7Z3k6fjI+0Rr0bWt4gwVeNgSfx3g0eXbxGGwEAxKCg7K3TpLMwAvjB6oRJEBrlgRl75bQmY2ipFEDCw59B2EOTJXtbAqEFTHI0eqeZB14Ob5T2v8fxXf+nb9sbExLeggd+VEMPVcEHQc9GSCNEQ3vqQQPEhL8PXB7k9JAFWqCyngoCeah93Wa2OiLc2Ft/QKYuhCtBLYUC+Uxgmnc4+XDc1QfFWnUDUUalaZakq9njxqRLhZ5vrDS9OW4Cm3+RQiPC0jir6lskgEbqxVuCIa0pMr6OZso3FfS8yBQ90Ue2tPxFyibc+pe/0baAeIhbWsq4ZD7j9U05NpR1RiW+FnKR3m5MFHeGuvzYeCzeh6S8TO5FhJQ4l9T58JGP68HlYCa/wKWfUnsSSiO32mbEuI2vplPiFe20r50kDXQHAde5ClpFOajOKRl6GxFPqamf2iAnakagtPUp/b9WbGKPF+v12OTogltmBrzX1/+dP56cj46HZ+MG2ld6pNdiNIafwT8ggTOnIPDZe9Wk9neOOB/cAcdrETog+SdM9brtSNp3Q6mNcVkWnonTXRnGTYhiga229JEumK32+nwHz1pI5/OMlwZtso32WF2cA31uSVprz+rKurUGFfG9Xsv+8jqb5noi/NLzNDcsb9lsr/hj6IfQn5zhP2xke0p6O8u+8SU7XZvrrvddf4+9MkZg8RDthZSL6N/AR1/ZDM= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches available SDP roles, such as owner, financial controller, business user, and developer. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx new file mode 100644 index 0000000000..14f3d5f511 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-tenants +title: "Get All Tenants" +description: "Get All Tenants" +sidebar_label: "Get All Tenants" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Get All Tenants + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx new file mode 100644 index 0000000000..8a81b8775c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-users +title: "Get All Users" +description: "Fetches all SDP users within the organization, whether they are active yet or not." +sidebar_label: "Get All Users" +hide_title: true +hide_table_of_contents: true +api: eJzNV99v2zYQ/lcIPrWA5F+x48RPy5a06zZ0wZJiD2lQnKSTxZoiVfJk1zX0vw9HyY6dpMnaocBeJFs8fvy+O/I+aSMJ5l7ObuQ7j87L20hm6FOnKlLWyJl8hZQW6AVoLa7OL0XNYWKlqFBGUIHCujkY9QU4PhKrAqlAxyNrAQ4FpKSWKNZIwjphLPVkJG2FLkx4k8mZfI10pnW7fiQd+soaj17ONnI0GPDtkNJfSLUzXoCoYK4MEGZCK0/C5oJRxDkSKM1gqTWEhhgDqkqrNKza/+gZaCN9WmAJ/IvWFcqZBOdgLSOpCMtAwOGnWjnMOENYgtIykrlynj4YKJEjM774D61OGUkNd4POagw57eBt8hFTkpGsHKeAVKtSZXsUPDll5jKS+BnKSvOj4fToOMHsKJ4mp6N4PD0exCd5PoonwzwZnCAOpqe5bA6IPYn3my0Mx99RfTL83CJHt/IfRDZbmU9k8d6MZj9jd8OJtRrBhPHd6jdteuQUxunxZDKJh/n0KB6fJkcxjIbDOD+dJNkoOcH0dHBYm07ngcygZSelvf8Urr3UlruKzW5khkvUXCQu3x5bcjU2UUdqko+zfJhlcXoyzuPxyQjikzFk8WQ8zPNsfIzTCTwgBQa/l1SuDJhUgf7AG9tZrR/wy0F7bHjLKQrV4xPBRdr/72XTcJbHg+HD4/XOQE2FdeoLZt9xhL6yx9E56x7dPfiZHPjnETwB1ftxpi6TVluJ3sP8kW3cytxtph0N+daSOJB5x2K7zngw3EO+P+NHArelOXpYmlfWJSrL0Pz4ujyu7o7AvwgIOjymtVO0Dif5ZwSH7qymQs5ubnmXlkiF5aM0x8ANeEj2684MPLol/+LJtePTIXnWFvSKRbY69qHvGlGlfkfuRIdp/O3va/axTOTWhdSjoS5/kfBqbjALDifAiIur0eRYVE4tgVAscM3+1Z3bs65qYSb3OwYvEDLeldzkTG4Dm+7oXRFqDU6cK5/UzmOJhsSlBsqtK8XZ5RsZSZbbshz1hj1uab4uS3BrOZPXBYqnMV5cnV++FIq9kazVIqmVpiBz36a9ICtKWKBIar0QFawZJTwFMXe2rthKHaaqUmHALltL361ukFbWLXoPUvv/o/jevDfXhfJhSSNshSb2tnYpispZPhOCCiAebqlYI8gG+EfgIgEmCwOpzVCkYESCIre1ycLEgv9obVfKzIXDynpF1in0M+YRixvf4vW7e5ztJSmuuiTFCaQLNNnti4Ko8rN+f66oqBP2g/43IbyciSB+R2UtuHGA4gwXKLqwoEqZ3IEnV6dUu04g14Weq2nvG5TlLvSt/yJtC/GcthUmYhv73WoK1GWcFuDIP0l5L65PDrFfgjL97sGTep6T8SvqUgSgwD/DSts1b69nlYjac9yiTtAZJPS999ymCF3p/8yv0C1Vyn1pK6uj2bNu3g9Bsc1j34VFUqsUjQ/tftsAK0gLFKPQp9r+zFizfn+1WvUgjAa0bqrv//Hml4u3VxfxqDfoFVTq0Ccr66kEswf8GkmcaS22HwUHTWZz530/5vOkcw/Cz9SvNKjwshzkbTqHupH19nOpsJ74wWaTgMd3TjcNP/5UI/fsm9tILsEpSMLL7G0TbQ2CLW2B3NbP0hQrdr8l6Lq1rXt+fuCUry+uZSThgdMtgtN1Pxh9O2TWe9j3PaulwFd+q310ymbT+mjT7OLboa/O6CRuozmBt03T/AOX6wb/ +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all SDP users within the organization, whether they are active yet or not. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx new file mode 100644 index 0000000000..a5fbf25f29 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-all-wallets +title: "Get All Wallets" +description: "Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets." +sidebar_label: "Get All Wallets" +hide_title: true +hide_table_of_contents: true +api: eJztV99v2zYQ/lcIPrWAZDtufnR689a06za0AZKuwNIgOElnizVFcuTJrmvofx+OkmMnTpO2Q4E9LA+xTd59/L4jdR+1lgSzILNL+R60RgryKpElhsIrR8oamcmXSEWFQVCFQqtAwk4FLEBpyDWKZUwTztuFKtEHQVY46xoNhDGl9NaVdmlEbj8JZeLYG1yKFyrkjQ9YoyEx1XY5EBcVCutnYNRn4MVFqGyjS1FY60tlGHGpqIoQd9YVOU6tRxFQY0HKzAQIB55U0Wjwe9FT6wWIcodCt7oyihToTqfHKYMFAVqL8xdnaWFrB6S2ssNAJtI69JHu61Jm8hXSROtNMRPpMThrAgaZreV4NOKP2/Wd3FR1eZNVWENoiIPBOa2KuMDwY+CMtQxFhTXwN1o5lJkE72ElE6kI67AzbvOPWJBMpPNMk1THQ5U7MYG8MjOZSPwEtdM8dAQl/ITlUXp4dATp4cnzcQojxPTgeHRyfIKjEvMD2SbSQI0PI/2pcg+GxCQEFYhzKlujg9kjeRWRC9lwuOjywblBYWvOD+iuD0bXhVZo6Lq0NSjzMBY4lZa4GOxjlYjuWiszv96r6FdzGobSMTzjFR6BsLwGug9pan3NM7IEwpRUjbfgx6Pxs3R0kj47uBiPsqNRdng0OD58/hcDN678EcBtIklRDOpOrGz5L5GHo4P9g/rOQEOV9eozlt9xRr9wFtF76/dVtayAPHzFaQ4E1OzGmabO0TNEjSHce9Y6mTc1uqEh31gSt2RuWWzWORwd7CDfzfiRwN3WPNvfmpfW56os0fz4fblf3ZbAVwREHQGLxitayexyLX9G8OgnDVUyu7xqr7gMVFluqDOM3ICn5HDbIgP6BfoQ0xuvZSYl521gz1lmp2QXfNsxnfoduWXeLuRv7y9EE7DsHKKhCg31FUxEUDODZedBYMTp+fjoWDivFuxMc1yxG3QtUU76fYuZ3JgZvEIo+Vy2/HtqI5v+8Tsn1GxUt1zxTAPxsy0mZ69lIllux3I8OBiMuAZNXYNfyUyyeT2M8eT8xdlToYIAQdZqkTdKU5S5a7nRv2uYo8gbPRcOVowSR0HMvG0cG5XHQjkVJ+wCfTTkzeoGaWn9fLBX2v8exQ/mg7moVIhLGmEdmjTYxhfINwV+KgRVQDzdUbFGkI3w98AlAkwZJwpboijAiBzF1DamjIkV/9DaLvl24tHZoMh6hSFjHqm4DB3esP9Md68nqeuLlOZQzNGUV082djRTVDV5Z0XfgvA0E1H8DZWV4NYBynR3vT4sqlJm6iGQbwpqfC+Q94Ue29PBNyib+ti5/o20DcRj2paYi03sd6upUNdpUYGn8CDlnbghecQhX1mG/cCDeh6T8SvqWkSgyL9Ep+2Kj9ejSkQTOG7e5OgNEobBB25ThL4Ob6fn6Beq2L3z9DQH1s+GMSi10zT0YYnUqkATYsPfNEAHRYViHPtU158ZKxsOl8vlAOJsROtTw/CP17+cvjk/TceD0aCiWsc+6WygGswO8CskMdFabK/Yt9rMeut//7+5PPLm0lsh4ScaOs336Lbfq3VvuJdyuX0trGwgHlqvcwj4zuu25eG/G2QLurxK5AK84tpGE082fscOPUd2qUlRoGM7X4BuOhe+c0G5Zf2vTi9kImHPuOfRuPsvjL6ZMqsd7LsW3FHg/23yhZT1ursWtO1NfDf1xYxe4iaaS3jVtu0/QGNoHg== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx new file mode 100644 index 0000000000..e57bc2e521 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: get-api-key +title: "Get API Key Details" +description: "Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons." +sidebar_label: "Get API Key Details" +hide_title: true +hide_table_of_contents: true +api: eJzVWFFv2zYQ/isEn9pCttKs24PesiZrsxZdkKToQxoElHi22EikyjvG8Qz99+EoKVFsN2m6BVifbIu87+47nu8+aiVJzVFmZ3Lv6FC8gyXK80RqwMKbhoyzMpPHQN7AFaBQAhsozMwUgrdfwlLkS2EIxeH+VBwDBW9RUAk3yxpImQqFsUUVtLFz0YCvDaJxFoWyWnhA8qZgX5iIPJDQDlBYR70RREBVUFBVxLxSVQAxc14gFMEbWgoPCp3FqUyka8ArRjvUMpNvgPaODt/BUiayUV7VQOCZ70paVYPMpNEykYZ5NopKuU7+tAQRrPkaQBgNlszMgBduNmYpE+nhazAetMzIB0gkFiXUSmYrScuG3TBJO5dte86bsXEWAXl9d2eHP+56HdLn+9RrgaEoAHEWqor9Fc4SWGJL1TSVKSLl9Auy+WrTvcu/QEGcBM8JItM5N3ozxPUMfNxgz6kf02+TPpkPQb0NtbITD0qrvALBRtvARiUywlTeK6ZuCGrcktl1Z+8NEh/UuODmXlkCLcgJKg2OnaqqcgvQF6b5L5z2aOLwSCitPSACCufF68P9Y+GVnQOyMVw3xi8vtKKt2Zs5XyuSmeQNEzI1bKT0gBHi4QvetF6ZbSILD4pAXyj6QRefSrB3/tQLhaJHHTvIl99RTAheLEo32K8HGxr9BMFWCkn00GMvj4p4DLIeNq9dBHyiwJGjbhNJhirougN3tLblh692Xm72j49WBSqdN3+DvtstXqQvHtMgwHvnt9Y9XJNX+DACkqIw3mdDnYNniBoQ1XxL5XfM4FrVTQWjMOQHR+IOs9soBj+vdl6OkNctOuRtLfOpvMUj+mXziP5wPjdag32S89mevlufj0nDHatI59W3JxbP7ZkL9mctu0eWx0B1W2W8GlfGMaALvoBRggZ3g4qJquR3UB78XqBSZmfnrBZqoNKxlplDpMkqJZOpaszkEpaYroxuJaP4q0HaBF/JTEq2HsBPOPNdasYubgddYzqVdPdY//x0GvtPHNNc2SwCutQkAs3cghYLQ6VQVhyc7P76m2i8ueJBdAlLlmO9ytrr/xTRchBcJSjNR9Ly75mL0fQt7oSgqpQX+wbz4BFqsCSOKkXcSblFykQy3S7K3enL6Q7nINS18stett2P8exk/+i5MCxqyblK5MFUFGk6P1e2DxVZKtTqEkQeqkvRqCWjxKdKzL0LDU9cD4VpTFxwV9DpmcG7BVo4fzndqiz/XyF+tp/tKcsidmmFa8BO+qptvOO/maBSES93oTgryDWD5liDS6K854XCaRCFsiKHrvSjYck/WCbxrcBD49CQ8wYw4zgm4gw7vLT/nOhRkiZNn6RJropLsPr8WUnUYJamc0NlyKeFq9NHITzPRCR/E8pScANTpr/S9NsiK2NnXiH5UFDwPcFByN57ptNHMJv52D//DbUB4iFuC8jFsPeH2ZRQ1ZOiVJ7w3pBH+1LyAGmtjE37B/fyeYjGW6hqEYFi/Bqayi25vB5kIgLyvsuQg7dAgNPP3KYIfI1/zU7AX5mC+9JAqw9z6vw8jZsmbjbBflsiK1OAxTgthgbYqKIEsRv7VNefGStL08ViMVVxNaL1ppi+P3x98OHkYLI73ZmWVFexTzYOqVZ2BPwGSPR3d7Hf3bbXW83qdhL/ZJf5fjgRXFPaVMrYqN45e6t+EJ7JYRDKRGZG8+uL0iHxymqVK4SPvmpbfvw1AM+Gs/NEXilv+Aoap6U2yN+1zGaqQrgnec+O+2v+c/Gd7wW2EhhGruUdMQE8rRPJJvGFRHveJsN05Ai7hb2igIZGJhs65Y5ceHNwKhOpNsZ8F1j/hdG3hrM+sLsQuuvON0xWq05EtO3N/m7pmxY9xRvmzKBt238AeweBYw== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx new file mode 100644 index 0000000000..c909d70015 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx @@ -0,0 +1,68 @@ +--- +id: get-bridge-integration +title: "Get Bridge Integration Status" +description: "Retrieves the current Bridge integration status and information for the organization." +sidebar_label: "Get Bridge Integration Status" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves the current Bridge integration status and information for the organization. +Returns live data from the Bridge API including KYC status and virtual account details. + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx new file mode 100644 index 0000000000..e859650e6b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-circle-balances +title: "Get Organization (Circle) Balances" +description: "ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`." +sidebar_label: "Get Organization (Circle) Balances" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx new file mode 100644 index 0000000000..c60bdbc909 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-info +title: "Get Organization Info" +description: "This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account." +sidebar_label: "Get Organization Info" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx new file mode 100644 index 0000000000..0dfb46575b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-organization-logo +title: "Retrieve Organization Logo" +description: "Retrieves the logo of the organization for display in the UI navbar." +sidebar_label: "Retrieve Organization Logo" +hide_title: true +hide_table_of_contents: true +api: eJzNVcFu20YQ/ZXBnBKAEl0D7YE3tzFSN0FtVA56sHVYkiNyq+XudnYoVRX078WsKEdJUBtpeygvJHeGb98bku/tUUyXsHrAW+6Mt38ascHjssCWUsM25tsKfyFhSxtKID2BC12AsMrX4ew5WAWG1qbozA6sz/UPN+DNpjY8xwJDJM6dNy1W+JbkfNf3oQtYIFOKwSdKWO3x8uJCT5+SuX2HBTbBC3nRqonR2SZjlKERklkSJjNoLTU9DUavZBcJK0zC1ndY4CrwYAQrrK03vMODHgUOJH1Qdh0JFhiN9FhheS6zdEemiXhDrNPb48gOK8TDUpebka3sFrr1Ucb3ZJj4alSsJyYm2ne0w89H/dOv9zAmavMwzSg9eZnUFZBs56mFrZUejIfrxeW330FkuzFCsKadDtmbQeF1t8CnN1qgVfCeTEuMKtT6VchsrDjtXwg5Zxje2FSPnGggL3DnjOig4OruBgtUuUeWl/Nv5hc6g3EYdHoV3vcEz2O8Wry5ew02gQEJwUE9WidZ5vl0E0iAwawJ6tGtIZqdouRVAx2HMeqnx9TYaHMhbIjzp3ba3ZNsA6/nX4z2/0fx0T/6+96mvKWHEMnPUhi5IYgcfqNGQHojWj5SCR4kxNPP9xlcAca3udCElqAxHmqCVRh9mx/s9ca5sLW+A6YYkpXAllKlPGbwkI545XSetWdDmsVpSLPaNGvy7fJVLxJTVZadlX6s500Yyq9CeF1BFv9EZQf6Wxvrjz4ztWVV1q/YJOGxkZEngfpe5KV3Ov8KZSvOrvJvpJ0gXtK2pRpOvf9YTU9umDW9YUnPUj7rK4WJysFYX04Lz+p5ScaP5AbIQEfzp+jCTj+vF5XAmLRvPdbEnoTS/FFtSoiHdLtaEG9so750kjXRnAfuytw0C6tZmtoKdLYhn0gd7WSA0TQ9wWX2qaM/K1ZVltvtdm5yNaNNj6by/c0P1z8vrmeX84t5L4PLPhlDksH4M+BTGMJ5esEUX584zv5jTP1XETqFh9AfUkZnrMfDpG4/hdUDngPqaJTZssA+JNHyfl+bRB/YHQ66/PtIauAPywI3hq2pNQ4elofilBaab2tSj79qGooaixvjxmOG/U30ahA+Renb63s8HP4CJa4Ftw== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves the logo of the organization for display in the UI navbar. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx new file mode 100644 index 0000000000..408d73998a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-profile +title: "Get Profile" +description: "Fetches the individual information of the logged in user to populate the Profile page." +sidebar_label: "Get Profile" +hide_title: true +hide_table_of_contents: true +api: eJzNVlFv4zYM/iuCnu4Ax+4KbA9+Wrd2XW/DViwd9pAGg2wzthpZ0ig6uVzg/z5QttOkXdvdhgHLQ+KIH6nvo2hSe0mqDjJfyFt0K21ALhNZQShRe9LOylx+B1Q2EAQ1ILSt9EZXnTJC25XDVjFIuFW0GlfXUAltRRcABTnhne+MIojmcQfhVQ2pTKTzgNH/ppK5vAaaKCQSIXhnAwSZ7+X52Rn/nLL6BahDG4ad/MGxdJbAEuOV90aXcYPsIbDTXoaygVbxE+08yFy64gFKkon0yHRID1uuNAb63aoWjrCBUNtaJhI+qtYbXvqgLMg+kUb9Lfili2holTavIx8qB18zLHVYsw86M1AbfRSi2slEaoI2PI/V94l0WCurP8UMvECOYYdNT2UP2k6kRf4H+k84HiguZAUbMJxOLqa/YCHnBMYoFBe6Ym2kKYqezr/nTyIDlB1q2sl8sZffgELAi44amS+W/TKRLVDjuHJqiAeo2CSzx1oIgBvAEN07ZMaS/aawc66FIafHwR8z7PUPwCk+LbwPv91x0VVi5VCojhqwNJZZIoKuLVRiq6kRyoqr+fmXXwmPesPvwBp2XPZjDng3h2Ni+CA5eAOqAozHwu9XZDMmZ8rZpQ5FhwFasCRujSJ+DcXF7Y1MJMsdWJ6nX6RnnIOubRXuZC7vGhCvx3g3v7x9L3QQSpBzRhSdNhRlHp9h4Pe6VWsQRWfWwqsdR4mrStToOs/tAKHUXkeD23AvONrdAm0drtNnqf3/Uby39/au0SFuaYXzYGfBdVgC9xxuHYIaRWweqDgryPmpIT4Jlwhlq2goXQWiVFYUIFaus1V0bPiPMW6rbS0QvAuaHGoIOfOYiUUY4mXj76w6StLMj0maFapcg62W7xoiH/IsqzU1XZGWrs0+K8L7XETxByo7wf1VaTtMgxEWVWm7QhUIu5I6HAXyudBbZ5p+hrIVxvb+b6RNId7StoVCTNh/rKYB087KRiGFVykf4TJCgKxV2mbjwqt63pLxPZhWxECRfwXeuB2X15tKRBcYt+4KQAsEIb3nNkWAbfh5NQfc6JL70iRrpMmzIIugmVvNwghLpNEl2BCnzNQAvSobEOexTw39mWPlWbbdblMVrTHa6BqyH2++vfppfjU7T8/ShloT+6R3gVpljwJfA4nHq8RJi9k/XhD+u3vNOD8IPlLmjdKWZ1wUuB+n1EL6x9tW4wLx0n5fqAC/oul7Xv6jA+7bi2UiNwq1KngKLJZ9Mg0JHmtr4NZ+UZbgeQZulOmG0fXk6nMyL6+v7mQi1bNpt47Tbnzg6JPJ7o5iP51bAwX+7pMXXPb7YZb2/QE/mF70GCVOaE7hsu/7PwGOS8iP +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches the individual information of the logged in user to populate the Profile page. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx new file mode 100644 index 0000000000..8a32c7c311 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-disbursement-receivers +title: "List All Disbursement Receivers" +description: "Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination." +sidebar_label: "List All Disbursement Receivers" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx new file mode 100644 index 0000000000..731d3661ab --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-disbursements +title: "List All Disbursements" +description: "Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement." +sidebar_label: "List All Disbursements" +hide_title: true +hide_table_of_contents: true +api: eJzVWm1z4jgS/isqfbjdrbLBvIUMVVtXzEB2ckteNjAzlZ1NscJuY11sySPJZNgU//2qZQMmEEgyma29LyGgfnm61Wq1Wrqnhk017XymPa4nmdKQgDCa3jg0AO0rnhouBe3QEzB+BJqwOCZBmZSYCIhUUyb4XwyJScQ08RUwA0GFjCKuCYgglVwYorM0lcpokrIpF5YcSYAo0KkUGggXfpwFoMmEae4TNp0qmFpCTaQgKZvnWu+4ibiwystwKtShMgVlOU4D2qEDrk03jjfNc2jKFEvAgELj76lgCdAOTdkUqEM5WvwlAzWnD/2AYJGKKPiSgUYbqUPxC1cQ0E7IYg0O1WYeo8BQqoQ6FL6msQyAdozKcNSPIGG0c0/NPEUykSUTUFZZyLLY0E5tsXA2YI1jnnCzH1wPQi6ARPKOJEzM0atZbJ0Vx2SCmE2mBASk8NzS69/HhLpXtuHLfuhdooEpPyIGVEIyDQExklhaYiIls2m0NdkERevXAK+N4mJKy3i1YSbT+0H3vzLfkIQZP8LgRHw5G5HhztB8JZwOBZEldtVedU9G1KFX/W7vmjp0OOpejfo96tDL7oeh/efdxdnloI8/3ixQA0tSqzJnLVlcrNkxM2MWGjuXe2y/EPG8CKithMAMYQqWSYBYacRgJgiYgQo5kSphpkOur6+v3bMzt9d7xTks21j3vCPXq7le/RFDJxBKdWDJP8PSXNw/yFQt1YGcccIhDlYLDuk3jXzNqF2lhtIUlILZYnbKYzflFRlwBb5FvT8JLslIKJU1iIvppk2vuhTXRjHtl6zJvyE2NOMGNebZVqOUuufhx8MkGHNtMHmUtysSgGE8xpnwpTAgDHKyNI25b/e56n81st9vg5ST/4KPLk4V7oqG58rXu+9hWgFfzc4MtIq8f+P29HPjX+td6meMQZoqmD2Fs7bNyaa58oKVCwNTm5BWvMcLhxppWLyfrHa0QEJurL7Ltd0LhwbMlH3FlGIYTdxAog/7hQe7g+FhsZAJ/iUDwgMQhocc1K69YcMrR7U3ATtutd3jdr3lNv3Wsfum0Qhcv1b3WLN1DF7YQvz5sngKBqQ8qHYj5M5R9gJj1gc+AzVWMOXa5HXVOAGtccoMJGnMzBNR+Jk2MiFLpnXOAYEVyYybos4zkiz16rw8/LNYZH+SQjXhWvxgVgVNhZzm228x/IMmxVIh3PygSSq15pMYUDQLAksayjiWd5gbVohmTHE2iUF3yP195aJU1KI/FgtyF3E/Ijwvesvj1mGoM+TTTOGeJwKUcVVy24CL24cyYi5uyRQEVqy4f8zJsHe5coqRRZmWO4P8yAXxmS42GK6JkIakCrQ1dMMDTm44y4xMmOE+i+M5YWkKIkB0xtKCCH6qbATBtcxIxGZA2LLUJneM2wyK2XQuMxIqmex2T4W8i7l/+4jddlbxV1CVPLRKEYWzxXwzzqPo8Xqnf9Y9HWB18/7ivD8+/3D2tn9Fnfzncfe8N/7UHQz6o3G317vqD4cPKHdR3KzTQxn0uxzQCHEsHHrH4hjMS7PC2r8tFrA3ELTcZqvF3Gb7uO4yD8CtHXntozZ4AUxq+9b2WtJHPlFMGNLVmmuDPJFMwB5g9vJFxqS6U63Ocn6WphVfJsivIR3XvLEfcxBmHMiEcbFfFku5G8Cssi0rAEjHGNzjPTXsAUxVHaQoHuWVaoIdkkJbZGGJwAy4htsyolwa1Ruu13YbtVHd67S8TrNVOWoe/46CszT4HoJLm86nPHQWDmVav0YMhSEDvzlpuM2jiec2g0nTZU2/6R75jZZ37LXabc/uD74tXw5l5i6CIpa2rOTDsPcOhXCtM1BPFZNTY4pVoPWGwF/evu0126cnR4NPv7Yv22e9/sfhu09X7d7lh08fG+fXjd7ot/7Hk0HzvDtqdn973/h9MDgZdFuvNPt112uMajhDnVbttWZ+W2gAMXyj0KNCaKsQuti1lw4NxDFTxIYUWQXSMubsbNg1nZ9iX+0EuVZRLheGuZaFQ2egeFiUpeMQjxZ7dXdH/fHFyfjt6dXoPXXodb97NT67OLdfLk/PqUPPu6PTi/PuYHzaW6b7EoiPJXX2ILO2eRxxbaSav7zCyzSo8aHF2AgbrdrkDbgQeKHb9ELmskat6daa7VZ70qwHLE/of/dEYHBpw5L01YJ7sU/l+9zZfWHUnD6FEolCHsP48E5XrljdECau13ARYsXXr7U3/E3ZwR5Yxsse5s6Ty4Oljgwkb61hAb9iLR9xvC3JY10cEp8pXme+D1qHWbxT0/G2opDxGIIXqMoZdxu0rUYBFiPo++drWvE+qowlMsOKp4izJx7sLESS865OVQHRkoRs4wxKjz2v4nnrAMh5XqDFSOzirnGWldS8lRY2A4XHs+foKXiWmlJQS3c91GKVPLLE6eKxkfLR2xI1vdp2A+SDYJmJpOJ/Weteqd0BSskdJYxtnxnFnrAVbGXvotu9cGhx3trVTF6UG3QrGPRcGrJh5hrFUk/Tq5UkP+T4noLzqWlsT82JVBMeBCC+/7zstm4N4AkE1g4Nfqa4mdsbnrfAFKhuZiLa+XyD/bgETCTximgKFhvDIVp92P3UoGbLa6JMxbRDKXIvhQ/R2Nyesop10ZHyX2G7S/mfT6O8AYLHapwCbA/lfnSI5lO8pcE7LsIE6Q/rrSOSKj7DJsUtzPHMXjRFu8XssXJjNAIWYHRi/S5CadEUa3JZOG50ey5jZnBLI93LU2qLOJ2jrFdqFQ99kCUJw1pqo/jcLePHYe/yJ2xOMGKkjMkk47GxZpZvCW2XJ2G3QCZZfLu+18MGDZkqmaV57vZ5yu2AnNk7hLV2AeZOqtvKznT2z4L4h/hDjIqWDRNEpiBcLTPlA0mVxLWRXyVwXUDByySZLlt2D8Q5trmEA3hqIz4TuCuEMhPB8hZq3dtSkErNjVQcdAdxuOSzzuVVi093o8BKCye5E+bfgghuflyezqfcRNkkP5k/R8JPnfwWeAVlbptzjIu8B1aQWau4CBXTRmW+yVRhIM6LOTSnlWdYFiqbv77FtKWIQ7bdwYQsaV9sTQRx4voRU0bvhVyiqxoFUMXCp1r8sNeeQ2a8hzghVpDFH0Aay7ltnR5ca5lGuttsAkqAAV35A9MU3vLqi3AIasb9cguogFmRalq1RK4MXV2QOTTmPght0/4yAabMj4DUbZ7K8zPK6lSrd3d3FWZHrbSCVVcHp+/658O+W694lcgksc2TqdQmYaIkGB8OkG4ck4dPBzayzf16M/x/eiNRbE4GvppqGmOjb1F4777YCD/TzY3wBhuM2uDA/f2Eafig4sUCf86v4XB7DLjG9vn6Tu1RV+1+RrET1S3M1y8zZizOwG7BznPUfcvDiAOgVu8yXgjt2x4+7AH35eWYnv2uYQ+M1TuKF2J59XcGe7DueAHx/VE/8c3A02Cv3jO8EPcTXgPsm+v8tcFLF+nTLu736C+/EFiDuMEv+cWeLf2dZX2MKStn7Po+pGXoW8eajQPDL31s1LGtQv/WFvrFPyh9OSTmJdkPS/YcAv5Ff+1kub/PjxGLxYo+H3qUozBxSY1eulksFv8DJt+7Aw== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx new file mode 100644 index 0000000000..76a7be61b9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-payments +title: "List All Payments" +description: "Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information." +sidebar_label: "List All Payments" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx new file mode 100644 index 0000000000..fda4b0c078 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx @@ -0,0 +1,74 @@ +--- +id: list-all-receivers +title: "List All Receivers" +description: "Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver." +sidebar_label: "List All Receivers" +hide_title: true +hide_table_of_contents: true +api: eJztWW1v2zgS/isEPxx2cZYtvzsGFndu7aRpkzaN02TTNjBoaWSxoUiVpOJ6A//3AynJlhNXzlsP+2G/xJE0M3yeITlDztxiTWYK97/gU/CA3oBU+KqCfVCepLGmguM+PgWdSK4QYQzJXAxFRHsh5TOkQ0ASviegNPIk1SApqaKzkCoE3I8F5RqpJI6F1ArFZEY5MYYR4T4KKDPyfIYEX9lGShOdqMr6BdFa0mmiQVWsmqYRKE2iuIpGxAtRTBYRcI1CopAPmlCmjMEUWWqjgkI6Cx0GN8ByeYUi0JJ6mdU5YQy0QkQp4VGiwUdzqsMNM1VcwSIGaSkc+riPj6jSA8bW/qvgmEgSgTYP/S+3mJMIcB/HZAa4gqlx6fcE5ALfdfRZCMZBK3eCb4YzD1SCj/sBYQoqWOkFMwYDISNcwfAjZsIH3NcyMV+9ECKC+7dYL2IjxpNoCtIOFpCEadyvL5eVDVgTRiOqy8ENIaAcUCjmKCJ8gSSohGmF5pQxNDWYzSoBH9Hc8SoWXMGvodBwixy+l0MfIAVEeiHSICOUKPCRFsjKIh1Kkcw2JxnFoeAwSUetIIgIZekSORy+BB2lzZLHRQbpki+nMfpBPJ3uu3x1p2pIBJv405X8glArGHgSmTgxPB3sn+EKPh0Nhpf29+BwfDY6HQ1xBe8fDQ4ORkN8tTSWSRTboVKVAllPgtldE6InJNB2Yktof+Bska2uQvjRIdGISECZMWQtIW3Cjk80VNG+kBHRfXR5eXnpHB87w+ELTl2RX8N1O45bd9zGT0hOIRByx95/IMvU1N+IphJyR+DYp8D81a4z8muCL7lCV7Gh4PrCwi28vCruPJ9K8CzU8vCXi6FASMvCZK0VkRfda2smRHkFCumTwWUoXJkR0xirjJWG65qfu6Evy7jgI0aVNqEiT1V5qsQV7AmugWujT+KYUc/mt9o3ZYzc3ocqpt/AM96NpcmGmqYQ1tl9tyyHH3proFktuP+Y1PRH81/rDPWHWXo4lnDzEM36fU0ySwfPVCnXMLPxZ6XbW1awFpqwcrF6Z2kEqbbjnax5LyvYJ7roKyIlMeuJaojUbr9Qv5xb0GtOp51mz/F90nJadeg4Pdfbc3y3CR0Ar0EgsFwLOazc4r/r7Xa70ez0Wt12uuU1SE7YZBeURMl6o9lsWSWTJMvFv/kC/mvEqkLa2FLYkqWKDbfRdNyG4zbP6m6/1e6361XXdT/jfK4m+YFuhx2joBLPA6WC5FFaAaEM/AdquEZDGo9wymePU5pRpUGCP8lOo+VK9VTJ7md/QiKRbI7zyLVHlAI98WyQKhv203j42oycylOlkl1r7ODVq2Gre7jfObp41z3pHg9H5+PXF6fd4cmni/Pm+8vm8Ozj6Hz/qPV+cNYafHzT/Hx0tH80aG/ht8Mjrlt1XVzcnYNUzby679QX3p09t+k2637Lqftuy2n1unvOtOPvOb7X7rTqwd5erwcFTvL5I7qNPWiA7zoBTDtOy2u5Tm/a6jpur9khvXa3VSeNDXfk4f+Iagsl9cnzgbSJT/bAbzutdps4rW6v4RAXwKl33G6nC64PU7tc07xbZumcTiXhGg2UokobnVBEYO9PpXqh1rHq12o3qT6J46onog3yF5ZsTl1pYIzICfF9CWrHXjt4/efgbfPPt83zd823+2+aH4+H+x/G744b74+PP78af2ieH551Rp9OPl6MhxeNt93WcaN5ejo+Kg4UQSS2HrOKApP06xaplwiYSew/2wblN/RRNvbu22BE6UkESpkcrYDrn1jbPM+sbv5oHsLmDR8Zi/mTjwhHFmZWbJiKRKfH5my9b8NZd18gweSikxzK3ym9/JMpHpgpsgv5s2/C9+OuSmPQOB1gNdQkpEoLuXj6nPwfIa+24bbRAnsjNVcrosExors22+etCWpj1Depd0ZcywVebhNPpbd/2/62eGy3Ai23fv8K9YmTRIdC0r/Af7mrEkgptuyE9PgtyVOmOzvrLys4C6vbSk7L4p1+BQO/Fxpt0FyjyMdpufWC5bsav9JwOjXN+1OzL+SU+j7wXz8v29mtATxAwPJQ4CWS6oWtDL8CIkEOEh3i/pcrc6OPQIfClJVnNkXFxHzCtWLBRIG8yUvLiWS4j7HRzA2PDdGUS9H8OqjE9B3cr2+8vThLazSmvGHcD1xnPqwgRWc8r4YTjkbjRruDYklviAZ0DQtT/cjKKYNs5kixpBIC8e0mNM9BegLK9uI4PfigIVXTRCqwdfwTRrSJImhwcogr2NBNUTaq9aprfJBEETGx0tbMy238Nh6e/I6oQgRpIRiaJpRpS1PIGeEZVGWKUxG5BjRN2PW6Q6AFImgmRRKb0okEj8bUfhA3tty4Hp2Dngt5Xd1a1v97QfzKv3LboDFDciRi4I4SifQAxVKYfZFWHqnKoJhys4jzOvMdc1lPJgRkzgPII9z0AwKRcD+vUweCMTFPK2axUFQLSUH1DQ4HfckOv7Xs1/ELTnLizEnOlHjXwP2r3/Jj/ozqMJmaI37tURZ+76fdqRWUBTLBg1Dj4RBQJmZZUR5IorRMPJ3IjKCZF71rTquPYBZIG7ueQy03sYvbHKYol30ymxBY5HghkVqVQi7I1bQEqJkjay17UcpnF403wCJkDVn8PsRMLPJmZPleS5SRu06mIDloUNWvJkyZzpD6EIxB3lCveJfMYJqSVc0KOSJwVCZWwYx6wJUN+XkAjIkXAmrYOJXGZ2OrX6vN5/MqsV+ttUxV1Y4OX4/ej0dOo+pWQx0xGydjoXREeMGwaTSiAWOo2GrciDS36yT4T9P2TtM2y34afuhazAi1lVo7PbdZlv2C11n2ypQclDYvb2+nRMEnyZZL8zrtDpjc61NFpqxQ7v/pXGzv625FdA2Ldav4hrAEbH6vPGa453Rqd4BaNYqfCO2lO7ElcL8/HeVTGq0lSFa93SfCedEGaAnOLW3ZX4v4gc3Mh0FeNVmfiHlHm7JsftMW6FN36+7GYsnYxe7lGsCVeZDUILAXi0p+AjdxK1UceB7ERdj3Lk0b15GDkakbkHtXiWt7lcj+MdbzT3xRsH33UpBCMH+Nr7aq3N6mF5XlciWffvqpRkYxlzZeuloul/8D/JOeXw== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx new file mode 100644 index 0000000000..028bca8c37 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx @@ -0,0 +1,66 @@ +--- +id: list-api-keys +title: "List API Keys" +description: "Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons." +sidebar_label: "List API Keys" +hide_title: true +hide_table_of_contents: true +api: eJzdV1Fv20YM/ivEPbWFbKdZtwe9ZW22Zi26oEnQhzQIzhJtXS3dqSQVxzP83weepERx0qTpFmCYX2zryI8feUd+p7URO2eTnpq9wwN4hys2Z4nJkTNytbjgTWo+opDDC2SwZQlqt8AVQ0ZoBXOYrkAKhKwhQi/QMNIYjgsEQm5KYbCEEChHao2jnwsecisIzoNGQ587P2/N4FkVWIAwU7yZI5bn4z4uXNiywRbUBwHns7LJMVcgaYPWwTPCLBAwZg05WQGh5eB5bBITaqQY/yA3qXnvWPYOD2Liiemd2aRrs7uzo183a3GVPXVFyYGbLEPmWVOWK5OYLHhBL+pq67p0WQw2+cLqvzacFVhZ/SWrGk1qLJFVPydY8eB5mH7BTExialLK4lpWLh/YsJDzc7O9YSfefW0QXI5e3MwhxWJodTr6ZpMYbyt8GOptU1k/IrS5nZYI6nQXWI1UOWYXPH9Hal2szXYw3QwIMxigwZys11MmAaRwPAxqyzIsMT939b8RtEODg0OweU7IjAyB4PXBm49A1s+R1Rkva0ercz27d1VvFqiyYlKjBiNxFd4q6b4iDDogzLar2XXWuZUfDPGpQD8EhaW96tdhgOnqOw4TI8GyCFf9vkW2qfMnIFtaFuigh1EexXgIsk1b184bfiLirKw3iREnJbZj453G1U9iXu28vD1ZTrxtpAjk/sL85hh5MXlx5+T4xoRAokB3Hny8FLLfMWNYrDRDO99UUySFqJDZzu84+m1meGmrusQBDfMhCNzI7JpFH+fVzssB8rZHi3zXLH2qaHGLfrq9Rb8Fmro8R/8k+3N3+a5jPqYMN7zUr1dCk56uza9oCWmvkcKkp2ebMy2HFEH1cI6RsNUlM7G1Gy1aaWSkCySO/g2VJjVGHXvcI02+zW+Ifj2Va6cNsN1Cf3w6js0SNUV3QRWrTS8BdnOPOSydFGA97B/t/vwL1OQudGoucKVq3qqY2es2MHrq8FfwAm2up3aj/2chsun68UiwLC3BG8fThhgrvWkclla07bWfTWI03Zbl7vjleEdr0FSVpZVJjV5v7sd4dvTm8Dk4BgsSQgnTxpUS0ww0t76jyqprlV0gTJtyAbVdKUp8amFOoalVHggzV7u4EC6wFd8+ukdZBlqMb5X2v0fxs//sj1XDNaSHUKMfcWgoQ6gpaK+AFFZ0uaUSPEioe4HcgkvA+naqZyFHyKyHqd5NGp9Hx0L/qKbrvZKwDuwkkENOlccITrnFm3Tfo3xQpFHdFWk0tdkCfX72rBCpOZ1M5k6KZjrOQjV5FMLzFGLyV1RWoDPEOq1wgdCZxaycn5FloSaThroE+1vXvXs6fkRmM4oj7J+k1kM8lNsSp9Db/nA2BZbVKCssCd9LeWA3EUKcVNb5Sffg3nweSuMtlhVEoMg/x7oMKz1eD2YCDavdopkieRTk8WcdU4JU8Z+zI6QLl+lc6tPqaI4DzSfRaBRmI+7MElO6DD3Hid8PwNpmBcJunFPtfFasdDJZLpdjG1cjWufKk/cHr/c/HO2Pdsc740KqMs7JOrBU1g+A4/X46t1wa8isr2Xwf/aW2MmW4KVM6tI6Hy+hWtd1p46n5kodzxJTBBZ9tl5PLeMJlZuNPv7aoOrF6VliLiw5fYeKkpv04qRyqjfS1OxlGdYqvpF6lMwtqb8h1L/vH5vE2Fsqu4gq2/1Q9H7JrwbY23rZUmivxt9wWa9bDd9sruzbpW96dCn21lrDs81m8zdb8Mig +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx new file mode 100644 index 0000000000..849fb937fd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx @@ -0,0 +1,74 @@ +--- +id: log-in +title: "Log In" +description: "Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols." +sidebar_label: "Log In" +hide_title: true +hide_table_of_contents: true +api: eJztV1tT2zgU/isaPbWdXAjby+KnDZS2pkAoSQsNZagsn9hKZEmVZIzL5L/vHNmhoWVhuruzs7OzT9bl6Ds3+XxH19SzzNHojA5Ln4PygjMvtKLnHZqC41aYMI3oUEpdOcItpCjGJKRk/PKIlA6sI14TqTMiFI58DmErZS5PNLMpqYTPCSOGOVdpm/bIofYQESblzZojRek8SYAwTyQw58mvhOfMMu5Rg9QqI0ylhBGui0SoYCfRM1IaA5YzB0SCR9kOkbr6fkmVRRIGiOHqItHS9WiHagM2QMUpjei+zmJFO9TClxKc39ZpTaNryrXyoDwOn/Sf4MfxHAqGIxQVFlIMIhRMSNqhK6cwjL42QCOqkzlwj3sWVXoBDk83J6LrlZjzVqiMLtcw7tq0wJnxPGcXXi9A/SjzffomKEZm2hILO8Ojyc6bIblkUqTB9x45vlkNgEQ4snKMlEqCcyGtn1/G4+H2/u7F8W4r/5lwrWYiK5so4kEHPlwDW0KPLpcdClesMBLW/KVznatUw2847XFdrActokXtgFvwdLlcLjtrIZ4x6SCsOKOVa2K4ubGBn9sOj97SznremDGyvdz9udPqdhLvT9IfxPg711opCvVenrzmYiT2Xr3/Gg8ORexidfyM78TP44U5/bCzt9WDem/ANz/U8dy8iAu5iOdapKeHkouBme7ELi4++I8n0uH69GSQs5OrYfOtyo+bWz4WleDFlpueHoiR9C/i4lmenLxHpZP0dFtyNTV8c6uO1SCdjSsxPc2reK6vDud8MJp8rEeTd7/M3vWeTudb9fYpz7uifPXxVXfBL3bzN0dXc1OZC8gORvvJ6PJpMn07Ghy8uuTFbjZ9diBP3wwuBrPpLHt/xQ63+cFOenzw/OD1+MtbzavXavh/ZO6JDMbm6V03dpul5LipO3/f1QVrtb2zhMCVt8w9jOA88+W6XFNJEaIA51gGd/0Z3//2jRk0VqHorNGIo+umrJQ93dhYg785hmSjWAFE2xvioP+wrqDuqst1ChmobssU3USndRflaURx3KgC5YRWSLDXdAE1je492aGXTJY3CMtztMvnGkui0eFaGOZzGtG+1JlAonJgL8E2CkqLlTUcc8BLK3w9xmvS5HEbmAWLNL+WL2bEW6h/YIu9kwn6nwbCYLc6gw5xIlOw4nRFdsebz54TY8Ul80AWUCOrtoFAbdqKr01P0aECwXNgKd6fJc5nOlgjPOaOjj1IySx5KVxSWgcFKE+OJPMzbQsyPIoxRGBdY+Vmb9DbwBiURcEsBneCnce9GI/GL48eI0kx4rWWJCmF9MFNbTOmWlNDQ1OwBZCklAtiWI0oYZWRzOrSYONhgQsjwoa+BNv0Pa12Bb7SdtH7kYj/dSZ+Up/UJBcuqFREG1Bdp0vLgRirsSYQnzOP240pGru8AH8HXNNg4Qbec8KZwp5upkuVhoM5TrCXFCojFox2wmsrwEVoR5ecuQav33676VqQuqYNUjdhfAEqPX+Ue29c1O9nwudlgq1E/6cQHkckOH9jSo0NjWdCNR1PKxa8EmpmmfO25L60rYOYF/9QTns/4dnMhsr/V1xbQTzkWwUJWcn+aW9ykEUXG3Xv7jV5Ta7vLUC/YEL124V7/XnIjTcgi/BUaP6SFIzUNV6vBz0hpUO5RZmAVeDB9T5hmfJgCzeajcFeCo51aeVWa2ZP26wfhLp61nWtWIdKwUG5QEKrAmgYz4FshjrV1GfEivr9qqp6LOwGtPao6+/HO7uH493uZm+jl/tChjqJxb9gag14X2ckvFRuVZe1l8p/9sHWMpeHK983kgmFnUgI7XXLjme0YcfzDs2RNaMzen2dMAfvrVwucflLCcgXZ+fIuFawBNnn7HzZWZHTN77eaQLanaDabwSNz8BlZyU05ByMX9v+oWW7xeVHo/GEdhqSj65poVM8Y1mFL09WBRJfLn8HWQuC8g== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx new file mode 100644 index 0000000000..9ce2148264 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/organization.tag.mdx @@ -0,0 +1,20 @@ +--- +id: organization +title: "Organization" +description: "Organization" +custom_edit_url: null +--- + + + +Organization endpoints manage the process of getting and updating organizational profile information. The organization's profile has basic information set at the time of SDP deployment. It can be modified by the Owner. Organizations can also manage their preferences, like which assets to use, through these endpoints. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx new file mode 100644 index 0000000000..68f52bd365 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx @@ -0,0 +1,74 @@ +--- +id: patch-organization-circle +title: "Circle Account Setup" +description: "Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time." +sidebar_label: "Circle Account Setup" +hide_title: true +hide_table_of_contents: true +api: eJztV1Fz2zYM/is4PuzaO9nOctse/JYmuTXbrs3V6e0h9fUgCbJYU6RKgnE1n//7DpRsa2mWtFsf9jA/2DIJgPgA8AO0VYyroOa36rVfodV/IGtn1TJTJYXC6zb9nau3bYlMAbgmONe+MASFs5VeRZ80oHI+bbqRmSm8tqYDLAoXLYPbWPIBarwjaMk3OgTRZAelA651mMIrxzQHbZOpSvvAwLq5d1YGaAxUmkwZAD1Bg7ZEdr7LII8MWDF50Aw6QE5kD9pUAjIYwsDgbEEZdC5CgRY8tQYLAoSg7cpQb12kMTkwVZlyLfXnX5Vqrq6Ri3ocsz4qKlOePkYK/MKVnZpv78Xxwdixg5wgphCXKlOFs0yWRRvb1ugiic0+BDGxVaGoqUF54q4lNVcu/0AFq0y1XpxkTaHX1e/X1I0EA3ttV+p+cm+OST27voI1dbDRXI+SFMTH69eLG/gOfr68AfZoQ0U+qF2mNmgM8XtdftlJVxfgqnEhbdAQQ+VdA5uaPPXJj7YMsNHGSGyChGMnnz6+2lOp5uwjpYXQOht60KcnJ18Y9SHeEGJRUAhVNKb7dsFvKARc0UMhoU/YtIae8KuHu8vUDw8heoElvOkL7dv5TN47/3QSL4hRmwCYu8gpWb3iTqCxx/DkSQnXIQyHg9WVvUOjS9C2jazG5tJ9fF85p+bHZ7ngh2rIhvUc/UEmRw+WqAzDFUML2jKtyA/R3WUqUBG95k7Nb7fqBaEnfxa5VvPb5W6ZqU+TwpW0IjsZ7vUkd2U3sdgIPHnu/SSb7kmyki7do5qZukMTDxbkoIa4dsIsrTCLRAzFCzUbM+qsSBUz6StGiff+Tq6hHBu9UXOVjO1BLSTzfXLH0A7pwVb/St1nGf7l9xuIgcrE6hi5JstDUWUQ9MpS2TMEWrhcnP74E7Re3yGTcIdw5RAeOc35fVPJlBbjNWGZEpApKdA3R7q8PFbEgbuORTiimf3iTkxWLgHSnK7UgskY9HChQx59oIYsw7VBrpxvhN4k9uRDD/R0+v30RMIYmwZ9NzDU4zaeLS6un0vpIbBzBvKoDadIjTOVSq7BNUEezRpa7MRKWkVYeRdbYUFPhW512nB31HfQ/emWeOP8evogif63XHxn39mbWod0pAXXkp0EF31B0HonDABcY9+Qkyup6bX7PnDPXAZoy7QhFyj155ygctGWSVG6gzPGbbRdSed2QbPzmsJc/JjAbejtzYbfSTkK0qQdgjTJsViTLZfPauY2zGezleY65tPCNbOvsvB8Dgn8wZVOGJ1R235eGsQSKm0rj4F9LDj6AeB+dHo0p9OvQFb51A/+DbS9iaewbSiHvew/RlOTaSZFjZ7Doy6P5GbsiWYNajsbFh7F8xSMl2QaSIaS/yW1xnVSXk8igSgTI6xjTt4SU5i+E6Zj8k14XS3I3+lCeGkPa3Bz6vxqloQmrpqEQSxTRhdkQ6LAPYe2WNQEp4mneooXW/PZbLPZTDHtJmuDapj9dnV++WpxOTmdnkxrbkyi2tYFbtCODO8nvmE6XxDH9j7XbI+jxf+vANm+azJ94llrUFvpQCkn26Fd36oxehnN/tKwl5mqXWCR225zDPTWm91Olj9Gkv5zu5TRwGvMpZvdLnfZvl8eB4vzPiWTG/HmOEl8Nvntsr3GWVFQy4/KjieQ67Ob85cq62cTmWVdKUoeN/J6gxuZMuR9iPuJZ9uvbZVBu4pp6FW9USk8/GziWKeJY3gQWPst241cvD879EjkW3A9qLLd9vPMbneQ77f+VmOI7V5aErrc7XZ/Ai5DXfM= +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx new file mode 100644 index 0000000000..e89ad4323c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/payments.tag.mdx @@ -0,0 +1,20 @@ +--- +id: payments +title: "Payments" +description: "Payments" +custom_edit_url: null +--- + + + +Endpoints related to payments. An SDP payment is an individual payment from an organization to a receiver. Each payment is part of a disbursement and occurs on the Stellar network. Granular payment status is stored in the SDP database and can be viewed in real-time on the SDP dashboard. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx new file mode 100644 index 0000000000..7f8a1db9f8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/profile.tag.mdx @@ -0,0 +1,20 @@ +--- +id: profile +title: "Profile" +description: "Profile" +custom_edit_url: null +--- + + + +Profiles endpoints manage the process of getting and updating individual profile information. Profile information is set when the account is created and can be updated by the user on the SDP dashboard Profile page. Note: profiles never refer to receivers of funds. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx new file mode 100644 index 0000000000..5f4b0c1c4a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx @@ -0,0 +1,74 @@ +--- +id: provide-signed-challenge-transaction +title: "Provide Signed Challenge Transaction" +description: "Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable." +sidebar_label: "Provide Signed Challenge Transaction" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx new file mode 100644 index 0000000000..64d048dffd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/receivers.tag.mdx @@ -0,0 +1,23 @@ +--- +id: receivers +title: "Receivers" +description: "Receivers" +custom_edit_url: null +--- + + + +Endpoints related to receivers. A receiver is an individual receiving a payment in a disbursement. The receiver is tracked by phone number to reduce the need for personally identifiable information. Each receiver must be unique within the disbursement. + +Each receiver will have at least one wallet associated with them. The wallet public key will remain null until the receiver registers with a wallet provider and links the wallet to the SDP through SEP-24. Receivers must verify their identity through that process, which requires the SDP to store verification information on receivers like date of birth, national ID number, or personal PIN. This information can be updated by the organization through the receiver endpoints. + + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx new file mode 100644 index 0000000000..24512cebf9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx @@ -0,0 +1,66 @@ +--- +id: refresh-token +title: "Refresh Token" +description: "A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires." +sidebar_label: "Refresh Token" +hide_title: true +hide_table_of_contents: true +api: eJztV+FS2zgQfhWNfrUzTkJSaAf/AwqtaSGUhAJJM4wsr20ltiQkOcbNZKavca93T3Ij2YEALVzvrjM3N/cnjqXdT7uftPvJC2xIorE/xjuFSYEbRolhguOJhyPQVDHpXn28gwoN6vdvv2lkxAw4ghvJFGhEYgMKdbdQznhhQLfRMGUaAY+kYNyglPAoA40UxAp0yniCTAoP0UpmUlEYFDGtCmkaK6bsMqAYcAptFBjENDKKJQkoiJwT4w7u1UZLAxXcDvJIlCiEWChwc/fibWMPCwnKpRlE2MendWBDa4U9rEBLwTVo7C9wb2PDPu5TcQqmUFwjgjiUiFAKukkDe5gKboAb60WkzBo+O1NtXRdY0xRyYv+ZSgL2sQinQA32sFQ2LMPqhWu4OzNtFOMJXi49DDcklxmsWWGoDtPwHWV9dnhw9jXoHrNAB/x0i+4Fr4OZvPi8d7jdhuqwS3ufq2Aq3wR5NgumgkUXxxllXTnaC3SQfzaX55m246PzbkrOb3bqZ1lc9rZNwEpG8209ujhi/cy8CfKtNDw/s4sOo4vdjPKRpL3tKuDdKB6UbHSRlsFU3BxPabc/vKz6w0+v4k/tzdF0u9q9oGmLFQeXB60ZvdpP35/cTGUpryA56n8M+/PNcPSh3z06mNN8PxltHWUX77tX3XgUJ2c35HiXHu1Fp0evj94Nrj8IWr7jO/8z8wQzlpvN753kXRKhU7guQJt/7uiCUkI9ProPG8pbMIRlGpHQ1r2t09rR7aNRRD+70vLBnjcL44DPScYixLgsrNMdXMwgi65iIbB/99/2FAXXBVMQYa8ZD4m6tQmJQhwgskWOQkCEI8YNJKActzW73cfsnnFSmFQo9tUB/1p6/zxtWBtiinU7XuQhOOZz0Jok8L3G8wOyj4VB99K8i2K1zuZGdw35ocevBHbYGmihmKmwP17gXSAKlBU77I8ny4n1N6mwOiCFqwJJ7BzuNHrVWjV2DWoOSjuUQmXYx9i6r9AHdvtqftfXuOWRSPYBqkdVcHg+tFIYoVgoF/ydBntIs4Q3MmcP3f6gt/UaScXmxACaQWW1jJPcwu80edfq7WFmwVMgkTuk9j0WLhpmLM14YCDLiEJvmQ4LpSEHbtBJRkwsVI52TgLsYZtuHWWv3W1vWA6KPCeqwj4epoCexngxeHvy0tYWQUaIDIUFy4xLU6iE8CZUV1M5mQEKi2yGJKksihslKFGikEjESAFlkrkJMQflusVqdQ6mFGrWfkTtvy/EL/wLd5cjuyRHQgJvaVEoCkgqYWsVmZS4S04diuDICAf/HTgPER65CSoiQJRw25xiUfDIOab2JctEaS9TCqTQzAjFQPs2jhYa6xqv0zxb0RpJLdmQ1AoJnQGPJi9SY6T2O52EmbQI21TknZ9CeOnXN8PbUCpkWyJhluEUUGPmsmI8VkQbVVBTqCZBuy/muT1t/0RmsXId+e+ktoJ4LrcSQrSy/cvZpJDlLZoSZfSTIa/ZdYwC6OSE8U4z8GQ+z6XxHrIcOSAXfwQyE9XqRv90rRXa2s2KEBQH+5nwxbYpAyrX/XgAas6o7UurtJow20IlHWfUEnFLN2YezhgFrp1erBqgJDQF1HN9qu7PFsvvdMqybBM369AaV935GOztHw/2W732Rjs1eeb6pBWBnPA14ObzAK2+D+41mcWdqv+nvpAa0TJwYzoyI4zby4FjddEI5BjfF8iJh1MroP4YLxYh0XCmsuXSDl8XYCVjPPHwnChGQitA48nSW+mTVdQZWFXZoRSkFeE5yYpaNR9clO4p9kl/MMQeJo+UduaUtvlj4VdTvFoDf6iZdQz2d+n9wGWxqHV8uby1r6d+6NHkuLK2TE6Wy+UfvFR/mQ== +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx new file mode 100644 index 0000000000..65139164b3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/registration.tag.mdx @@ -0,0 +1,25 @@ +--- +id: registration +title: "Registration" +description: "Registration" +custom_edit_url: null +--- + + + +The registration endpoints guide the process for a receiver to verify their identity and link their wallet address to an SDP. The registration process only needs to happen once per receiver to link their wallet. Only SDP-compatible wallet providers can facilitate the registration process. These endpoints must be supported and hit by the wallet providers after the receiver gets the initial invite. After the wallet address is successfully linked, the payment automatically begins. + +There are two parts to the registration flow. First, the wallet must authenticate and initiate a registration flow using the Anchor Platform Endpoints defined below. Note that these endpoints are hosted on a different host than the Stellar Disursement Platform. + +The second part of the registration flow is handled by the webview that is opened within the wallet application. This webview uses the endpoints defined in the Stellar Disbursement Platfrom Endpoints section to complete the registration process. The wallet application can chose not to use the webview and intstead integrate directly with the API. + + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx new file mode 100644 index 0000000000..2e74aaa6df --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx @@ -0,0 +1,74 @@ +--- +id: request-challenge-transaction +title: "Request Challenge Transaction" +description: "Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable." +sidebar_label: "Request Challenge Transaction" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx new file mode 100644 index 0000000000..d0f8b9136b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx @@ -0,0 +1,69 @@ +--- +id: request-registration-url +title: "Request Registration URL" +description: "The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit." +sidebar_label: "Request Registration URL" +hide_title: true +hide_table_of_contents: true +api: eJztV21v2zYQ/isH7sPaQbYyJ002A8Pg5WV12iVZnKRA06CgqLPFmSJV8mTVC/Lfh6PkxEm7ZC8YsAHzF1nS8eFzD+9N14LkLIjhpTjFmQ7kJWlnxVUicgzK6yreDsVZgZBj5YImQJtXTlsCaYxrAkhopDFIQA5mSLd22k6dLyMgTL0rQVqQVhXOJwDBgYQ6oIdCBkYCKvDeEouYY86g2mrSkhDkCrv/zr6zY2YQHBikEFe34BAqVHq6BJnnmpGkuYdLhaRoHncv60AQ6qyMhAm9VKQXaJaw0BIkVK6qK3AesMwwZ0KZdw2vbLTNXcP8MgSZGeS/K35wYlAGBFWgmsfdciSpDeaQO1WXaKllc1mgx6tnBVEVhmk601TUWV+5Mg2Exki/uvYq78gpZ9LMuCwtZSD0KSoXloGwTANWvY2NwVa/zL/oWPQGz/vvrEiEq7A92HEuhuIUP9QYaP3Az09fi0TgR0JvpdlzKojh9YMQONA2h9L59pSAeYtE1N6IofiH6IubRHgMlbMBI6PBxsanxEarsAKPH2rtMdwdLzmYamPA1ffj0VkOW8wqOUMoXCA+2OVaFPVFIpSzhJZ4x6/Sr/gSVIGl5H+0rFAMhct+QUUiEZVnkUm3PNu3t1aBvLYz8TCpRqaRywChTZ216Huv6kCuRP+eOb9vM6EfT0iWlWHIp6xZung2T5E4P339eQGAc77L7FC42uR8aYAKHYBXkbvTmXO4zZX7NFeBISvd757G6Jgv1dS45nuplKstfffjaPfNztHx0cXW5k9vxwcvd49f7f58OHo1OZyMJ5Px7sHF+eFgd3v/7fjNi52dzePzzZd721sXY3ZT5097eXbr15ehVZrLwngPps63Hq2qVgqNpiL3spEmBhQGuqdFw/FUB2yXjfdYhw81+la8lLy0gQ/G2btKSa6rBIEk1QHcNBqv4O9J9s1gWoSdwbfT7c282FhsiZv2l4gSqXCcwZULMeYkFWIo0rPT0dHkYP/0/WT/9CJeTjiV1qmEtPMvXQsckYiAfoGeG8B1l8ri5oofq9prWk443tuQ/gGlRz+qectbtWWlX+HyE7UP35yxQnlUV9ZUoCWtYuYlEPTMYh5V5o6wPxm82IbK6wVX+DkuWQ0rS4bn3ZzXv7ZNKRGawQuUOXrBgnC8RzaaonSTttbAng5Z7QNymYUTI4kTH0YnY5EIdrdlOeh/3d9gDeqylH7ZRcnjGM8meyfPQXO0k3MGslobim46P5O2oxr4wEs5R8hqM4dKLhklPpUw8447yhQ8Kl3p+MItuFat7W6RGufn/c8G8r+LIrfiM04F3tKCq9D2gqu9Qqi84/LYtlwdOircg121yoEHcAlIm8cXyuUISlpur1NX2zwuLPiG5w5tZ+DbmHZeYxgyjx5cPuw7+ZpIvaoTqZdJNUeb/6HG+yjC8yFE52+pLIHbhtS27UKdWfRK26mXgXytqPadg239eeJM+3/Cs6mPXevvuLaCeMq3BjNY2f5lbwo0ZU8V0lN4lPKaXUoeMS2ltmn34FF/nnLjJZoSIlDkn2Nl3JLD60lPoA5sN68z9BYJQztuEfoyHE8n6BdarXfBjmbf+VkajXpu2gudWSKMVmhDHBxWBbCSqkAYxDp1N2oN07Rpmr6MbyNatzSkr8e7+0eT/d6gv9EvqDSxTnK/KKVdA+5mQFgfAqGdAu/Vm+u7Iej/b4D/9DdA17EJP1JaGant2oTYDhKX4ncGCV69NkrEGIngsSXfjRNXieBJkpGurzMZ8Nybmxt+HOcjMby8SsRCes1K8d1NsurmPH/MkXvwSCmsGHkhTc2MefTmmeR2+jk5npyJm5vfAD7MREc= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit. + +It also lets the anchor specify additional information that the user must submit interactively via a popup or embedded browser window to be able to deposit. Please check the detailed documentation [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-2). + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx new file mode 100644 index 0000000000..52352d2902 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx @@ -0,0 +1,74 @@ +--- +id: reset-password +title: "Reset Rassword" +description: "Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email." +sidebar_label: "Reset Rassword" +hide_title: true +hide_table_of_contents: true +api: eJzNVlFv2zYQ/isHPrWFZGXBtge9pU2HZRtao86whyQoTtJJYi2R7JGy4xr+78NRcmw3RYJuD5tfLInH7+6+493HrQrYeJXfqIshtGSCLjFoa9RdoiryJWsXX3N10XV27QENLC7nMHhiWLcWWvTQWEMQWrZD00JoCX6x3NgAc/R+bbkCx7Yk7yFY8BTERDMYWoPbW6x1aAEh2CUZ8GQCrDQC9ai7mUqUdcQxrqtK5YrJU9iDq0QxfR7Ih9e22qh8+1XcH8T44GiyhQoDqkSV1gQyQba9yl7Jny9b6lGexFQzVcKOO/bmKXyMkQpLYeNI5coWn6gMKlGOJdigyQvGw758u7f0gbVp1Nf8vjumo7YciRSa1e7U57NI15HEwVMlhOtKqlpvAGGFna6OqRBmJkLUTn7JUdKBBxpdO2v8mM752dljhuengH4opdj10HWbE4YF/sdvAbzGCj5MYZyUBJ3rpgOZffLWnNbnaeaJ2fLzZF1SQN15wMIO8WTCuHGXKLoPjP5ZT5E2usfedXTkWF2ZkW9t3CCbDnC1pq76WFur8sMzaA8P5CfT9wL5waZA6RmqYhsVJJ2oTaBGTshuqt59WtqKGjLpVNa0sNUmNdhL/PI8BkLGa2uk77dqSRuVP7kzUSvshgeE3V2iegqtlV50NhbNYWhVrrJ4BNKjbvHEK+LR08CdylXc76kcWIfNQqo5Fuw1IRPLGDqiHJ3+nTaPqvbbX9fjAZdGwZPJlYDXjaH9SDHwdnH+08/gWK8wECxpIwNlYkS8WdZfxpmXKC3gLWEVSZX32sZodJDiqkWgrkOGS+2LgT31MqnmHYbacg8X8yvhitiPUZ7PfpidCQdD3yMLy9ctwdMYLxaX85dyFmQY2g6KQXchpmm5QTOFGs9Aj0uCYuiW4HAjKPErQsN2cGBrYCq103HBrmicKHvvhsLa8nL2eHr870K8NbfmutU+ujRgHZnU24FLEmGRloTQYpDlMRRrINgI/w24BNBUcUEOPJRopJlqO5gqbmzlRbROmwaYnPU6WNbkc4kjhRs/4mXTf1odkZS6iaS0wHJJprp70YbgfJ5ljQ7tUMxK22ffhfAyh5j8QygbkAmJWhhuCSazmJU2NaMPPJRh4CnBvZQ8WdPZd2RWcxzQ/ya1PcRzua2pgL3tP86mpa5PyxY5+CdDPrLLAhNlPWqTTR+ezOe5NH6lrocIFOOvyHV2I8fr2Uxg8GK3HApiQ4H87FbGVCDu/ft6QbzSpcylfVpTmDPLTRaNUlunfjJLVKdLMj6q1H4AOixbgvM4p8b5LFh5lq3X6xnG1Yg2bfXZH1dv3r5bvE3PZ2ezNvRdnJOiAj2aI+Dx2vXhIAQnU2Z7UPn/9mI5yUyg+5C5DrUR4Y88bCdNu1FfadpdoloRvfxGbbcFevqTu91OPn8eSKb8zZ0IJmssRDNu7nbJXlIOcvtmTD+9Fv8HfZU76C7ZG12UJblwtPzoPnQixfP3i2uVjBqdb1VvK9nDuJZLK66j9O52fwOrz0ME +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx new file mode 100644 index 0000000000..944b1bb6fb --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-disbursement +title: "Retrieve a Disbursement" +description: "Fetches information on a specific disbursement by `id `." +sidebar_label: "Retrieve a Disbursement" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches information on a specific disbursement by `id `. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx new file mode 100644 index 0000000000..550a16f2b8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-payment +title: "Retrieve a Payment" +description: "Fetches detailed information on a specific payment by `id `." +sidebar_label: "Retrieve a Payment" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches detailed information on a specific payment by `id `. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx new file mode 100644 index 0000000000..eba9efc42a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-receiver +title: "Retrieve a Receiver" +description: "Fetches detailed information on a specific receiver by `id `, including all associated wallets." +sidebar_label: "Retrieve a Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches detailed information on a specific receiver by `id `, including all associated wallets. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx new file mode 100644 index 0000000000..2457762756 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-a-tenant +title: "Retrieve a Tenant" +description: "Retrieve a Tenant" +sidebar_label: "Retrieve a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Retrieve a Tenant + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx new file mode 100644 index 0000000000..c84636808d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx @@ -0,0 +1,66 @@ +--- +id: retrieve-all-statistics +title: "Retrieve All Statistics" +description: "Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets." +sidebar_label: "Retrieve All Statistics" +hide_title: true +hide_table_of_contents: true +api: eJzVWNty2zYQ/RUMnpIZ6mLF6YPelMRN03ZST+RMHhSNZ0WuSEQgwAJLKYqG/95ZkJKoi+3YvUz6YovE7sHZC/ZA2kiC1MvhRI4JSHlSsZfTSCboY6cKUtbIofwZKc7QC9Ba5EhOxV5YEx4T5Wel85ijIS8oQ2FdCkZ9A/YVGXgROwTCpCtuMhQOfWGNR6FMrMsEvZiBV7GANHWYBqeAXcA6QEbCYYxqia71UaxAa+RFMIkA75F8V0bSFugCxLtEDuUHZopLHGndCi6SWwpeDjdy0O/zv8N436JBB1rs3Xa8ZSRjawgNsRsUhVZx2LL3xbPvRvo4wxz4E60LlENpZ18wJhnJwjFBUvXOZAn07UH+Wk7KEKbo5HEpbthLmDKfoRN2fph/Gcm5dTlQDfDTpYwkfoW80CiHg34VySatt7EtDaHzD9NMHMzpLLG7t7qoOMuQrB/pN2CGaBJl0kd6vgixlR6TJ1D1ZRyjP5/9uz1fVpGcg9JP2jIU/7F+lxV7KuIHeV1X8vW2kK3iQs4v/e1sfRvORmsfcA7WMpKKMP+O4gf329gm2LL15LhALWby4/jN6zMMHt9dZ7Av+v1uvy/PtNQZ48HO+LSPzpi/2JsfN8+9TE475oz5y535SZvcCw5LdJA+kPG9+XErnTO+bKxP+2fUVOrupVfrUWiiKlSgHsC3zQD+QedI7ZcqT+iedDznGtL0PzvYB+f6Q5PiT3WG2+e7VoydHj5BLfa+98bR7/fblBo5bIloVfH6Zf/iVDs/Gigps059w+SfE0t0zrrTJq+YNTn4jv7zBFS27eqsMESO3p89cHWYu7zsaMj3lsRBmHsW230u+xct5GOPfxM4YHuMS6doLYeTjXyF4NCNSsrkcDKtpuxPmeVLUoohVcBLsufb9ySPrm6zyUaWTsuhlOy6RR5z6erctvH3UlOo33B90pK/froRPGrF3LpAHA01XREJr1KDiVgpygQYcTUevPxJFE4tgVAscM2XPAM5w4+amIMnKxqDZwgJ17Ti57kNbJomHhNqDU68aV2YxLUG4nMgRtfvZCQ53JrloHvR7XMOyjwHt+ajlKG4H+PZ+M31c6G8AEHWajErlaYQZvtK7AVZkcMCxazUi909l9+CSJ0ti+agqkKFBcsXXmrtbpBW1i26p6f9h6P42Xw2N5nyYUsjbIGm423pYhSFs3xOBWVAvFxTsUaQDfBn4OrrPi/wjUTEYMQMxdyWJgmOGT9obVfKpMJhYb0i6xT6IfPoiImv8XrN/0778twpmiR1ZhAv0CTTZxlR4Ye9XqooK2fd2Oa9RyE8H4oQ/I7KWvA4BGXqb0qNWYhKmbkDT66MqXRNgFwXeqim3UdENndhGv+d0LYQD8W2wpnY2j45mgx13okzcOTvpdyy65FD7OWgTK95cW88D4XxC+pcBKDAP8FC2zW314ORiNKz3aKcoTNI6LufeUwRutz/MR+jW6qY59I2rIZm17q0F4w6dt7xjVkktYqRv34ON7sBWECcoRiEOVXPZ8Ya9nqr1aoLYTWgNa6+9/u711fvx1edQbffzSjXYU4W1lMOpgW8/d4sRrr9Ffh43Gz22v6/+YGgkSbCr9QrNCjD8h9yt2k0cCL9wQ8hmfXEbzebGXj86HRV8es/S2RVmEwjuQSnYMYaM5lW0VaCWDQXyMIximMsWGSXoMtaGI/uQQeC/PbqRkYSTrR0EbS0+cDo2yWzbmEfq2JNgf9W0R0um02t1FW1s6+X7vRoQtxacxanVVX9BYk1YOY= +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx new file mode 100644 index 0000000000..c28c73adc3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx @@ -0,0 +1,74 @@ +--- +id: retrieve-disbursement-statistics +title: "Retrieve Disbursement Statistics" +description: "Fetches metrics on a specific disbursement by `id `." +sidebar_label: "Retrieve Disbursement Statistics" +hide_title: true +hide_table_of_contents: true +api: eJzNWFFz2zYM/is8PrV3suW46R70ljbplm3X5eL0+pDmUkqCLdYSyZKQXc2n/74DJdly7Dh1tu76YlsiAH4fAAIwVxzFzPHolk9QoHQoE8fvAp6CS6w0KLXiEX8HmGTgWAFoZeKYVkwwZyCRU5mwVLq4tA4KUMjiirHPMmWfhzzg2oAVZOMy5RG/Jm1YwHlPvrdrwI2wogAES4BWXIkCeMRlygMuCYYRmPGH2C7PmZ4yzIB97hv2+1v4WkoLKY/QlhBwh1VOJp0sTA484PDN5DoFHk1F7kggyaAQPFpxrIyXRCvVjNf1HVlzRisHjtbHoxF9bWO5BiytcsytWbGptlsO4gFPtEL6Fa24MCaXiXdR+MWRjdUuBh1/gYQUjSWHomwQGFGRwftEl6rx2VMaqRVT7IlJhTADywM+1bYQ2Lz65dQ7RngXRSc1ERdpdaTeuA64AZWS947TfEWaonQUtqOhujJJwLkjNV/XAZ8KmT9rS9Qo8mP1TmvSlOjT8aqJ5NsukN4BTXBFQS/dfVzdC+egHz1hrajoaCAU3xF8r36f+Gx/mN49ZPzD5PztHgTHZ9ce2yej0XA04ntSao/weC28m0d7xF9txB8mz0EkuxmzR/z1WnwnTQ4aFwuwYvaExzfiD1Npn/BpK72bP2dtpB5felOd+SSqfQQSkAuw90uR54DuJ60jjd5MOgT7rOM5zcVs9r8d7K1zfd26+GPj4f759rbvuxjsr1fbveWGNJgqixgsdbyN7kEeo1EfUb9Dul7vrWuSOh2d7Pa0D0qUmGkr/4b0v2teYK22e/osQUcrviMJqceWfbnGNWSiAOf2nrqG5to5axj8vUa2RXODotvndHTSs/xQ40cabkLzajc077SNZZqC+vFx2c9uA+A7BDwPB0lpJVZ+wHsDwoI9KzHj0e0djVgFYKZpVpyBx0YDX8TDzTwV9mcpF65kWnOyahfd1FjanEeck7VuswmRb/j1t9x0UiP/gGrnxP3+8YZRJ/EzHIUEFLZ+DZiTMwUpW0rMmFDsYjJ+/QszVi4EAptDReNnO8CetdH0mt0sm4FIKVtrep5qj6Y9pBOEPBeW9Q8ru8oF0jFnZ1eXPOBEt0E5Hp4MR+SDsiiErahSZMAO23gxOb96yaRjgqHWOYtLmaOnqe1MqBaqY6hZIebA4jKfs3Yg8G8Fm1ldmrYOSSP9gl6A9ZN4t7sCXGo7H+4Ws58O4if1Sd1k0vktFdMG1MDp0ibAjNV0VhhmAmm5gaIVQ226/x4PzAVMqNQv0MDFEqFYDGyqS5V6xYwe8lwvpZoxC0Y7idpKcBHhGLBb19gL2+9BP+0HpnXSIBbJHFR69yJDNC4Kw5nErIyHiS7Coyy8jJgnv4ZSMSooQpKHM2CtmGcl1dQKh7ZMsLQtQYoLPhXT4RHMptbXs39DrTPxFLclxKyTfTabDPJikGTCojsIuScXogUICyFV2L44yOcpGr9BXjBvqPnPCSbXFaXXk0xY6UhuXsZgFSC44ScqUwi2cH9NJ2AXMqG61NFqYQ61nYVeaKCnA9eKBTyXCSjn20BXAI1IMmBjX6ea+ky2ojBcLpdD4Ve9tVbVhX9evr14P7kYjIejYYZF7uuk0Q4LoXqGuxuFbV5bdwpbdWe1aZPPvtNoewbCNwxNLqSiicOTWrX96pa7LQT9jsUDHsmUblgy7ZBkV6tYOPhg87qm119LoCJ+exfwhbBSxNQSbldkhX6n66uKR4m9uG5vPV6yQ3cje3l0DVFRN1yIvKQnHvA5VM1NTH1XB13vIljNwlmSgMGeys4IstXcf7244QEXO0147ptw+4Os74XzsJ02EOizDh5RWa2aFl/Xa/lm6VGNluKaOTGo6/ofs/+oyA== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Fetches metrics on a specific disbursement by `id `. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx new file mode 100644 index 0000000000..0980031a5e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx @@ -0,0 +1,66 @@ +--- +id: retrieve-stellar-info-file +title: "Retrieve Stellar Info File" +description: "Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url." +sidebar_label: "Retrieve Stellar Info File" +hide_title: true +hide_table_of_contents: true +api: eJzNVltvIjcY/Suf/NSVuGQJm0hUeSAwBBJ2YBnIjUHIzHwwLh57antgKeK/VzaQsu1m022ranlBY38+PseXc7wlhi40qY3JABdMG0UNk4JMCiRGHSmWuc8aqXMu1xpMgrCmnKMBI2GOJkpcW+D1i+/PQKNaoYJc8cJLE1sIJhaQ5TPOIljiBqiIXW+lejKgRApEZrifvxOTGhmgUQxXGBjknKqOmMsW40gKRKHOpNCoSW1LKmdn9u9LukO5RAFMw4pyFrsZHXWcZXSBsGacwwyBSxpjDEKqlHK+sRwiKQwKYyENfjZlI1NuP/AzTTOOdikajd7IHwZX45DcXDcq7fuHVqflXz7ctlu9wf11o3l32xs8vvILSQFCctOsn1dvnysXreeni+pjI3iqXjRGftDuPl5eVLrt28dPrwNMIOjc+B3/ZnrnPV19Hez10eB7w4fe4G7arwdBvz2oB95VSIaoDQTNFvho1lIt4WcIMDOYzlBB5ez9h5BAuzfoPPf86WjQvQpJYkyma+VyIhX7TYqiQW0EmpLeb1dJqkVI4MG7ntZHw/bU85v9XscfnoykWfFQXIyZnuVKY4rCFDNOzVyqtDij0RJFXIxxdQpbprlJQgLDQd0PWt5gGniDe/fXPzurVP+LGTRmlWpIQjEeN3uN0UfPH9aHnZ4/mUBvcDP16x/toh1OJtRZvK9tjAYDz290vGAygUjGCFcQEm806DVCAkzrHJVrurm+blYvO62L7sPdZf/yY9O7DxoPg8tmf/Rwf+4/nTeHn7z7Vrfq14fV+qf2+XO32+rWPziUKdUazZSKKJEKY7gCo3KE/feh02yy/eRzRk1IQBtqcu1aOFthSMBemFN6r/MfBc0fmP6eXSjIbrfbFUiKJpHWPhZoSIFk1CSkRsqlNXJeXAq5FuXjRrurXSB7D7IeuCW54qRGyG5im6NcMbMJogTTvdVcI1Wo6rmF3BLLkdQIzdgdbsifDfP2YQi5xhjmUoE9sCgMi5y7FZwpYgxrZhKgAryg8uECMsVW1KC1SGtEgqbObXLjbtjelwuEWfAEaYyKWL1MzKVjw4xzp+OZbJ6cd+gfzjvU+x1SIFbunmWl9L50ZtcgT1OqNtY5rZt/E+OnoNl/Z72VgpGSwyxn3DiZUi2oOFDVNiBSukSY5XwJGd1YFNdKYaFknoGcg8KIZcx1SBsE5mR2sXei0l+W9sejGIpQDBOm3ZQCZIaiqGWuIoRMyV8wMmASamz3nooUYKSD/wpc4SWv3BWMqLBZNZe5iN3AxH7YPLa5qjCTmhmpGOqa5VGE8eGAl/+W901+Orrlgpkkn5UimZa/C+FdDZz4FyobsClKmdg/GA5lThUTc0W1UXlkcnUQaPfFvLWnpe9QNlcuxP+NtCPEW9rWOINj7T9WkyBPi1FCldHfpHxSVzYKsZxSJsqHhm/qeUtGG3kKDsjxjzHjcmOP15tKINe2bpnPUAk0qEuhtSmDKtW9eYBqxSLrS0dZpynriopyXtSHsgLhLEKh0Tra0QAzGiUIFedTe3+2WLVyeb1el6jrdWiHobrc7TQ8P/CKldJZKTEpdz6ZSW1SKk6Aj+/LF332hQmHJ+YXjrP941X4/zyED9HiHqAZp0yQ3UH79pBoY3KSaNbATzNtUiCJ1MZWbbczqnGk+G5nm3/N0br8eFIgK6oYndnMGE92hWOk2BBcog2CehRhZiN0RXn+wsbh23h8ydkbb0h2u98BxMo+qQ== +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx new file mode 100644 index 0000000000..5aeec0d658 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx @@ -0,0 +1,74 @@ +--- +id: send-one-time-passcode +title: "Send One-Time Passcode" +description: "This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header." +sidebar_label: "Send One-Time Passcode" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/sidebar.ts b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/sidebar.ts new file mode 100644 index 0000000000..213799850a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/sidebar.ts @@ -0,0 +1,435 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; +const sidebar: SidebarsConfig = { + apisidebar: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api" + }, { + type: "categoría", + label: "Administrador (Gestión del inquilino)", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/admin" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-tenants", + label: "Obtener todos los inquilinos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-tenant", + label: "Crear inquilino", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant", + label: "Recuperar un inquilino", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant", + label: "Eliminar suavemente un inquilino", + className: "método-api delete" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-a-tenant", + label: "Actualizar un inquilino", + className: "método-api patch" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/default-tenant", + label: "Inquilino predeterminado", + className: "método-api post" + }] + }, { + type: "categoría", + label: "Autenticación", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/authentication" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/log-in", + label: "Iniciar sesión", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/refresh-token", + label: "Actualizar token", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/authenticate-mfa", + label: "Proporcionar Autenticación Multifactor", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/forgot-password", + label: "Olvidar contraseña", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/reset-password", + label: "Restablecer contraseña", + className: "método-api post" + }] + }, { + type: "categoría", + label: "Claves API", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/api-keys" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-api-keys", + label: "Listar Claves API", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-api-key", + label: "Crear Clave API", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-api-key", + label: "Obtener detalles de Clave API", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-api-key", + label: "Actualizar Clave API", + className: "método-api patch" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-api-key", + label: "Eliminar Clave API", + className: "método-api delete" + }] + }, { + type: "categoría", + label: "Saldos", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/balances" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances", + label: "Obtener saldos de la organización (Circle)", + className: "método-api get" + }] + }, { + type: "categoría", + label: "Integración Bridge", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/bridge-integration" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-bridge-integration", + label: "Obtener estado de integración con Bridge", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-bridge-integration", + label: "Actualizar estado de integración con Bridge", + className: "método-api patch" + }] + }, { + type: "categoría", + label: "Desembolsos", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/disbursements" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-disbursements", + label: "Listar todos los desembolsos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-disbursement", + label: "Crear desembolso", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement", + label: "Recuperar un desembolso", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement", + label: "Eliminar un desembolso en borrador", + className: "método-api delete" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers", + label: "Listar todos los receptores de desembolso", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions", + label: "Descargar instrucciones de desembolso", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions", + label: "Subir instrucciones de desembolso", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status", + label: "Actualizar estado de un desembolso", + className: "método-api patch" + }] + }, { + type: "categoría", + label: "Organización", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/organization" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-info", + label: "Obtener información de la organización", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-organization-profile", + label: "Actualizar perfil de la organización", + className: "método-api patch" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-organization-logo", + label: "Recuperar logo de la organización", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/patch-organization-circle", + label: "Configuración de cuenta Circle", + className: "método-api patch" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-assets", + label: "Obtener todos los activos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-asset", + label: "Crear activo", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/delete-asset", + label: "Eliminar activo", + className: "método-api delete" + }] + }, { + type: "categoría", + label: "Pagos", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/payments" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-payments", + label: "Listar todos los pagos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-direct-payment", + label: "Crear pago directo", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment", + label: "Recuperar un pago", + className: "método-api get" + }] + }, { + type: "categoría", + label: "Perfil", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/profile" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-profile", + label: "Obtener perfil", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-profile", + label: "Actualizar perfil de usuario", + className: "método-api patch" + }] + }, { + type: "categoría", + label: "Receptores", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/receivers" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/list-all-receivers", + label: "Listar todos los receptores", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-receiver", + label: "Crear receptor", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver", + label: "Recuperar un receptor", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-receiver", + label: "Actualizar un receptor", + className: "método-api patch" + }] + }, { + type: "categoría", + label: "Registro", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/registration" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/start-wallet-registration", + label: "Iniciar registro de cartera", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode", + label: "Enviar código de acceso único", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration", + label: "Verificar registro del receptor", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file", + label: "Recuperar archivo de información Stellar", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction", + label: "Solicitar transacción de desafío", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction", + label: "Proporcionar transacción de desafío firmada", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/request-registration-url", + label: "Solicitar URL de registro", + className: "método-api post" + }] + }, { + type: "categoría", + label: "Estadísticas", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/statistics" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics", + label: "Recuperar todas las estadísticas", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics", + label: "Recuperar estadísticas de desembolsos", + className: "método-api get" + }] + }, { + type: "categoría", + label: "Usuarios", + link: { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/users" + }, + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-users", + label: "Obtener todos los usuarios", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-user", + label: "Crear usuario", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-activation-status", + label: "Actualizar estado de activación del usuario", + className: "método-api patch" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-roles", + label: "Obtener todos los roles", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-user-role", + label: "Actualizar rol de usuario", + className: "método-api patch" + }] + }, { + type: "categoría", + label: "Exportaciones", + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-disbursements", + label: "Exportar desembolsos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-payments-csv", + label: "Exportar pagos", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/export-receivers-csv", + label: "Exportar receptores", + className: "método-api get" + }] + }, { + type: "categoría", + label: "Carteras", + items: [{ + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/get-all-wallets", + label: "Obtener todas las carteras", + className: "método-api get" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/create-wallet", + label: "Crear cartera", + className: "método-api post" + }, { + type: "doc", + id: "platforms/stellar-disbursement-platform/api-reference/update-wallet", + label: "Actualizar cartera", + className: "método-api patch" + }] + }] +}; +export default sidebar.apisidebar; \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx new file mode 100644 index 0000000000..127902aae0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: soft-delete-a-tenant +title: "Soft delete a Tenant" +description: "Soft delete a Tenant" +sidebar_label: "Soft delete a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "delete api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Soft delete a Tenant + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx new file mode 100644 index 0000000000..890a65412b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx @@ -0,0 +1,74 @@ +--- +id: start-wallet-registration +title: "Start Wallet Registration" +description: "This is the endpoint the browser reaches with the first token so that the receiver can confirm their verification information through a webflow. Requires a valid SEP-24 token in the request." +sidebar_label: "Start Wallet Registration" +hide_title: true +hide_table_of_contents: true +api: eJzVV1Fv2zYQ/isEn1pAttKg24Pf0jVYs3VdMKfoQxoUJ+kksaZI9niK6xn+78NRsuOkabysK7A92RLJ4/d9R353WmuGJurZpf4DGxOZgI13+irTFcaSTEiPM33RmqhMVNyiQlcFbxynh4L8MiIpQihbjGppuE0DtaHIiv0CnYpecQvDAsISzTWSKsGp0rvaUCcDhtQ1kqlNmSAo42pP3fCfW/J90ypQSyxq65dT9Qd+6g1hVKCuwZpKzU/PJ8fPxw2NG/f61GPkqc60DzhwO6v0TM8ZiN+Btci3eGc6AEGHjCSirLWDDvVMp6g600a0+NQjrfSXCuFtDH3EStWeFPTcouORmM40DdgrPWPqMdORV1Z2EcI60/g5WF/hbrRssQM9W2teBZkWmYxr9GaT3eAjcBFKif/BVIeB7s1XplIQoy8NMFY3+dvn8i9ivpJQMXgXMcr48dGR/NyBOCQxjqkFVyVISywCNKiWxlpVoLIeKqyUk3Ni7UrSXHrH6DjtjJ85b7mz8vA1QHfFeXXx22uVNtlG2mw2m0w/vw/mC6jSOcTIj9naFx+xlBWB5FSyGZRAIk+HEb5EBmOjgsL3w40aFm4kCUwQD+6UCOFn6IJkcLexPnOD3MaFnvV+uNqgrT7U3kvCt/8lP7tTkY3vC6DdnAJIOcQqKvaSLpB7ydggJVEHWZ99KetbJzfGk/kzBf5Ouv59vXRk4H5/nuu7ApPkHcYIDd530r+i8hvP6ha/GxTbfZ4fPduLfHfFEBlCsKOj5B+j6Lb+brttElFuvVhng0kg4FbPdL5MHjqhPRPNo5irznREut76aE9Wz7SW6x+x7Mnwai75GwR+gUBIJ73E3AkJwfyKX9rXL+8uvmatmYqmcVsTA6dO58c//KgCmWtgVAtMFjFa5snIcWvKyTFbhCodT3mufUJjOBndnNFaIPXSxKKniB06VucWWBxQnZyf6UwL3QHl8fTZ9Eg06LsOaLWtDw/GeDJ/ef5UbhUo9t6qojeWE01PDbgRarpNHSxQFb1dqAAriZLegmrI90H5WqqsCSYNeCm2vLe7Q156WkzvL2H/KYjv3Xu3bT3AKR/QTaLvqUQVyMtlHRoLE0co0iz4FP6ecNmukpS+wtSAFKhq37sqLZSuxVvrl8Y1ijD4aNiTwTgTHBN1GYd4+fg7qfZEmoRRpEkB5QJddfWkZQ5xlueN4bYvpqXv8kdFeDpTifwOyipVJTBuaMTGaYmVcTVBZOpL7mkkKHnhQzmdPoJZTcmLv4XaNsQhbkss1HbuP2bTou0mZQvE8UHIe/NyJsS8A+Py8cWDfA7ReIW2UylQwl9hsH4lx+sgE9VHmbfoCySHjHH6XmyKkbr4ez1Hujal+NKW1ghz6qnJ06SJrydxnJZpa0p0MdWGrQEG6djVcfKpwZ8l1izPl8vlFNJoijYujfnrs59O38xPJ8fTo2mqwuKTwUfuwO0FTs21Grprdae9vmU465va/v//wBirVmpRggXjpD1Isq7Hanmp76mWUiNSvbzKdOsjy7T1uoCIb8luNvJ6aOOlilYmQmGlCa/BRnxAzicj/OqpesSHyb0cFrja+wK6BttjKuXZN+B5/PfHQ9DufvzcYLySBzICUs8urzbZtsKLmsPqk7LEwHurbppMWb7re34+vdCbzV+5a2QA +sidebar_class_name: "get api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This is the endpoint the browser reaches with the first token so that the receiver can confirm their verification information through a webflow. Requires a valid SEP-24 token in the request. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx new file mode 100644 index 0000000000..3586c69ffc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/statistics.tag.mdx @@ -0,0 +1,20 @@ +--- +id: statistics +title: "Statistics" +description: "Statistics" +custom_edit_url: null +--- + + + +Statistics endpoints return general aggregated data per organization, as well as disbursement-specific metrics. SDP users can use this data to monitor their disbursements over time. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx new file mode 100644 index 0000000000..05d922792b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-a-disbursement-status +title: "Update a Disbursement Status" +description: "Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready." +sidebar_label: "Update a Disbursement Status" +hide_title: true +hide_table_of_contents: true +api: eJztWN9v2zYQ/lcOfGoB2Uqzbg96c5sWzX50QZ1iD2mAUNLZYi2R7PHk1DP0vw9HyY6dOMm6odtQ7CWyxLvj992RvI9ZK9bzoLILdWJC3lLABi0HdZmoEkNBxrNxVmXqvS81YwCuEAJrbgO4GWgod9xAF4Wj0tg5sNtaIjS6qIzFMZxXuO/QtIGhcUuEGbkG4KokPWO4En+4ItTlCq7AWHBUIsnXwJo4xt6f2ZbAZOZzJPB6FUmM4Wz4BdemrgdXHSA4Z+XJlQmAtvTOWAYToDI8hsl+5EJb0HVwkGNEWoKxEZ3XbcASrgaS+Qq0henJGbShh+oJlxJh1hJXO7h6rnMneXJtj50wosMSriu0wm8FmhBiCsYqUc4jaanFabmtxmS3ZtNYFJUor0k3yEhS1rWyukGVKVOqRBmppNdcqdvlPT2Rct5Oq0oU4afWEJYqY2oxUYFXtcQLpvE1qkThZ1+7ElU203UQg6LCRqtsrXjloyWTsXPVdZcSLXhnAwYZPz46ksc+kF8wBD1HeDdYqkQVzrKAydZKe1+bIuYh/RjEYb0z4Q3WC9X0cWQhDzhc/hELoeRJksmmR7ExPAA4UWw4sh1QbUF1wlvHDOyG2NtEMFRUdZ2Een6I7Qtdwjv81GLgLyH6MCMkcnSAj2Bm0uHxCP0G37GzbZMjSYgH0tXtZ2WAETnSluMNhM0kz4+OkvtSaAJYx/0ukC2V425W/+Hp+io+u1vF91a3XDkyv2P5zZbxrWPYo3kotc92U3vL42sG7kvz3d3SvHaUm7JE+/XrcpjdDYA/YdDTeH6XhjB+7Vr7bS+v2cDw0AJ4fu+mtVvPrxw7hg9YtGR4FXvrC9SENGm5UtnFpTS4BrlyZd9liyp2YxlU6W5bDenalF0aNh07IC037bqlWmVKSazNVFOpaJ/y3Qm3qdXe/ISrOy39x9/OISqUmaO4XdDysFgSCGZuRWwYrkS2vJoef/8DeDJLkTILjJJjUA6TYadFz42IqFCXUupO3mcuohl65ZSxrjXBXiLPas0zRw1Mzk5VooRuj/J4/Gx8JDlom0bTSmVKROLDMZ5MT86eymGtgZ2rIW9NzZGmo7m2A9QgJ3ijFwh5Wy9u1Bc70DAn13qRPISF8SYOuKXotp3ZLfK1o8X4Tmr/exA/2A/2XOSsTGnBebSj4FoqEDw52b7AlY4drofiLLDzG9F3K1zS6+kKoXAlRgmcY78RomMlL3XtrkXCEnoXDDsyGDLBMYKL0MdLh+dod/WP/JCkUa6LBdry8knF7EOWpnPDVZuPC9ekXxThaQaR/BbKCuSU1Mb2F5bBLLIydkY6MLUFtzQQlLrwYzUdfwGzGcVD+u9Q24R4jNs15rCx/ctsKqybUVFp4vAg5B27lAkxbbSx6fDhQT6P0XiDdQMxUMRfoq/dKt4kH91rbRC7RZsjWWQM4w9yTDFSE36dTZGWppBzaUNrgDl2NE+j0cjNRmEwS1RtChSJn22vThOviwrhOJ5T/fkssbI0vb6+Hus4GqMNriH9+fTlq7fTV6Pj8dG44qaO56R3gRttdwL3tzjQ+7y2F7m9M2d90/f/v4v/y3fxoe8yfubU19pYkTxxYayHfn+h9vq9SlQWL+BDy79MVOUCi916neuA76nuOvn8qUVpgheXiVpqMjqXlnqxlnDyu9xes+9dHE/eDbfgp3Dvpf4ggY2asCIllrpu5U0laoGr/v8H3WWXbBq/YOoHJkWBnndc7ojSPV10Njl/+UYlSt/RMIuoYYYfEv8goNtqpAchf7vkHpf1uldIXbe174fu9RhIbrkLh67r/gAA78jm +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx new file mode 100644 index 0000000000..84784f0fd7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-a-tenant +title: "Update a Tenant" +description: "This endpoint updates the Tenant data." +sidebar_label: "Update a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint updates the Tenant data. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx new file mode 100644 index 0000000000..0e82bef1ff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-api-key +title: "Update API Key" +description: "Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation." +sidebar_label: "Update API Key" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx new file mode 100644 index 0000000000..e95e8ed912 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx @@ -0,0 +1,77 @@ +--- +id: update-bridge-integration +title: "Update Bridge Integration Status" +description: "Updates the Bridge integration status. Supports two main operations:" +sidebar_label: "Update Bridge Integration Status" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the Bridge integration status. Supports two main operations: +1. Opt-in to Bridge (status: "OPTED_IN") - Creates KYC link for organization onboarding +2. Create Virtual Account (status: "READY_FOR_DEPOSIT") - Creates virtual account after KYC approval + + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx new file mode 100644 index 0000000000..ab9c4a9012 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-organization-profile +title: "Update Organization Profile" +description: "Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client." +sidebar_label: "Update Organization Profile" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx new file mode 100644 index 0000000000..2158cfee5f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-receiver +title: "Update a Receiver" +description: "This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver." +sidebar_label: "Update a Receiver" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx new file mode 100644 index 0000000000..99c986c543 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-activation-status +title: "Update User Activation Status" +description: "Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password." +sidebar_label: "Update User Activation Status" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx new file mode 100644 index 0000000000..830476516a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-profile +title: "Update User Profile" +description: "Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request." +sidebar_label: "Update User Profile" +hide_title: true +hide_table_of_contents: true +api: eJzdV91v2zYQ/1cIPq2FbKVZtwc9Lf1Cu3ZpsCTYg2sMlHSyWFMkyzvF8Qz978NRkj+SzFk3FBj2YtG8z9+P1N1pI0ktUGYzeRFcpQ3IeSJLwCJoT9pZmclrXyoCFFSD8L2SKIGUNihcFbeNWyygFNqKFiEkQtvCtKW2C1HUyi544RXiyoVSVC4I1VINlnShCMr00Bqn4twRZEIZIyoNpkShAggX81FG5C0JRcKAQhLOgsDataYUOQgES+yHcwrwpQWkqUyk8xAUW78rt3iuEcIIOZGD8gtXrmW2kYWzBJZ4+TR9yg8samgUr2jtQWbS5Z+hIJlIH9g9aUCWVjog/W5VA3u6SEHbhewSadQxKTRKmwclI3sPCNnuVjXewN348g3/Oef1QWT5QW23h5D986f4Oy1cI/dDymaNUAQg2XUcjsnSAUqZVcogxB30zmJPwenJCT8OL9HH9zLZp1V5b/j4tbPpZ2SVfY53EWayAUS1iPfyOPWj4oMUkSYmSP7SK/06JCwP2du6kHwTt7e9jTemFNgWBSBWrTHrgYvnJ8/ug722fMFd0H9A+TWwj+ODEFx4+N7cUlD4uAckRe2+nm2bHAK7OELenRs2pCHPHYkDmLssxjjPT57teb5r8S0d90fz/f2jeeNCrssS7Lc/l4fR7RL4GwoRB0LRBk1rmc028gWoAOGspVpms3k3T+TtpHAlLMBOhiI2yV25ngyvOq97CsGidhajlyWsZXbUMpE3yrRbDxyoAaodlwOvqKhjheAsZOq3ZRQh3EDoY7SB60q0HBFcMqM9afs4tswpr98Dp3t4Zj//dsWd4V7r0M4mAvXCQilWmmqhrHh9efrDj8IHfaMIxBLWXP8HLs6GKxItZSI1O69BlfwKdPy/cjGboVZcEhijgnilMW8DQsPd5cIoqlxoxNnFO2YJAvZZnk6fTU+Yg7ZpVGB+r2oQx318d/nq4onQKJQg57i1aUMRpgsLZYdUUZATjVqCyFuzFF6t2UvcVWIRXOu5DwcotNdR4G4gxB44RrdAKxeW03vU/vdS/GQ/2ataYwxphfNgJ+jaUMThg19AQbUiFvepOCvI+XESueMuEcqWUcBXXRTK8phQudaW0bDmP8a4FY8oAbxDTS5owIzzmIgZ9v7S4Tkp90ia+IGkSa6KJdhy/l1N5DFL04Wmus25k6Zf5eFJJiL4bSprwVVKadvPX4NaRKVtFRRSaAtqwwCQz4UeO9PpVyCrQiyS/wba6OIxbCvIxaj7j9HUYJpJUatAeDTlPb2UAkDaKG3TYeMonsdgvAXTiOgo5l+CN27N1+tRJKJF1lu2OQQLBDj9xGWKIDT4sbqEcKMLrksjrCHNqQuLNCpNXDXBQS2RRhfAI0622RZAr4oaxGmsU319Zl9Zmq5Wq6mK0uhtMMX0w7uXr88vX09OpyfTmhoT66R3SI2ye477kVrwTC12Q/VBqdkbqv8HXxRDwyK4pdQbpS3PUJHRzdAWZ9LvPqhqh8Rbm02uEK6D6Tre/tICN4rZnLtt0CrntjObd8nYlXa9+mVP3uSKA++aM3+ddMmodFYU4GlPfG+sOejjF2dXL9/KpO/wPP26ko2CWvEXkVrF9p1Ida9JL2OTHhac4yiy673gd9ttnyP/csYPmmw2/QjQdVv9XvSXFgNRozYfxLzruj8B2ak/fQ== +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx new file mode 100644 index 0000000000..d3a7d4a378 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-user-role +title: "Update User Role" +description: "Updates an SDP user’s role by `user_ID `." +sidebar_label: "Update User Role" +hide_title: true +hide_table_of_contents: true +api: eJzNV1Fv20YM/iuHe1oLyXLcpkD1ljYdmnVogznBHlxjPeko62rpTiVPcTTDwP7G/t5+ycCT7NhNlrTrCuwlkkXyu+8jJZJZS68WJNOZvCRAkvNIaqAcTeONszKVl41WHkgoK6an56IlwL/++JMEugpE1gnxgR/9dnYqPoxkJF0DqDj0TO+CGfkXV4GMJMKnFsi/cLqT6Vrmznqwnm8fJ4/5QnkJteI73zUgU+myj5B7GckGGdsbILaGQ43ecySPxi7kJpJMjfYsClF1MpLGQ013RGw2kYRrVTcVHEDL41xNnozz57FWz4/jp5k+irOJmsRKHeuxLp4dQ6Hl7ryZ1HAFFbOU801AZbkGQcu0UBVBeEKNs9Tzm4zHfDlM+Ls3MtpPjGqayuQhp8lHYpcvz1INRGoBd2k+kLzzC+JDbUmsAEG0oYJaUJvnQFS0VdV9czTHPx0f3dZ+aVXrS4fmd9D/XRYA0eGdbwpce1T0MAJ55dt9P9vWGSBD3JPiz9I00JBvnRcHMm9YbM95Oj7aQ/484nsC96V5crs0PzrMjNZgv39d7lZ3Q+ALHIIOgrxF4zuZztbyBSgEPGl9KdPZfDOP5HWcOw0LsPHQleLM6S62qmYyfN+nECwZZymgLKGT6b2RkbxSVbtD4INq8KXjftIon5ecBsUsZMKfCyV9+2C6eMUtmM9psZKpDNFbFVPOap+4fS03Xa4xb4ApH9btp18vuGlrUTgMtQbrh4JFgszCghYr40tu8K+mk+NnokFzpTyIJXTc0Yd8nAyvSYjkZsrgJSjNn8GGfxcusDGeyyKnHqpKoTg1lLVIUIP14rxSvnBYi5PzM84UIPUsJ6Oj0Zhz0Na1Qs7xRQnifowfpqfnj4QhoYR3rhJZayofZDpcKDtQJeGdqNUSRNZWS9GojlHCUyUW6NpGuEIg5KYxweCuAIXfO92CXzlcjm6l9v9H8b19by9KQ+FIK1wDNibXYg6iQccfofCl8mzuqTgrvAvwd8BFQlkdDPy6i1xZkYEoXGt1CCz5R1W5lbELgdA4Mt6hAUqZRyxm1OMlwzXWe0mKmyFJcabyJVg9/6H0vqE0SRbGl202yl2dfBXCo1QE8TsqneBOpQxnuAQxuAVVxhaoyGOb+xYHgVwX/1BNR1+hrMDQKL9F2hbiIW0ryMTW91+rKaGq47xU6Oleynt+iUeApFbGJsODe/U8JOM1VLUIQIG/hqZyHb9eDyoRLbHfss0ALXig0XtuUx6wpnfFFPDK5NyXtrIGmiOHiyQ4xa6IaXCLZGVysBTmy7YBNiovQUxCn+r7M2OlSbJarUYqWAPaEErJz2cvX72dvoono/Go9HUV+mTjyNfK7gH3S7LgLVkMa/JBn9lbk792Gx9Gg4drnzSVMpY3lsB9PQyhWdjZaLfFziNZOvJsWK8zRXCJ1WbDjz+1wI15NucJh0Zl3OZn8020nQI38/Flzze+4ONvBiKv+Jto63SS59D4PfOtVeJgdp6fXLx8LaN+qvLS6TQHoVoxd7UK4zKS6tZQXIahONwwx63JdnuHfz7eeo78lxnfGbJe9yN3s9n596Z/jBgStfXmcvA/Cn8DgWvBcw== +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Updates an SDP user’s role by `user_ID `. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx new file mode 100644 index 0000000000..f2c03176e5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-wallet +title: "Update Wallet" +description: "This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement." +sidebar_label: "Update Wallet" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx new file mode 100644 index 0000000000..eeaa4ef3de --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx @@ -0,0 +1,74 @@ +--- +id: upload-disbursement-instructions +title: "Upload Disbursement Instructions" +description: "Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called." +sidebar_label: "Upload Disbursement Instructions" +hide_title: true +hide_table_of_contents: true +api: eJztWFtz2zYW/isYPCU7lGg7btrwzYmTWe/utJnY2X1QPGOQOBRRgwAKHEhRNfrvnQOSMnWJk03Tnc5O9SCR4rmfD+B3sOYo5oEXM36pQhl9gBYMBn6bcQmh8sqhsoYX/ELKwASrlQZWWYNCGWXmTDCtAjJbMw8VqAX4wNAywdjd5buLNzd3TI7sTtlNowILCI6pwDz8EpUHyUqorQcmdoRZJQwrYa4MqUHnuo0BWUmir67/zYSRrBEhKdY1eNJyNgRVamC19a3AwERVWS8p2KXChmEDe26sqdU8ekGZZskmNrDq3bPaRiOZQDZzsdSqyj0EG30FIR+buYHWaYEQbp80iC4UeT5X2MRyWtk2DwhaCz/8TsaaE9KjYCe1twbByBw9QP7dDz98/6ws62fPq7o+f356Ds9PnklRn5+/OPn+RXkqX9RCnp2L/MvietpV0TroMqUGKAmtswgGMzaPwguDQO1YMQkaMDXYSGqtB5FuD6onEL0qI0JgywYMQ2owGOmsMkg+KqE1yCnP+Nb1leQFf++0FXKMuisT0MeKJALPuBNetIDgCZ5rbkQLvOBK8owrQqQT2PB9mF5dEhYpyrFlnvEBa7xAHyHjAVea7AXVOg084/DRaSuBF7XQgQSqBlrBizXHlUuS6JWZ883mtrMGAV9auSKJKvUN6bKNGpUTHvPUUikw2Xiw9hDIjBOkaan1Hmz5M1QUrPNUK1QQSCNJHcSxn/k4X6ZGpewWDloWU8U7GNDq6deyjq0JCe0L4anzDkxaLrZNhVyK1WHblyJsFw7I7aphtQJNG0VazSGWAXBoSG21tktl5gWb3bnGGrjL2B20Qmm6UJK+RWujQbpagFe1qhJg6N6JVQLJJd0sCVR4IaWHEO5ueca71c4LXioj/Ipv6LPf9vRHcNaErrJnJ6f0s1vIV4R1IJiN2iqc030w+c+B5NaHCPlE/1oIQcyPtJAChI8iAXAsx99QZ7p2gWQhVhWEOmq9+joVUjo/OTlM9aWQ7F0H5W+XLnhv/ZFkKXD0InzeQm3tUf1HCrlXlz4GfmUWQivZQb2DCPvb9OPqVz6OJvnjpfB85IP/aJGJiI316leQ/H/jomvVEVS+NyPBP1GvAgqMYzkT2xL817Vrrx7jKAY/5yenX9Gkb2G4a82zw9a8sb5UUoL54/tyPLuHAL5AoEvj/DANyvgNkZ3/a3jVfYbHAHA+BsDO+9RsNf9g28l8gCp6havEe16C8OAvIja8mN0S+WgBG0sUytm0byciVPAd2hfytZKbXO1SqgB+MfCp6DUvOCeDg79ramtX97HXbX2FU/+E1QHz+Md/blgMIGn3S2sGDPaIyVhQcwOyo97CsNfXZ989Z86rhUBg97AiYthTu4t+uSXNgeU1ICT1e0P3dfdeUJio23VHpneYHnvbk2l28faKZ5zS7aI8m55OT6gGsW2JIBSceNDjNp5cX759SiRWMLRWszIqjSlN6+fC9KGmiacV98DKqO9ZT1T6OWjubXT9fKScSg/sAnyiRIN3A7i0/n56UNo/X4gfzAeThjhyaWicMJNu7mDOW1rDDBuRmH8XijUMrRtI4J65B+JYWQm7Ixcpjmkj8+BsUGi9glBQHBM2+7LBqhTVPRj5O0az3sLToptgt6GshmE4pGB7sZSVMrUX3fKLvk+Q+oKf6+n0v8hsGBm/wdT5udyWULJB9quzaUC3k6oRHh8flEdy3TTcCmXy/o9H8/lcGn8H3bJkKMUvwWm7Gkbbx9daDCR3H0vwBhDC9ANtUwi+DT/V1+AXqqJ9aUirD3Nq/TxPQhNbT0IvlnGtKjAhvUSGDdCJqgF2lvapbn8mW0WeL5fLqUhPk7VeNeT/unr1+sfr15Oz6cm0wVanfZJeC60wI8PdrL2b1d60vbPvjCbavw5+/jr4+b0HPz19QPiIudNCGaJvCd/rnrzM+A554Rkv+oOeEUhvM94Q4ylmfL0uRYD3Xm829PcvEeiNPrvN+EJ4JUriB7M1GaVruT3U+STKn7zrIfmUffII6WgaAzUyxIsWQke64xm/h1V3WrW53WQDi6GYugevOs+TG1J/UDx2erTJBqWLqgKHI/EDbr5DD9/+dH3DM172h1RtOt1KByXJbvZwScQy4+KA7d0nttdfUPBHs93nbV2w9E2hH1VZrzsuudls5btHn9ToK7gtLOW62Wx+Ay1wFCU= +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx new file mode 100644 index 0000000000..ca02e0b383 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/users.tag.mdx @@ -0,0 +1,20 @@ +--- +id: users +title: "Users" +description: "Users" +custom_edit_url: null +--- + + + +The users endpoints facilitate the creation of new SDP users - including setting the appropriate role, sending an email invitation, and activating a user - and managing roles. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx new file mode 100644 index 0000000000..a80fe7ae08 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx @@ -0,0 +1,74 @@ +--- +id: verify-receiver-registration +title: "Verify Receiver Registration" +description: "This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request." +sidebar_label: "Verify Receiver Registration" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: docs/platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request. + + + + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/anatomy-of-an-asset.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/anatomy-of-an-asset.mdx index eb1db4dac0..2abe4a90e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/anatomy-of-an-asset.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/anatomy-of-an-asset.mdx @@ -3,8 +3,6 @@ title: Resumen de Activos sidebar_position: 20 --- -import { CodeExample } from "@site/src/components/CodeExample"; - Emitir activos es una característica central de Stellar: cualquier activo puede ser tokenizado (o acuñado) en la red y luego rastreado, mantenido y negociado rápida y económicamente. Los activos pueden representar muchas cosas: criptomonedas (como bitcoin o ether), monedas fiduciarias (como dólares o pesos), otros tokens de valor (como NFTs), participaciones en fondos, o incluso bonos y acciones. Cualquier cuenta de Stellar puede emitir un activo, y dado que cualquiera puede crear una cuenta, cualquiera puede emitir activos: bancos, procesadores de pagos, negocios de servicios de dinero, empresas con fines de lucro, organizaciones sin fines de lucro, comunidades locales e individuos. Es un proceso autoservicio que no requiere permisos. Emitir un activo en Stellar es fácil y solo requiere varias operaciones. Sin embargo, hay consideraciones adicionales que podrías necesitar evaluar dependiendo de tu caso de uso, tales como la publicación de información sobre el activo, el cumplimiento y la oferta del activo, que cubriremos en esta documentación. Los activos en Stellar tienen dos características identificadoras: el código del activo y el emisor. Dado que más de una organización puede emitir un crédito que represente el mismo activo, los códigos de los activos a menudo se superponen (por ejemplo, varias empresas ofrecen un token USD en Stellar). Los activos se identifican de manera única por la combinación de su código de activo y emisor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/control-asset-access.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/control-asset-access.mdx index 6d73ade735..e5c7bd4fd8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/control-asset-access.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/control-asset-access.mdx @@ -3,9 +3,6 @@ title: Consideraciones sobre el diseño de activos sidebar_position: 40 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - ## Cuentas de emisión y distribución Es práctica recomendada en la red Stellar crear dos cuentas al emitir un activo: 1) la cuenta de emisión y 2) la cuenta de distribución. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/how-to-issue-an-asset.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/how-to-issue-an-asset.mdx index ae57a4898e..38503661f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/how-to-issue-an-asset.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/how-to-issue-an-asset.mdx @@ -7,9 +7,6 @@ sidebar_position: 70 # Tutorial de emisión de activos -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - En este tutorial, recorreremos los pasos para emitir un activo en la red de prueba Stellar. :::note @@ -61,7 +58,7 @@ System.out.println("Issuer Secret Key: " + issuerKeypair.getSecretSeed()); ```go import ( - "github.com/stellar/go/keypair" + "github.com/stellar/go-stellar-sdk/keypair" "fmt" ) @@ -168,8 +165,8 @@ Asset astroDollar = Asset.createNonNativeAsset("AstroDollar", issuerKeypair.getA ```go import ( - "github.com/stellar/go/keypair" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/txnbuild" ) astroDollar := txnbuild.CreditAsset{Code: "AstroDollar", Issuer: issuerKeypair.Address()} @@ -261,10 +258,10 @@ Transaction transaction = new Transaction.Builder(distributorAccount, Network.TE ```go import ( - "github.com/stellar/go/clients/horizonclient" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/clients/horizonclient" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" ) client := horizonclient.DefaultTestNetClient @@ -670,10 +667,10 @@ server.submitTransaction(sendAstroDollars); package main import ( - "github.com/stellar/go/clients/horizonclient" - "github.com/stellar/go/keypair" - "github.com/stellar/go/network" - "github.com/stellar/go/txnbuild" + "github.com/stellar/go-stellar-sdk/clients/horizonclient" + "github.com/stellar/go-stellar-sdk/keypair" + "github.com/stellar/go-stellar-sdk/network" + "github.com/stellar/go-stellar-sdk/txnbuild" "log" ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/publishing-asset-info.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/publishing-asset-info.mdx index a922046655..137ca527d2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/publishing-asset-info.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/publishing-asset-info.mdx @@ -3,9 +3,6 @@ title: Publicar información sobre un activo sidebar_position: 80 --- -import { CodeExample } from "@site/src/components/CodeExample"; -import { Alert } from "@site/src/components/Alert"; - Los activos Stellar se definen por quién los emitió, qué representan y los términos y condiciones de su uso. Todos estos deben ser definidos y hechos públicos por el emisor en un [archivo de información Stellar](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md). Es crucial proporcionar información clara sobre lo que representa. En Stellar, haces eso vinculando tu cuenta emisora a un dominio principal, publicando un archivo de información Stellar en ese dominio y asegurándote de que ese archivo esté completo y sea preciso. Los emisores de activos más exitosos proporcionan a los exchanges, billeteras y posibles compradores mucha información sobre sí mismos para establecer confianza. @@ -133,28 +130,27 @@ También deberías usar la operación `set_options` para establecer el dominio p ```nginx title="Configure stellar.toml for nginx" server { - - server_name my.example.com; - root /var/www/my.example.com; - - location = /.well-known/stellar.toml { - types { } default_type "text/plain; charset=utf-8"; - allow all; - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; - add_header 'Content-Length' 0; - return 204; - } - if ($request_method = 'GET') { - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; - add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; - } - } - - // CertBot SSL configuration - // ... + server_name my.example.com; + root /var/www/my.example.com; + + location = /.well-known/stellar.toml { + types { } default_type "text/plain; charset=utf-8"; + allow all; + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + add_header 'Content-Length' 0; + return 204; + } + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; + } + } + + // CertBot SSL configuration + // ... } ``` @@ -208,33 +204,31 @@ server = Server(horizon_url="https://horizon-testnet.stellar.org") network_passphrase = Network.TESTNET_NETWORK_PASSPHRASE # Keys for accounts to issue and receive the new asset -issuing_keypair = Keypair.from_secret( - "SCZANGBA5YHTNYVVV4C3U252E2B6P6F5T3U6MM63WBSBZATAQI3EBTQ4" -) +issuing_keypair = Keypair.from_secret("SCZANGBA5YHTNYVVV4C3U252E2B6P6F5T3U6MM63WBSBZATAQI3EBTQ4") issuing_public = issuing_keypair.public_key - # Transactions require a valid sequence number that is specific to this account. # We can fetch the current sequence number for the source account from Horizon. issuing_account = server.load_account(issuing_public) transaction = ( - TransactionBuilder( - source_account=issuing_account, - network_passphrase=network_passphrase, - base_fee=100, - ) - .append_set_options_op( - home_domain="yourdomain.com" - ) - .build() + TransactionBuilder( + source_account = issuing_account, + network_passphrase = network_passphrase, + base_fee = 100, + ) + .append_set_options_op( + home_domain = "yourdomain.com" + ) + .build() ) transaction.sign(issuing_keypair) + try: - transaction_resp = server.submit_transaction(transaction) - print(f"Transaction Resp:\n{transaction_resp}") + transaction_resp = server.submit_transaction(transaction) + print(f"Transaction Resp:\n{transaction_resp}") except BaseHorizonError as e: - print(f"Error: {e}") + print(f"Error: {e}") ``` ```java @@ -265,19 +259,19 @@ func main() { } // Build the transaction - tx, err := txnbuild.NewTransaction( - txnbuild.TransactionParams{ - SourceAccount: &issuingAccount, - IncrementSequenceNum: true, - BaseFee: txnbuild.MinBaseFee, - Preconditions: txnbuild.Preconditions{TimeBounds: txnbuild.NewTimeout(100)}, - Operations: []txnbuild.Operation{ - &txnbuild.SetOptions{ - HomeDomain: "yourdomain.com", - }, - }, - }, - ) + tx, err := txnbuild.NewTransaction( + txnbuild.TransactionParams{ + SourceAccount: &issuingAccount, + IncrementSequenceNum: true, + BaseFee: txnbuild.MinBaseFee, + Preconditions: txnbuild.Preconditions{TimeBounds: txnbuild.NewTimeout(100)}, + Operations: []txnbuild.Operation{ + &txnbuild.SetOptions{ + HomeDomain: "yourdomain.com", + }, + }, + }, + ) if err != nil { log.Fatal(err) } diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/quickstart.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/quickstart.mdx index 7256516c2a..9e62ca21e1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/quickstart.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/quickstart.mdx @@ -3,8 +3,6 @@ sidebar_position: 30 title: Comenzar --- -import { CodeExample } from "@site/src/components/CodeExample"; - ¡Emite tu primer activo en la red Stellar en **una sola transacción**! diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tokens/stellar-asset-contract.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tokens/stellar-asset-contract.mdx index 6c71c1eb56..3581fbf628 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tokens/stellar-asset-contract.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tokens/stellar-asset-contract.mdx @@ -41,7 +41,7 @@ Por ejemplo, al transferir de una cuenta Stellar a un contrato Stellar, se debit Y, por ejemplo, al transferir de un contrato Stellar a una cuenta Stellar, se debita una entrada de datos del contrato y se acredita la entrada de la línea de confianza de la cuenta. -En ambos ejemplos, es un solo activo el que se transfiere de la cuenta al contrato y de regreso. No se requiere puente y no se necesitan tokens intermedios. Un activo en Stellar y su Contrato de Activo Stellar representan el mismo activo. El SAC de un activo es simplemente una API para interactuar con el activo. +En ambos ejemplos, es un solo activo el que se transfiere de la cuenta al contrato y de regreso. No se requiere puente y no se necesitan tokens intermedios. Un activo en Stellar y su Stellar Asset Contract representan el mismo activo. El SAC de un activo es simplemente una API para interactuar con el activo. El SAC implementa la [Interfaz de Token SEP-41], que es similar al ampliamente utilizado estándar de token ERC-20. Contracts that depend on only the SEP-41 portion of the SAC's interface, are also compatible with any contract token that implements SEP-41. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/README.mdx index 3d7c403a74..6679ecbb65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/README.mdx @@ -41,10 +41,10 @@ Encuentra otras herramientas para desarrolladores mantenidas por SDF y el ecosis ## Plataformas de SDF -### [Anchor Platform](/platforms/anchor-platform) +### [Plataforma Anchor](../platforms/anchor-platform/README.mdx) La Anchor Platform es un conjunto de herramientas y APIs que permiten a los desarrolladores y empresas crear sus propios servicios de acceso y salida para la red Stellar. Proporciona una interfaz estandarizada, incluyendo la implementación de varias Propuestas del Ecosistema Stellar (SEPs), para facilitar a las empresas la integración con billeteras y exchanges basados en Stellar. -### [Stellar Disbursement Platform (SDP)](/platforms/stellar-disbursement-platform) +### [Stellar Disbursement Platform (SDP)](../platforms/stellar-disbursement-platform/README.mdx) La Stellar Disbursement Platform (SDP) es una herramienta desarrollada para que las organizaciones realicen pagos masivos a un grupo de beneficiarios a través de la red Stellar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/asset-management.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/asset-management.mdx index d3ede419ed..b37f652284 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/asset-management.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/asset-management.mdx @@ -287,5 +287,5 @@ Consulta el saldo después del clawback. stellar contract invoke --id mycontract -- balance --id user ``` -[stellar-cli]: https://developers.stellar.org/docs/tools/cli -[stellar tx new set-options]: https://developers.stellar.org/docs/tools/cli/stellar-cli#stellar-tx-new-set-options +[stellar-cli]: ../stellar-cli.mdx +[stellar tx new set-options]: ../stellar-cli.mdx#stellar-tx-new-set-options diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-build-meta.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-build-meta.mdx new file mode 100644 index 0000000000..44dee01c07 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-build-meta.mdx @@ -0,0 +1,35 @@ +--- +title: Agregar metadatos al contrato WASM durante la compilación +hide_table_of_contents: true +description: Incluir metadatos en el código byte del contrato WASM durante la compilación +custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/contract-build-meta.mdx +--- + +Para construir un contrato inteligente, usa el comando `stellar contract build`. La opción `--meta` te permitirá agregar entradas de metadatos adicionales a la sección personalizada `contractmetav0` del archivo WASM resultante en el momento de la construcción. + +```bash cookbooktest.ignore +export SHA=$(git rev-parse HEAD) +``` + +```bash +stellar contract build \ + --manifest-path ./cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml \ + --meta source_repo=https://github.com/stellar/stellar-cli \ + --meta commit_sha=$SHA +``` + +Luego puedes usar `stellar contract info meta` para ver los metadatos: + +```bash +stellar contract info meta \ + --wasm target/wasm32v1-none/release/test_hello_world.wasm +``` + +```bash cookbooktest.ignore +Contract meta: + • rsver: 1.91.0 (Rust version) + • rssdkver: 23.0.1#510d3feb724c2b01d7e7ab7652f03b9f8efc3f35 (Soroban SDK version and its commit hash) + • cliver: 23.1.4#v20.0.0-646-g70895dd66fb7dbf2f4c2a81cf38546512ba4198e-dirty + • source_repo: https://github.com/stellar/stellar-cli + • commit_sha: c6f881689d3f4936cb3262089eb70142e9ca9c91 +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-lifecycle.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-lifecycle.mdx index c4fcf711fb..b57cb401ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-lifecycle.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/contract-lifecycle.mdx @@ -7,7 +7,7 @@ custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/contr Para gestionar el ciclo de vida de un contrato inteligente Stellar usando la CLI, sigue estos pasos: -1. Configura tu red preferida. Para esta guía, usaremos `testnet`. Puedes encontrar una lista de redes disponibles [aquí](https://developers.stellar.org/docs/networks) +1. Configura tu red preferida. Para esta guía, usaremos `testnet`. Una lista de redes disponibles se puede encontrar [aquí](../../../networks/README.mdx) ```bash stellar network use testnet @@ -41,7 +41,7 @@ Esto mostrará el ID del contrato resultante, por ejemplo: CBB65ZLBQBZL5IYHDHEEPCVUUMFOQUZSQKAJFV36R7TZETCLWGFTRLOQ ``` -Para aprender más sobre cómo construir archivos `.wasm` para contratos, consulta nuestro [tutorial de introducción](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup). +Para aprender más sobre cómo desarrollar archivos de contrato `.wasm`, consulta nuestro [tutorial para comenzar](../../../build/smart-contracts/getting-started/setup.mdx). 5. Invoca una función del contrato: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/deploy-contract.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/deploy-contract.mdx index e5f2b65952..7c5988c3d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/deploy-contract.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/deploy-contract.mdx @@ -1,11 +1,11 @@ --- -title: Desplegar un contrato desde el código byte Wasm instalado +title: Desplegar un contrato desde bytecode Wasm cargado hide_table_of_contents: true -description: Desplegar una instancia de un contrato compilado que ya está instalado en la red +description: Desplegar una instancia de un contrato compilado que ya se ha cargado en la red custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/deploy-contract.mdx --- -Para desplegar una instancia de un contrato inteligente compilado que ya ha sido instalado en la red Stellar, usa el comando `stellar contract deploy`: +Para desplegar una instancia de un contrato inteligente compilado que ya ha sido cargado en la red Stellar, usa el comando `stellar contract deploy`: ```bash stellar contract deploy \ @@ -15,4 +15,8 @@ stellar contract deploy \ --alias ``` -:::tip Opcionalmente, asigna un alias reemplazando `` con el nombre de alias que desees para el contrato. El alias es una asignación almacenada localmente a la dirección del contrato, y puede usarse en otros comandos de stellar-cli en lugar de la dirección. ::: +:::tip + +Opcionalmente, asigna un alias reemplazando `` con el nombre de alias que desees para el contrato. El alias es una asignación almacenada localmente a la dirección del contrato, y puede usarse en otros comandos de stellar-cli en lugar de la dirección. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/payments-and-assets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/payments-and-assets.mdx index 64da2b7413..3e654414bb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/payments-and-assets.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/payments-and-assets.mdx @@ -7,7 +7,7 @@ custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/payme Para enviar pagos y trabajar con activos usando la CLI de Stellar, sigue estos pasos: -1. Configura tu red preferida. Para esta guía, usaremos `testnet`. Puedes encontrar una lista de redes disponibles [aquí](https://developers.stellar.org/docs/networks) +1. Configura tu red preferida. Para esta guía, usaremos `testnet`. Una lista de redes disponibles puede encontrarse [aquí](../../../networks/README.mdx) ```bash stellar network use testnet @@ -59,4 +59,4 @@ stellar contract invoke --id -- transfer --to bob --from ali stellar contract invoke --id -- balance --id bob ``` -Para más información sobre las funciones disponibles en el contrato de activo stellar, consulta el [código de la interfaz del token](https://developers.stellar.org/docs/tokens/token-interface#code). +Para más información sobre las funciones disponibles para el contrato de activo Stellar, consulta el [código de la interfaz de token](../../../tokens/token-interface.mdx#code) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/stellar-keys.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/stellar-keys.mdx index d654648430..3535e765d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/stellar-keys.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/stellar-keys.mdx @@ -2,6 +2,123 @@ title: Claves Stellar hide_table_of_contents: true description: Administrar claves Stellar +custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/stellar-keys.mdx --- -Archivo stub: el archivo real se genera en tiempo de desarrollo con `yarn stellar-cli:build`. +Esta guía te muestra cómo generar, inspeccionar y eliminar una identidad Stellar usando la CLI. + +### 1. Generar una Nueva Identidad + +Ejecuta el siguiente comando para crear un nuevo par de claves y guardarlo bajo el alias llamado `carol`: + +```bash +stellar keys generate carol +``` + +Salida: + +``` +✅ Key saved with alias carol in ".config/soroban/identity/carol.toml" +``` + +La CLI guarda esta identidad en un archivo TOML. + +### 2. Verificar el Archivo de Identidad + +Navega al directorio de configuración y lista su contenido: + +```bash cookbooktest.ignore +cd .config/soroban/identity && ls +``` + +Salida: + +``` +carol.toml +``` + +El archivo carol.toml contiene la frase Seed para tu identidad. + +### 3. Ver la Frase Seed + +```bash cookbooktest.ignore +cat carol.toml +``` + +Salida: + +``` +seed_phrase = "patrol clean public grocery roof aim have valve cherry dismiss lunar tail duty license capable little version banana amount often cover dice couple party" +``` + +:::danger + +Nota: La frase Seed es información sensible. Trátala con cuidado y nunca la expongas públicamente. + +::: + +### 4. Derivar la Clave Secreta + +Para mostrar la clave secreta de la identidad carol: + +```bash +stellar keys secret carol +``` + +Salida: + +``` +SCJP663VYFZPYN75H2DYJA3FYUBP5UR23HZ4ZDHDMDY6TXVYUYMWNKTI +``` + +:::danger + +Nota: La clave secreta es información sensible. Trátala con cuidado y nunca la expongas públicamente. + +::: + +### 5. Derivar la Clave Pública + +Para mostrar la clave pública correspondiente a la identidad carol: + +```bash +stellar keys public-key carol +``` + +Salida: + +``` +GD3BFFX7DTNJAGDVVM5RYGGQQNURZTH4VSBLWF55YXY3L6T2WWZK57EI +``` + +Esta es la dirección pública de tu clave. + +### 6. Fondéa esta cuenta + +```bash +stellar keys fund carol +``` + +Salida: + +``` +✅ Account carol funded on "Test SDF Network ; September 2015" +``` + +También puedes fondear la cuenta mientras creas la clave usando `stellar keys generate --fund`. + +### 7. Eliminar la Identidad + +Cuando ya no necesites esta identidad, elimínala usando: + +```bash +stellar keys rm carol +``` + +Salida: + +``` +ℹ️ Removing the key's cli config file +``` + +En este punto, el archivo de identidad carol.toml se elimina y el alias ya no está disponible en la CLI. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-new.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-new.mdx index 42cdb69e77..da58a98c7d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-new.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-new.mdx @@ -31,7 +31,7 @@ stellar network use testnet ### Crear cuenta -Crea y financia una nueva cuenta Stellar. La cuenta `alice` fue financiada por [friendbot](https://developers.stellar.org/docs/learn/fundamentals/networks#friendbot). Sin embargo, `bob` y `charlie` no fueron financiados. Por lo tanto, podemos usar el comando `create-account` para financiarlos. +Crea y financia una nueva cuenta Stellar. Arriba, `alice` fue financiado por [friendbot](../../../networks/README.mdx#friendbot). Sin embargo, `bob` y `charlie` no fueron financiados. Por lo tanto, podemos usar el comando `create-account` para financiarlos. `bob` recibirá 10 XLM y `charlie` recibirá 1 XLM. @@ -187,7 +187,3 @@ Notas: - `--data-name`: Nombre de la entrada de datos (hasta 64 bytes) - `--data-value`: Valor codificado en hexadecimal a almacenar (hasta 64 bytes, omitir para eliminar) - -``` - -``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-sign.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-sign.mdx index dbe8bd4783..3384879364 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-sign.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/tx-sign.mdx @@ -48,7 +48,9 @@ AAAAAgAAAAAebE8Ewg9uzvHRAl+UmvP0kixsyp238kkz0zOy+91FeQAAAGQAFJk4AAAAAQAAAAAAAAAA Puedes nuevamente [verlo en lab y observar que ahora hay una firma adjunta al sobre de la transacción](https://lab.stellar.org/xdr/view?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&rpcUrl=https:////soroban-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;&xdr$blob=AAAAAgAAAAAebE8Ewg9uzvHRAl+UmvP0kixsyp238kkz0zOy+91FeQAAAGQAFJk4AAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPpiy8qfSw4pLYG//Bav78FfrFWlte7YQfiHX41DQ+nGWAAAAAAX14QAAAAAAAAAAAfvdRXkAAABA4kjz9Yeub//IrzogjMr57U4nYwCmSJAXxIW+7Xyjan//UweIByF7uEhVS4gEl1N138uq07njVxZwRMtugWyMleCg==;;). -::tip ¡O firma con lab! Aunque actualmente debes enviarla desde lab y no es posible regresar a la CLI (¡un trabajo en progreso!). +:::tip + +¡O firma con lab! Aunque actualmente debes enviarlo desde lab y no puedes regresar al CLI (¡un trabajo en progreso!). ```sh stellar tx new create-account \ @@ -63,7 +65,7 @@ stellar tx new create-account \ ## `tx send` -Finalmente, para enviar la transacción a la red puedes usar el comando `tx send`. Este comando enviará la transacción a la red. +Finalmente, para enviar la transacción a la red, puedes usar el comando `tx send`. Este comando enviará la transacción a la red. ```sh stellar tx new create-account \ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-deploy.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-deploy.mdx new file mode 100644 index 0000000000..2efabaa34e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-deploy.mdx @@ -0,0 +1,15 @@ +--- +title: Sube y despliega un contrato inteligente +hide_table_of_contents: true +description: Combina los comandos de subir y desplegar en la CLI de Stellar para realizar ambas tareas +custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/upload-deploy.mdx +--- + +Puedes combinar los comandos `upload` y `deploy` del Stellar CLI para realizar ambas tareas: + +```bash +stellar contract deploy \ + --source S... \ + --network testnet \ + --wasm ../relative/path/to/soroban_contract.wasm +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-wasm.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-wasm.mdx new file mode 100644 index 0000000000..93dd732a54 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/cookbook/upload-wasm.mdx @@ -0,0 +1,21 @@ +--- +title: Subir el bytecode Wasm +hide_table_of_contents: true +description: Usa la CLI de Stellar para subir un contrato inteligente compilado al ledger +custom_edit_url: https://github.com/stellar/stellar-cli/edit/main/cookbook/upload-wasm.mdx +--- + +Para usar el CLI de Stellar y subir un contrato inteligente compilado en el ledger, utiliza el comando `stellar contract upload`: + +```bash +stellar contract upload \ + --source S... \ + --network testnet \ + --wasm ../relative/path/to/soroban_contract.wasm +``` + +:::note + +Ten en cuenta que este comando devolverá el hash ID del bytecode Wasm, en vez de una dirección para una instancia de contrato. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/install-cli.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/install-cli.mdx index a84457e382..35be0a6612 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/install-cli.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/install-cli.mdx @@ -12,6 +12,12 @@ import { StellarCliGitHubVersion } from "@site/src/components/StellarCliGitHubVe Hay varias formas de instalar la versión más reciente del Stellar CLI. +Instalar con script (macOS, Linux): + +```text +curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh +``` + Instalar con Homebrew (macOS, Linux): ```text @@ -80,9 +86,9 @@ echo "source <(stellar completion --shell bash)" >> ~/.bashrc ## Recetario del Stellar CLI -Para entender cómo aprovechar al máximo el Stellar CLI, consulta el [Recetario del Stellar CLI](https://github.com/stellar/stellar-cli/tree/main/cookbook) para recetas y una colección de recursos que te enseñarán cómo usar el CLI. Ejemplos de recetas incluidas en el recetario del CLI son: enviar pagos, gestionar el ciclo de vida del contrato, extender instancia/almacenamiento/wasm del contrato, y más. +Para entender cómo aprovechar al máximo la CLI de Stellar, consulta el [Manual de Cocina de la CLI de Stellar](./cookbook/README.mdx) para recetas y una colección de recursos que te enseñarán a usar la CLI. Ejemplos de recetas incluidas en el recetario del CLI son: enviar pagos, gestionar el ciclo de vida del contrato, extender instancia/almacenamiento/wasm del contrato, y más. ## Tutoriales en video -- Tutorial en video sobre `network container`, `keys`, y `contract init`: https://developers.stellar.org/meetings/2024/06/27 -- Tutorial en video sobre `alias` y `snapshot`: https://developers.stellar.org/meetings/2024/09/12 +- Video tutorial sobre `network container`, `keys` y `contract init` de la [reunión de desarrolladores del 2024-06-27](/meetings/2024/06/27) +- Video tutorial sobre `alias` y `snapshot` de la [reunión de desarrolladores del 2024-09-12](/meetings/2024/09/12) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins-list.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins-list.mdx new file mode 100644 index 0000000000..6026ec381d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins-list.mdx @@ -0,0 +1,37 @@ +--- +title: Lista de Plugins +description: Consulta una lista de plugins publicados de Stellar CLI +sidebar_position: 30 +--- + +Esta es una lista de todos los plugins disponibles ofrecidos por la comunidad, así que revísalos con cuidado antes de usarlos. + +### [theahaco/scaffold-stellar](https://github.com/theahaco/scaffold-stellar) + +El ciclo de vida de la aplicación Stellar simplificado. CLI `stellar scaffold`: inicia, aprende y desarrolla aplicaciones ambiciosas. CLI `stellar registry`: crea, publica, despliega y actualiza binarios Wasm + contratos inteligentes (o usa los de otros) + +[https://github.com/theahaco/scaffold-stellar](https://github.com/theahaco/scaffold-stellar) + +### [lightsail-network/stellar-contract-bindings](https://github.com/lightsail-network/stellar-contract-bindings) + +Herramienta CLI diseñada para generar enlaces de lenguaje para contratos inteligentes Stellar Soroban. + +[https://github.com/lightsail-network/stellar-contract-bindings](https://github.com/lightsail-network/stellar-contract-bindings) + +### [OpenZeppelin/stellar-upgrader-cli](https://github.com/OpenZeppelin/stellar-upgrader-cli) + +CLI que ayuda a los desarrolladores a actualizar contratos Stellar + +[https://github.com/OpenZeppelin/stellar-upgrader-cli](https://github.com/OpenZeppelin/stellar-upgrader-cli) + +### [brozorec/smart-account-sign](https://github.com/brozorec/smart-account-sign) + +Herramienta CLI para interactuar con Stellar Smart Accounts + +[https://github.com/brozorec/smart-account-sign](https://github.com/brozorec/smart-account-sign) + +### [fnando/stellar-hello-plugin](https://github.com/fnando/stellar-hello-plugin) + +Este es solo un plugin de ejemplo para Stellar CLI + +[https://github.com/fnando/stellar-hello-plugin](https://github.com/fnando/stellar-hello-plugin) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins.mdx index e8df359354..784d16859d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/plugins.mdx @@ -24,10 +24,10 @@ Eso instalará el binario `stellar-strkey` en tu directorio `~/.cargo/bin`. Para ## Listar plugins disponibles -Para listar los plugins disponibles en tu sistema, usa el comando `stellar plugins --list`: +Para listar los plugins disponibles en tu sistema, usa el comando `stellar plugin ls`: ```console -$ stellar plugins --list +$ stellar plugin ls Installed Plugins: strkey ``` @@ -57,7 +57,7 @@ chmod +x ~/.bin/stellar-hello Si todo está configurado correctamente (es decir, el `~/.bin` está en tu `PATH` y `~/.bin/stellar-hello` es ejecutable), deberías poder encontrarlo: ```console -$ stellar plugins --list +$ stellar plugin ls Installed Plugins: hello strkey diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/stellar-cli.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/stellar-cli.mdx index ca15ae9228..a8bcada2e0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/stellar-cli.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/cli/stellar-cli.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 30 +sidebar_position: 10 description: Este documento contiene el contenido de ayuda para el programa de línea de comandos Stellar. --- @@ -66,6 +66,7 @@ stellar contract invoke --id CCR6QKTWZQYW6YUJ7UP7XXZRLWQPFRV6SWBLQS4ZQOSAF4BOUD7 - `snapshot` — Descarga una imagen de un ledger desde un archivo de respaldo - `tx` — Firmar, simular y enviar transacciones - `xdr` — Decodificar y codificar XDR +- `strkey` — Decodificar y codificar strkey - `completion` — Imprimir código de autocompletado para el shell especificado - `cache` — Almacenar en caché transacciones y especificaciones de contratos - `version` — Imprimir información de versión @@ -75,13 +76,16 @@ stellar contract invoke --id CCR6QKTWZQYW6YUJ7UP7XXZRLWQPFRV6SWBLQS4ZQOSAF4BOUD7 ###### **Opciones:** +- `--list` — ⚠️ Obsoleto, usa `stellar plugin ls`. Listar los plugins instalados. Por ejemplo. `stellar-hello` + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes - `-f`, `--filter-logs ` — Filtrar salida de logs. Para activar `stellar_cli::log::footprint=debug` o apagar `=off`. También se puede usar la variable de entorno `RUST_LOG` - `-q`, `--quiet` — No escribir logs en stderr incluyendo `INFO` - `-v`, `--verbose` — Registrar eventos DEBUG - `--very-verbose` [alias: `vv`] — Registrar eventos DEBUG y TRACE -- `--list` — Listar plugins instalados. Por ejemplo. `stellar-hello` - `--no-cache` — No almacenar en caché tus simulaciones y transacciones ## `stellar contract` @@ -102,11 +106,11 @@ Herramientas para desarrolladores de contratos inteligentes - `id` — Generar el id del contrato para un contrato o activo dado - `info` — Acceder a información sobre contratos - `init` — Inicializar un proyecto de contrato Soroban -- `inspect` — (Obsoleto a favor del subcomando `contract info`) Inspeccionar un archivo WASM listando funciones del contrato, meta, etc. +- `inspect` — ⚠️ Obsoleto, usa `contract info`. Inspeccionar un archivo WASM listando funciones del contrato, metadatos, etc. - `upload` — Instalar un archivo WASM en el ledger sin crear una instancia del contrato -- `install` — (Obsoleto a favor del subcomando `contract upload`) Instalar un archivo WASM en el ledger sin crear una instancia del contrato +- `install` — ⚠️ Obsoleto, usa `contract upload`. Instala un archivo WASM en el ledger sin crear una instancia de contrato - `invoke` — Invocar una función de contrato -- `optimize` — Optimizar un archivo WASM +- `optimize` — ⚠️ Obsoleto, usa `build --optimize`. Optimizar un archivo WASM - `read` — Imprimir el valor actual de una entrada del ledger de datos del contrato - `restore` — Restaurar un valor evicto para una entrada del ledger de datos del contrato @@ -129,13 +133,19 @@ Obtener el Id del contrato de activo Soroban integrado. Obsoleto, usa `stellar c ###### **Opciones:** -- `--asset ` — ID del activo clásico Stellar a envolver, por ejemplo "USDC:G...5" +- `--asset ` — ID del activo clásico Stellar a envolver, por ejemplo "native", "USDC:G...5", "USDC:alias" + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Header(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de red a usar de la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar contract asset deploy` @@ -146,28 +156,27 @@ Desplegar contrato de activo Soroban integrado ###### **Opciones:** - `--asset ` — ID del activo clásico Stellar a envolver, por ejemplo "USDC:G...5" - -- `--rpc-url ` — Endpoint del servidor RPC - -- `--rpc-header ` — Header(s) RPC a incluir en las solicitudes al proveedor de RPC - -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - -- `-n`, `--network ` — Nombre de red a usar de la configuración - - `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa frase Seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--alias ` — El alias que se utilizará para guardar el id del activo. Siempre que se use, `--alias` siempre sobrescribirá la configuración existente del id del contrato sin pedir confirmación -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--sign-with-key ` — Firma con una clave local o clave guardada en almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…) o una frase semilla (--sign-with-key "kite urban…"). Si usas la frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** + +- `--rpc-url ` — Endpoint del servidor RPC -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta determinista jerárquica usar, p.ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-lab` — Firma con https://lab.stellar.org +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC -- `--sign-with-ledger` — Firma con una billetera ledger +- `-n`, `--network ` — Nombre de red a usar de la configuración - `--fee ` — Cantidad de tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -177,9 +186,9 @@ Desplegar contrato de activo Soroban integrado - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el base64 xdr a stdout +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción -- `--alias ` — El alias que se utilizará para guardar el id del activo. Siempre que se use, `--alias` siempre sobrescribirá la configuración existente del id del contrato sin pedir confirmación +- `--build-only` — Construir la transacción y solo escribir el base64 xdr a stdout ## `stellar contract alias` @@ -204,14 +213,17 @@ Eliminar alias de contrato - `` — El alias de contrato que será eliminado -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Header(s) RPC a incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC -- `-n`, `--network ` — Nombre de red a usar de la configuración +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC +- `-n`, `--network ` — Nombre de la red a usar desde la configuración ## `stellar contract alias add` @@ -225,14 +237,20 @@ Agregar alias de contrato ###### **Opciones:** +- `--overwrite` — Sobrescribir el alias de contrato si ya existe +- `--id ` — El id del contrato que se asociará con el alias + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Header(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de red a usar de la configuración -- `--overwrite` — Sobrescribir el alias de contrato si ya existe -- `--id ` — El id del contrato que se asociará con el alias ## `stellar contract alias show` @@ -244,12 +262,15 @@ Mostrar el id del contrato asociado a un alias dado - `` — El alias de contrato que será mostrado -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Header(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de red a usar de la configuración @@ -259,7 +280,7 @@ Listar todos los alias **Uso:** `stellar contract alias ls [OPTIONS]` -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes @@ -312,14 +333,20 @@ Generar un paquete de TypeScript / JavaScript - `--wasm ` — Ruta del archivo wasm en el sistema de archivos local. Proporciona esto O `--wasm-hash` O `--contract-id` - `--wasm-hash ` — Hash del blob wasm en una red. Proporciona esto O `--wasm` O `--contract-id` - `--contract-id ` [alias: `id`] — ID/alias del contrato en una red. Proporciona esto O `--wasm-hash` O `--wasm` +- `--output-dir ` — Dónde colocar el proyecto generado +- `--overwrite` — Si se debe sobrescribir el directorio de salida si ya existe + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar del config -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--output-dir ` — Dónde colocar el proyecto generado -- `--overwrite` — Si se debe sobrescribir el directorio de salida si ya existe ## `vínculos de contrato stellar python` @@ -363,6 +390,16 @@ Para ver los comandos que se ejecutarán, sin ejecutarlos, usa la opción --prin **Uso:** `stellar contract build [OPTIONS]` +###### **Características:** + +- `--features ` — Construir con la lista de características activadas, separadas por espacio o coma +- `--all-features` — Construir con todas las características activadas +- `--no-default-features` — Construir sin activar la característica predeterminada + +###### **Metadatos:** + +- `--meta ` — Agregar clave-valor a los metadatos del contrato (agrega el meta a la sección personalizada `contractmetav0`) + ###### **Opciones:** - `--manifest-path ` — Ruta al Cargo.toml @@ -375,21 +412,17 @@ Para ver los comandos que se ejecutarán, sin ejecutarlos, usa la opción --prin Valor predeterminado: `release` -- `--features ` — Construir con la lista de características activadas, separadas por espacio o coma - -- `--all-features` — Construir con todas las características activadas - -- `--no-default-features` — Construir sin activar la característica predeterminada - - `--out-dir ` — Directorio para copiar archivos wasm Si se proporciona, los archivos wasm pueden encontrarse en el directorio de destino de cargo, y en el directorio especificado. Si se omite, los archivos wasm se escriben solo en el directorio de destino de cargo. -- `--print-commands-only` — Imprimir comandos para construir sin ejecutarlos +- `--optimize` — Optimizar el wasm generado -- `--meta ` — Agregar clave-valor a los metadatos del contrato (agrega el meta a la sección personalizada `contractmetav0`) +###### **Otros:** + +- `--print-commands-only` — Imprimir comandos para construir sin ejecutarlos ## `contrato stellar extender` @@ -424,27 +457,30 @@ Si no se especifican claves, el contrato en sí se extiende. - `persistent`: Persistente - `temporary`: Temporal -- `--rpc-url ` — Punto final del servidor RPC +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` -- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` -- `-n`, `--network ` — Nombre de la red a utilizar del config +- `--sign-with-lab` — Firmar con https://lab.stellar.org -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-ledger` — Firmar con una wallet ledger -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--rpc-url ` — Punto final del servidor RPC -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a utilizar del config - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -454,6 +490,8 @@ Si no se especifican claves, el contrato en sí se extiende. - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr en base64 en stdout ## `contrato stellar desplegar` @@ -472,29 +510,38 @@ Desplegar un contrato wasm - `--wasm-hash ` — Hash del archivo WASM ya instalado/desplegado -- `--salt ` — Sal personalizada de 32 bytes para el id del token +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará -- `--rpc-url ` — Punto final del servidor RPC +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` -- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc +- `--sign-with-lab` — Firmar con https://lab.stellar.org -- `-n`, `--network ` — Nombre de la red a utilizar del config +- `--sign-with-ledger` — Firmar con una wallet ledger -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `-i`, `--ignore-checks` — Si deseas ignorar las comprobaciones de seguridad al desplegar contratos -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa + Valor predeterminado: `false` + +- `--alias ` — El alias que se utilizará para guardar el id del contrato. Siempre que se utilice, `--alias` siempre sobrescribirá la configuración del id del contrato existente sin pedir confirmación + +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--salt ` — Sal personalizada de 32 bytes para el id del token -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-url ` — Punto final del servidor RPC -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces + +- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a utilizar del config - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -504,13 +551,9 @@ Desplegar un contrato wasm - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el xdr en base64 en stdout - -- `-i`, `--ignore-checks` — Si deseas ignorar las comprobaciones de seguridad al desplegar contratos - - Valor predeterminado: `false` +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción -- `--alias ` — El alias que se utilizará para guardar el id del contrato. Siempre que se utilice, `--alias` siempre sobrescribirá la configuración del id del contrato existente sin pedir confirmación +- `--build-only` — Construir la transacción y solo escribir el xdr en base64 en stdout ## `contrato stellar obtener` @@ -523,10 +566,16 @@ Obtener el binario wasm de un contrato - `--id ` — ID del contrato a obtener - `--wasm-hash ` — Wasm para obtener - `-o`, `--out-file ` — Dónde escribir la salida, de lo contrario se usa stdout + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar del config @@ -549,13 +598,19 @@ Desplegar contrato de activo integrado de Soroban ###### **Opciones:** -- `--asset ` — ID del activo clásico de Stellar a envolver, por ejemplo, "USDC:G...5" +- `--asset ` — ID del activo clásico Stellar a envolver, por ejemplo "native", "USDC:G...5", "USDC:alias" + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes ## `stellar contract id wasm` @@ -566,18 +621,24 @@ Desplegar contrato Wasm normal ###### **Opciones:** - `--salt ` — ID del contrato Soroban -- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a usar desde la configuración - `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una wallet ledger +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar contract info` Accede a la información sobre contratos @@ -608,12 +669,6 @@ No produce datos cuando no hay datos presentes en el contrato. - `--wasm ` — Ruta del archivo Wasm en el sistema de archivos local. Proporciona esto O `--wasm-hash` O `--contract-id` - `--wasm-hash ` — Hash del blob Wasm en una red. Proporciona esto O `--wasm` O `--contract-id` - `--contract-id ` [alias: `id`] — ID/alias del contrato en una red. Proporciona esto O `--wasm-hash` O `--wasm` -- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--output ` — Formato de la salida Valor predeterminado: `rust` @@ -625,6 +680,18 @@ No produce datos cuando no hay datos presentes en el contrato. - `json`: Salida JSON de la entrada de información (una línea, no formateada) - `json-formatted`: Salida JSON formateada (multilínea) de la entrada de información +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar contract info meta` Muestra los metadatos almacenados en un contrato. @@ -642,12 +709,6 @@ No devuelve datos cuando no hay datos presentes en el contrato. - `--wasm ` — Ruta del archivo Wasm en el sistema local. Proporcionar esto O `--wasm-hash` O `--contract-id` - `--wasm-hash ` — Hash del blob Wasm en la red. Proporcionar esto O `--wasm` O `--contract-id` - `--contract-id ` [alias: `id`] — ID/alias del contrato en la red. Proporcionar esto O `--wasm-hash` O `--wasm` -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Cabezera(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red para usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--output ` — Formato de la salida Valor predeterminado: `text` @@ -659,6 +720,18 @@ No devuelve datos cuando no hay datos presentes en el contrato. - `json`: Salida JSON de la entrada de información (una línea, no formateada) - `json-formatted`: Salida JSON formateada (multilínea) de la entrada de información +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red para usar desde la configuración + ## `stellar contract info env-meta` Muestra los metadatos necesarios del entorno almacenados en un contrato. @@ -676,12 +749,6 @@ No produce datos cuando no hay datos presentes en el contrato. - `--wasm ` — Ruta del archivo Wasm en el sistema de archivos local. Proporciona esto O `--wasm-hash` O `--contract-id` - `--wasm-hash ` — Hash del blob Wasm en una red. Proporciona esto O `--wasm` O `--contract-id` - `--contract-id ` [alias: `id`] — ID/alias del contrato en una red. Proporciona esto O `--wasm-hash` O `--wasm` -- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--output ` — Formato de la salida Valor predeterminado: `text` @@ -693,6 +760,18 @@ No produce datos cuando no hay datos presentes en el contrato. - `json`: Salida JSON de la entrada de información (una línea, no formateada) - `json-formatted`: Salida JSON formateada (multilínea) de la entrada de información +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `información de compilación del contrato stellar` Muestra la información de compilación del contrato, si está disponible. @@ -706,12 +785,18 @@ Si el contrato tiene una entrada meta como `source_repo=github:user/repo`, este - `--wasm ` — Ruta del archivo Wasm en el sistema de archivos local. Proporciona esto O `--wasm-hash` O `--contract-id` - `--wasm-hash ` — Hash del blob Wasm en una red. Proporciona esto O `--wasm` O `--contract-id` - `--contract-id ` [alias: `id`] — ID/alias del contrato en una red. Proporciona esto O `--wasm-hash` O `--wasm` + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar contract init` @@ -735,14 +820,13 @@ Este comando creará un proyecto de espacio de trabajo Cargo y añadirá un cont ## `stellar contract inspect` -(Obsoleto a favor del subcomando `contract info`) Inspecciona un archivo WASM listando funciones del contrato, meta, etc +⚠️ Obsoleto, usa `contract info`. Inspeccionar un archivo WASM listando funciones del contrato, metadatos, etc. **Uso:** `stellar contract inspect [OPCIONES] --wasm ` ###### **Opciones:** - `--wasm ` — Ruta al binario wasm - - `--output ` — Solo salida XDR en base64 Valor predeterminado: `docs` @@ -753,39 +837,43 @@ Este comando creará un proyecto de espacio de trabajo Cargo y añadirá un cont - `xdr-base64-array`: Matriz de xdr de entradas de especificaciones del contrato - `docs`: Impresión bonita de entradas de especificaciones del contrato -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar contract upload` -Instala un archivo WASM en el ledger sin crear una instancia de contrato +Instalar un archivo WASM en el ledger sin crear una instancia de contrato **Uso:** `stellar contract upload [OPCIONES] --source-account --wasm ` ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC - -- `--rpc-header ` — Cabecera(s) RPC para incluir en las solicitudes al proveedor RPC - -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Valor por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una wallet ledger +- `--wasm ` — Ruta al binario wasm +- `-i`, `--ignore-checks` — Si ignorar las comprobaciones de seguridad al desplegar contratos -- `-n`, `--network ` — Nombre de la red a usar desde la configuración + Valor por defecto: `false` -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Valor por defecto: `0` +- `--rpc-url ` — punto final del servidor RPC -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a usar desde la configuración - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -795,43 +883,42 @@ Instala un archivo WASM en el ledger sin crear una instancia de contrato - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el base64 xdr a stdout - -- `--wasm ` — Ruta al binario wasm - -- `-i`, `--ignore-checks` — Si ignorar las comprobaciones de seguridad al desplegar contratos +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción - Valor por defecto: `false` +- `--build-only` — Construir la transacción y solo escribir el base64 xdr a stdout ## `instalar contrato stellar` -(Obsoleto en favor del subcomando `contract upload`) Instalar un archivo WASM en el ledger sin crear una instancia de contrato +⚠️ Obsoleto, usa `contract upload`. Instalar un archivo WASM en el ledger sin crear una instancia de contrato **Uso:** `stellar contract install [OPTIONS] --source-account --wasm ` ###### **Opciones:** -- `--rpc-url ` — Punto final del servidor RPC +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una wallet ledger +- `--wasm ` — Ruta al binario wasm +- `-i`, `--ignore-checks` — Si ignorar las comprobaciones de seguridad al desplegar contratos -- `--rpc-header ` — Cabecera(s) RPC a incluir en las solicitudes al proveedor de RPC + Valor por defecto: `false` -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - -- `-n`, `--network ` — Nombre de la red a usar desde la configuración - -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--rpc-url ` — Punto final del servidor RPC -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a usar desde la configuración - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -841,13 +928,9 @@ Instala un archivo WASM en el ledger sin crear una instancia de contrato - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el xdr en base64 a stdout - -- `--wasm ` — Ruta al binario wasm - -- `-i`, `--ignore-checks` — Si ignorar las comprobaciones de seguridad al desplegar contratos +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción - Valor por defecto: `false` +- `--build-only` — Construir la transacción y solo escribir el xdr en base64 a stdout ## `invocar contrato stellar` @@ -866,30 +949,36 @@ invocar contrato stellar ... -- --help ###### **Opciones:** - `--id ` — ID del contrato a invocar +- `--is-view` — ⚠️ Obsoleto, usa `--send=no`. Ver el resultado simulando y no firmar ni enviar la transacción +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una wallet ledger +- `--send ` — Si enviar o no una transacción -- `--is-view` — Visualiza el resultado simulando y no firma ni envía transacción. Obsoleto usar `--send=no` - -- `--rpc-url ` — Punto final del servidor RPC - -- `--rpc-header ` — Cabecera(s) RPC a incluir en las solicitudes al proveedor de RPC + Valor por defecto: `default` -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc + Valores posibles: -- `-n`, `--network ` — Nombre de la red a usar desde la configuración + - `default`: Enviar transacción si la simulación indica que hay escrituras en el ledger, eventos publicados o se requiere autenticación, de lo contrario devolver el resultado de la simulación + - `no`: No enviar transacción, devolver resultado de la simulación + - `sí`: Siempre enviar transacción -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--rpc-url ` — Punto final del servidor RPC -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a usar desde la configuración - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -899,21 +988,13 @@ invocar contrato stellar ... -- --help - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el xdr en base64 a stdout - -- `--send ` — Si enviar o no una transacción - - Valor por defecto: `default` - - Valores posibles: +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción - - `default`: Enviar transacción si la simulación indica que hay escrituras en el ledger, eventos publicados o se requiere autenticación, de lo contrario devolver el resultado de la simulación - - `no`: No enviar transacción, devolver resultado de la simulación - - `sí`: Siempre enviar transacción +- `--build-only` — Construir la transacción y solo escribir el xdr en base64 a stdout ## `optimizar contrato stellar` -Optimizar un archivo WASM +⚠️ Obsoleto, usa `build --optimize`. Optimizar un archivo WASM **Uso:** `stellar contract optimize [OPTIONS] --wasm ...` @@ -959,18 +1040,18 @@ Imprimir el valor actual de una entrada de ledger de datos de contrato - `persistent`: Persistente - `temporary`: Temporal -- `--rpc-url ` — Punto final del servidor RPC +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--rpc-header ` — Cabecera(s) RPC a incluir en las solicitudes al proveedor de RPC +###### **Opciones (RPC):** +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - ## `restaurar contrato stellar` Restaurar un valor desalojado de una entrada de ledger de datos de contrato. @@ -1004,27 +1085,30 @@ Si no se especifican claves, el contrato en sí se restaurará. - `--ttl-ledger-only` — Solo imprimir el nuevo ledger de Tiempo de Vida -- `--rpc-url ` — Punto final del servidor RPC +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` -- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` -- `-n`, `--network ` — Nombre de la red a utilizar de la configuración +- `--sign-with-lab` — Firmar con https://lab.stellar.org -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-ledger` — Firmar con una wallet ledger -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones (RPC):** -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--rpc-url ` — Punto final del servidor RPC -- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces -- `--sign-with-ledger` — Firmar con una wallet ledger +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC + +- `-n`, `--network ` — Nombre de la red a utilizar de la configuración - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -1034,6 +1118,8 @@ Si no se especifican claves, el contrato en sí se restaurará. - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr en base64 a stdout ## `stellar doctor` @@ -1042,7 +1128,7 @@ Diagnosticar y solucionar incidencias en CLI y red **Uso:** `stellar doctor [OPTIONS]` -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1053,6 +1139,32 @@ Observa la red para eventos de contratos **Uso:** `stellar events [OPTIONS]` +###### **FILTROS:** + +- `--id ` — Un conjunto de (hasta 5) IDs de contratos para filtrar eventos. Este parámetro se puede pasar varias veces, por ejemplo, `--id C123.. --id C456..`, o pasado con múltiples parámetros, por ejemplo, `--id C123 C456`. + + Aunque la especificación admite múltiples objetos de filtro (es decir, combinaciones de tipo, IDs y temas), solo se puede especificar un conjunto en la línea de comandos hoy, aunque ese conjunto puede tener múltiples IDs/temas. + +- `--topic ` — Un conjunto de filtros de tema (hasta 5) para filtrar temas de eventos. Un filtro de tema único puede contener de 1 a 4 segmentos diferentes, separados por comas. Un asterisco (`*` carácter) indica un segmento comodín. + + Además de hasta 4 segmentos posibles de filtro de tema, también se puede añadir el comodín "**", que permitirá un número flexible de temas en los eventos devueltos. El comodín "**" debe ser el último segmento en una consulta. + + Si no se incluye el comodín "\*\*", solo se devolverán eventos con el número exacto de temas que el filtro dado. + + **Ejemplo:** filtro de tema con dos segmentos: `--topic "AAAABQAAAAdDT1VOVEURSAA==,*"` + + **Ejemplo:** dos filtros de tema con uno y dos segmentos cada uno: `--topic "AAAABQAAAAdDT1VOTE...` --topic '_,_'\` + + **Ejemplo:** filtro de tema con cuatro segmentos y el comodín "**": --topic "AAAABQAAAAdDT1VOTEVSAA==,_,_,\*,**" + + Ten en cuenta que todos estos filtros de tema se combinan con los IDs de contrato en un solo filtro (es decir, combinación de tipo, IDs y temas). + +- `--type ` — Especifica qué tipo de eventos de contrato mostrar + + Valor predeterminado: `all` + + Valores posibles: `all`, `contract`, `system` + ###### **Opciones:** - `--start-ledger ` — El primer número de secuencia de ledger en el rango para obtener eventos https://developers.stellar.org/docs/learn/encyclopedia/network-configuration/ledger-headers#ledger-sequence @@ -1073,34 +1185,16 @@ Observa la red para eventos de contratos Valor predeterminado: `10` -- `--id ` — Un conjunto de (hasta 5) IDs de contratos para filtrar eventos. Este parámetro se puede pasar varias veces, por ejemplo, `--id C123.. --id C456..`, o pasado con múltiples parámetros, por ejemplo, `--id C123 C456`. - - Aunque la especificación admite múltiples objetos de filtro (es decir, combinaciones de tipo, IDs y temas), solo se puede especificar un conjunto en la línea de comandos hoy, aunque ese conjunto puede tener múltiples IDs/temas. - -- `--topic ` — Un conjunto de (hasta 4) filtros de tema para filtrar los temas de eventos. Un solo filtro de tema puede contener de 1 a 4 filtros de segmento diferentes, separados por comas, con un asterisco (`*` carácter) que indica un segmento comodín. - - **Ejemplo:** filtro de tema con dos segmentos: `--topic "AAAABQAAAAdDT1VOVEURSAA==,*"` - - **Ejemplo:** dos filtros de tema con uno y dos segmentos cada uno: `--topic "AAAABQAAAAdDT1VOTE...` --topic '_,_'\` - - Ten en cuenta que todos estos filtros de tema se combinan con los IDs de contrato en un solo filtro (es decir, combinación de tipo, IDs y temas). - -- `--type ` — Especifica qué tipo de eventos de contrato mostrar - - Valor predeterminado: `all` - - Valores posibles: `all`, `contract`, `system` +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--rpc-url ` — punto final del servidor RPC - -- `--rpc-header ` — Cabecera(s) RPC para incluir en las solicitudes al proveedor RPC +###### **Opciones (RPC):** +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - - `-n`, `--network ` — Nombre de la red a usar desde la configuración ## `stellar env` @@ -1121,7 +1215,7 @@ Si no hay variables de entorno en uso, imprime los valores predeterminados. Ej.: $ stellar env STELLAR_ACCOUNT -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global está siempre activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1142,6 +1236,7 @@ Crear y administrar identidades, incluidas claves y direcciones - `rm` — Eliminar una identidad - `secret` — Mostrar la clave secreta de una identidad - `use` — Establecer la identidad predeterminada que se utilizará en todos los comandos. Esto te permite omitir `--source-account` o establecer una variable de entorno, reutilizando este valor en todos los comandos que lo requieran +- `unset` — Eliminar la identidad clave predeterminada definida previamente con `keys use ` ## `stellar keys add` @@ -1155,9 +1250,9 @@ Agregar una nueva identidad (keypair, ledger, almacenamiento seguro específico ###### **Opciones:** -- `--secret-key` — (obsoleto) Ingresa la clave secreta (S) cuando se te solicite +- `--secret-key` — ⚠️ Obsoleto, usa `--secure-store`. Ingresa la clave secreta (S) cuando se solicite -- `--seed-phrase` — (obsoleto) Ingresa la clave utilizando una frase semilla de 12-24 palabras +- `--seed-phrase` — ⚠️ Obsoleto, usa `--secure-store`. Ingresa la clave usando frase Seed de 12-24 palabras - `--secure-store` — Guarda la nueva clave en la tienda de credenciales segura de tu sistema operativo. @@ -1165,11 +1260,14 @@ Agregar una nueva identidad (keypair, ledger, almacenamiento seguro específico Esto solo admite frases Seed por ahora. -- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--public-key ` — Agregar una clave pública, ed25519 o cuenta multiplexada, por ejemplo, G1.., M2.. -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +- `--overwrite` — Sobrescribir una identidad existente si ya existe -- `--public-key ` — Agregar una clave pública, ed25519 o cuenta multiplexada, por ejemplo, G1.., M2.. +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global está siempre activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar keys public-key` @@ -1186,6 +1284,9 @@ Dada una identidad, devuelve su dirección (clave pública) ###### **Opciones:** - `--hd-path ` — Si la identidad es una frase semilla, usa esta ruta hd, el valor predeterminado es 0 + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1201,14 +1302,20 @@ Financiar una identidad en una red de prueba ###### **Opciones:** -- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC -- `-n`, `--network ` — Nombre de la red a utilizar de la configuración - `--hd-path ` — Si la identidad es una frase semilla, usa esta ruta hd, el valor predeterminado es 0 + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +###### **Opciones (RPC):** + +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `-n`, `--network ` — Nombre de la red a utilizar de la configuración + ## `stellar keys generate` Generar una nueva identidad utilizando una frase semilla de 24 palabras La frase semilla puede almacenarse en un archivo de configuración (predeterminado) o en un almacenamiento seguro específico del sistema operativo @@ -1229,25 +1336,25 @@ Generar una nueva identidad utilizando una frase semilla de 24 palabras La frase En Mac usa Keychain, en Windows es Secure Store Service, y en plataformas \*nix utiliza una combinación de keyutils del kernel y el servicio secreto basado en DBus. -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - - `--hd-path ` — Al generar una clave secreta, cuál `hd_path` debe usarse de la frase semilla original -- `--rpc-url ` — Punto final del servidor RPC +- `--fund` — Financiar el par de claves generado -- `--rpc-header ` — Encabezado(s) RPC a incluir en peticiones al proveedor RPC + Valor predeterminado: `false` -- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `--overwrite` — Sobrescribir identidad existente si ya existe -- `-n`, `--network ` — Nombre de la red a usar desde la configuración +###### **Opciones (Globales):** -- `--fund` — Financiar el par de claves generado +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - Valor predeterminado: `false` +###### **Opciones (RPC):** -- `--overwrite` — Sobrescribir una identidad existente si ya existe +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `-n`, `--network ` — Nombre de la red a usar desde la configuración ## `stellar keys ls` @@ -1257,9 +1364,12 @@ Listar identidades ###### **Opciones:** +- `-l`, `--long` + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `-l`, `--long` ## `stellar keys rm` @@ -1271,7 +1381,7 @@ Eliminar una identidad - `` — Identidad a eliminar -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1290,6 +1400,9 @@ Mostrar la clave secreta de una identidad - `--phrase` — Mostrar frase semilla en lugar de clave privada - `--hd-path ` — Si la identidad es una frase semilla, usa esta ruta hd, el valor predeterminado es 0 + +###### **Opciones (Globales):** + - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1303,7 +1416,18 @@ Establecer la identidad predeterminada que se utilizará en todos los comandos. - `` — Establecer el nombre de la red predeterminada -###### **Opciones:** +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +## `stellar keys unset` + +Eliminar la identidad clave predeterminada definida previamente con `keys use ` + +**Uso:** `stellar keys unset [OPTIONS]` + +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1323,6 +1447,7 @@ Configurar la conexión a redes - `health` — Obtener el estado del RPC configurado - `info` — Comprueba la salud del RPC configurado - `settings` — Obtener los ajustes de configuración de la red +- `unset` — Eliminar la red predeterminada definida previamente con `network use ` ## `stellar network add` @@ -1334,14 +1459,17 @@ Agregar una nueva red - `` — Nombre de la red -###### **Opciones:** +###### **Opciones (Globales):** -- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado opcional (por ejemplo, API Key) a incluir en las solicitudes al RPC -- `--network-passphrase ` — Frase de la red para firmar la transacción enviada al servidor rpc - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +###### **Opciones (RPC):** + +- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) opcional para incluir en solicitudes al RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de la red para firmar la transacción enviada al servidor rpc + ## `stellar network rm` Eliminar una red @@ -1352,7 +1480,7 @@ Eliminar una red - `` — Red a eliminar -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1365,10 +1493,13 @@ Listar redes ###### **Opciones:** -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `-l`, `--long` — Obtén más información sobre las redes +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + ## `usar red stellar` Establece la red por defecto que se usará en todos los comandos. Esto te permite omitir `--network` o configurar una variable de entorno, reutilizando este valor en todos los comandos que lo requieran @@ -1379,10 +1510,10 @@ Establece la red por defecto que se usará en todos los comandos. Esto te permit - `` — Establece el nombre de la red por defecto -###### **Opciones:** +###### **Opciones (Globales):** -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar network health` @@ -1392,12 +1523,6 @@ Obtener el estado del RPC configurado ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--output ` — Formato de la salida Valor predeterminado: `text` @@ -1408,6 +1533,18 @@ Obtener el estado del RPC configurado - `json`: Resultado JSON de la solicitud RPC - `json-formatted`: Salida JSON formateada (multilínea) de la solicitud RPC +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración + ## `stellar network info` Comprueba la salud del RPC configurado @@ -1416,12 +1553,6 @@ Comprueba la salud del RPC configurado ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--output ` — Formato de la salida Valor predeterminado: `text` @@ -1432,6 +1563,18 @@ Comprueba la salud del RPC configurado - `json`: Resultado JSON de la solicitud RPC - `json-formatted`: Salida JSON formateada (multilínea) de la solicitud RPC +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración + ## `stellar network settings` Obtener los ajustes de configuración de la red @@ -1440,12 +1583,6 @@ Obtener los ajustes de configuración de la red ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--internal` — Incluir ajustes de configuración internos que no se pueden actualizar y son mantenidos internamente por la red - `--output ` — Formato de la salida @@ -1457,6 +1594,29 @@ Obtener los ajustes de configuración de la red - `json`: JSON, XDR-JSON del tipo XDR `ConfigUpgradeSet` - `json-formatted`: Formato JSON, XDR-JSON del tipo XDR `ConfigUpgradeSet` +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración + +## `stellar network unset` + +Eliminar la red predeterminada definida previamente con `network use ` + +**Uso:** `stellar network unset [OPTIONS]` + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + ## `contenedor stellar` Iniciar redes locales en contenedores @@ -1552,10 +1712,10 @@ Migrar la configuración local al directorio global **Uso:** `stellar config migrate [OPTIONS]` -###### **Opciones:** +###### **Opciones (Globales):** -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar config dir` @@ -1567,7 +1727,7 @@ La ubicación dependerá de cómo esté configurado tu sistema. **Uso:** `stellar config dir [OPTIONS]` -###### **Opciones:** +###### **Opciones (Globales):** - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes @@ -1581,6 +1741,7 @@ Descargar una imagen de un ledger desde un archivo ###### **Subcomandos:** - `create` — Crear una imagen de ledger utilizando un archivo de historial +- `merge` — Combinar varias imágenes del ledger en un único archivo de imagen ## `crear imagen stellar` @@ -1596,37 +1757,64 @@ Si un contrato es un contrato de activo Stellar, incluye la cuenta del emisor de Cualquier ID de contrato no válido pasado como `--address` será ignorado. -**Uso:** `stellar snapshot create [OPTIONS] --output ` - -###### **Opciones:** +**Uso:** `stellar snapshot create [OPTIONS]` -- `--ledger ` — El número de secuencia de ledger a tomar la imagen. Por defecto, es el ledger archivado más reciente +###### **Opciones de filtro:** - `--address
` — Dirección/alias de cuenta o contrato a incluir en la imagen - - `--wasm-hash ` — Hashes de WASM a incluir en la imagen +###### **Opciones:** + +- `--ledger ` — El número de secuencia de ledger a tomar la imagen. Por defecto, es el ledger archivado más reciente + - `--output ` — Formato del archivo de salida + Valor predeterminado: `json` + Valores posibles: `json` - `--out ` — Ruta de salida donde se escribirá la imagen Valor por defecto: `snapshot.json` +###### **Opciones (Archivo):** + - `--archive-url ` — URL de archivo -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +###### **Opciones (Globales):** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +###### **Opciones (RPC):** + - `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC +## `stellar snapshot merge` -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +Combinar múltiples imágenes del ledger en un solo archivo de imagen. -- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración +Cuando la misma clave del ledger aparece en varias imágenes, la entrada de la última imagen en la lista de argumentos tiene prioridad. Metadatos (protocol_version, sequence_number, timestamp, etc.) se toman de la última imagen. + +Ejemplo: stellar snapshot merge A.json B.json --out merged.json + +Esto permite combinar imágenes de diferentes implementaciones de contratos o imágenes editadas manualmente sin regenerarlas desde cero. + +**Uso:** `stellar snapshot merge [OPTIONS] ...` + +###### **Argumentos:** + +- `` — Archivos de imagen para fusionar (se requieren al menos 2) + +###### **Opciones:** + +- `-o`, `--out ` — Ruta de salida para la imagen fusionada + + Valor predeterminado: `snapshot.json` ## `stellar tx` @@ -1676,15 +1864,18 @@ Obtener el seq-num de la cuenta fuente y aumentarlo para la tx dada **Uso:** `stellar tx update sequence-number next [OPTIONS]` -###### **Opciones:** +###### **Opciones (Globales):** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red a utilizar desde la configuración - `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar tx edit` Edita un sobre de transacción desde stdin. Este comando respeta las variables de entorno `STELLAR_EDITOR`, `EDITOR` y `VISUAL`, en ese orden. @@ -1709,10 +1900,10 @@ Calcula el hash de un sobre de transacción - `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -###### **Opciones:** +###### **Opciones (RPC):** - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración @@ -1755,6 +1946,20 @@ Transferir saldo XLM a otra cuenta y eliminar la cuenta origen ###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una wallet ledger +- `--account ` — Cuenta muxed con la cual fusionar, e.g. `GBX...`, 'MBX...' + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm Valor por defecto: `100` @@ -1763,39 +1968,39 @@ Transferir saldo XLM a otra cuenta y eliminar la cuenta origen - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new begin-sponsoring-future-reserves` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Comenzar a patrocinar reservas futuras para otra cuenta -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new begin-sponsoring-future-reserves [OPTIONS] --source-account --sponsored-id ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--sponsored-id ` — Cuenta que será patrocinada -- `--account ` — Cuenta muxed con la cual fusionar, e.g. `GBX...`, 'MBX...' - -## `stellar tx new begin-sponsoring-future-reserves` - -Comenzar a patrocinar reservas futuras para otra cuenta +###### **Opciones (Globales):** -**Uso:** `stellar tx new begin-sponsoring-future-reserves [OPTIONS] --source-account --sponsored-id ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -1805,39 +2010,39 @@ Comenzar a patrocinar reservas futuras para otra cuenta - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new bump-sequence` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Incrementar número de secuencia para invalidar transacciones anteriores -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new bump-sequence [OPCIONES] --source-account --bump-to ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--bump-to ` — Número de secuencia al que aumentar -- `--sponsored-id ` — Cuenta que será patrocinada - -## `stellar tx new bump-sequence` - -Incrementar número de secuencia para invalidar transacciones anteriores +###### **Opciones (Globales):** -**Uso:** `stellar tx new bump-sequence [OPCIONES] --source-account --bump-to ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -1847,39 +2052,42 @@ Incrementar número de secuencia para invalidar transacciones anteriores - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new change-trust` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear, actualizar o eliminar una trustline -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new change-trust [OPCIONES] --source-account --line ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--line ` +- `--limit ` — Límite para la línea de confianza, 0 para eliminar la línea de confianza -- `--bump-to ` — Número de secuencia al que aumentar - -## `stellar tx new change-trust` + Valor por defecto: `9223372036854775807` -Crear, actualizar o eliminar una trustline +###### **Opciones (Globales):** -**Uso:** `stellar tx new change-trust [OPCIONES] --source-account --line ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -1889,43 +2097,39 @@ Crear, actualizar o eliminar una trustline - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionan las banderas `--build-only` o `--sim-only`, también se utilizará esta clave para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +## `stellar tx new claim-claimable-balance` -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +Reclamar un claimable balance mediante su balance ID -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +**Uso:** `stellar tx new claim-claimable-balance [OPTIONS] --source-account --balance-id ` -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` +- `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--balance-id ` — ID del balance reclammable a reclamar (cadena hex de 64 caracteres) -- `--sign-with-ledger` — Firmar con una wallet ledger - -- `--line ` - -- `--limit ` — Límite para la línea de confianza, 0 para eliminar la línea de confianza - - Valor por defecto: `9223372036854775807` - -## `stellar tx new claim-claimable-balance` - -Reclamar un claimable balance mediante su balance ID +###### **Opciones (Global):** -**Uso:** `stellar tx new claim-claimable-balance [OPTIONS] --source-account --balance-id ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -1935,39 +2139,41 @@ Reclamar un claimable balance mediante su balance ID - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +## `stellar tx new clawback` -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +Recuperar un asset de una cuenta -- `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` +**Uso:** `stellar tx new clawback [OPCIONES] --source-account --from --asset --amount ` -- `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una wallet ledger +- `--from ` — Cuenta de la cual recuperar los assets, por ejemplo `GBX...` +- `--asset ` — Asset a recuperar +- `--amount ` — Cantidad del asset a recuperar, en stroops. 1 stroop = 0.0000001 del activo -- `--sign-with-ledger` — Firmar con una ledger wallet - -- `--balance-id ` — ID del balance reclammable a reclamar (cadena hex de 64 caracteres) - -## `stellar tx new clawback` - -Recuperar un asset de una cuenta +###### **Opciones (Global):** -**Uso:** `stellar tx new clawback [OPCIONES] --source-account --from --asset --amount ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -1977,43 +2183,39 @@ Recuperar un asset de una cuenta - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad extra de instrucciones al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construye la transacción y solo escribe el xdr base64 a stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, por ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new clawback-claimable-balance` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Recuperar un saldo reclamable por su ID de saldo -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new clawback-claimable-balance [OPCIONES] --source-account --balance-id ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--balance-id ` — ID del saldo reclamable a recuperar. Acepta varios formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA -- `--from ` — Cuenta de la cual recuperar los assets, por ejemplo `GBX...` - -- `--asset ` — Asset a recuperar - -- `--amount ` — Cantidad del asset a recuperar, en stroops. 1 stroop = 0.0000001 del activo - -## `stellar tx new clawback-claimable-balance` - -Recuperar un saldo reclamable por su ID de saldo +###### **Opciones (Globales):** -**Uso:** `stellar tx new clawback-claimable-balance [OPCIONES] --source-account --balance-id ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2023,39 +2225,42 @@ Recuperar un saldo reclamable por su ID de saldo - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones adicionales al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construye la transacción y solo escribe el xdr base64 a stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new create-account` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear y financiar una cuenta nueva -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new create-account [OPCIONES] --source-account --destination ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--destination ` — ID de la cuenta a crear, e.g. `GBX...` +- `--starting-balance ` — Saldo inicial en stroops de la cuenta, por defecto 1 XLM -- `--balance-id ` — ID del saldo reclamable a recuperar. Acepta varios formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA - -## `stellar tx new create-account` + Valor por defecto: `10_000_000` -Crear y financiar una cuenta nueva +###### **Opciones (Globales):** -**Uso:** `stellar tx new create-account [OPCIONES] --source-account --destination ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — cantidad de tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2065,43 +2270,54 @@ Crear y financiar una cuenta nueva - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones adicionales al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construye la transacción y solo escribe el xdr base64 a stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar varios encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source` Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new create-claimable-balance` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear un claimable balance que pueda ser reclamado por cuentas especificadas -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new create-claimable-balance [OPTIONS] --source-account --amount ` + +###### **Opciones:** + +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las opciones de `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una wallet ledger -- `--destination ` — ID de la cuenta a crear, e.g. `GBX...` +- `--asset ` — Activo que se almacenará en el ClaimableBalanceEntry -- `--starting-balance ` — Saldo inicial en stroops de la cuenta, por defecto 1 XLM + Valor predeterminado: `native` - Valor por defecto: `10_000_000` +- `--amount ` — Cantidad de activo a almacenar en la entrada, en stroops. 1 stroop = 0.0000001 del activo -## `stellar tx new create-claimable-balance` +- `--claimant ` — Reclamantes del claimable balance. Formato: account_id o account_id:predicate_json Puede especificarse varias veces para múltiples reclamantes. -Crear un claimable balance que pueda ser reclamado por cuentas especificadas + Ejemplos: -**Uso:** `stellar tx new create-claimable-balance [OPTIONS] --source-account --amount ` + - `--claimant alice (incondicional)` - `--claimant 'bob:{"before_absolute_time":"1735689599"}'` - `--claimant 'charlie:{"and":[{"before_absolute_time":"1735689599"},{"before_relative_time":"3600"}]}'` -###### **Opciones:** +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2111,49 +2327,42 @@ Crear un claimable balance que pueda ser reclamado por cuentas especificadas - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y escribir solo el xdr base64 a stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a utilizar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las opciones de `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new create-passive-sell-offer` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear una oferta pasiva de venta en el Stellar DEX -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new create-passive-sell-offer [OPTIONS] --source-account --selling --buying --amount --price ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger +- `--selling ` — Activo a vender +- `--buying ` — Activo a comprar +- `--amount ` — Cantidad del activo a vender para ofrecer, en stroops. 1 stroop = 0.0000001 del activo (por ej. 1 XLM = `10_000_000` stroops) +- `--price ` — Precio de 1 unidad del activo a vender en términos del activo a comprar como "numerador:denominador" (ej., "1:2" significa 0.5) -- `--asset ` — Activo que se almacenará en el ClaimableBalanceEntry - - Valor predeterminado: `native` - -- `--amount ` — Cantidad de activo a almacenar en la entrada, en stroops. 1 stroop = 0.0000001 del activo - -- `--claimant ` — Reclamantes del claimable balance. Formato: account_id o account_id:predicate_json Puede especificarse varias veces para múltiples reclamantes. - - Ejemplos: - - - `--claimant alice (incondicional)` - `--claimant 'bob:{"before_absolute_time":"1735689599"}'` - `--claimant 'charlie:{"and":[{"before_absolute_time":"1735689599"},{"before_relative_time":"3600"}]}'` - -## `stellar tx new create-passive-sell-offer` - -Crear una oferta pasiva de venta en el Stellar DEX +###### **Opciones (Globales):** -**Uso:** `stellar tx new create-passive-sell-offer [OPTIONS] --source-account --selling --buying --amount --price ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2163,45 +2372,38 @@ Crear una oferta pasiva de venta en el Stellar DEX - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y escribir solo el xdr base64 a stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red para usar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +## `stellar tx new end-sponsoring-future-reserves` -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +Terminar de patrocinar reservas futuras -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +**Uso:** `stellar tx new end-sponsoring-future-reserves [OPTIONS] --source-account ` -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionan las flags `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger -- `--selling ` — Activo a vender - -- `--buying ` — Activo a comprar - -- `--amount ` — Cantidad del activo a vender para ofrecer, en stroops. 1 stroop = 0.0000001 del activo (por ej. 1 XLM = `10_000_000` stroops) - -- `--price ` — Precio de 1 unidad del activo a vender en términos del activo a comprar como "numerador:denominador" (ej., "1:2" significa 0.5) - -## `stellar tx new end-sponsoring-future-reserves` - -Terminar de patrocinar reservas futuras +###### **Opciones (Globales):** -**Uso:** `stellar tx new end-sponsoring-future-reserves [OPTIONS] --source-account ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2211,30 +2413,18 @@ Terminar de patrocinar reservas futuras - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 a stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red para usar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - -- `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una wallet ledger - ## `stellar tx new liquidity-pool-deposit` Depositar activos en un Fondo de Liquidez @@ -2243,30 +2433,8 @@ Depositar activos en un Fondo de Liquidez ###### **Opciones:** -- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm - - Valor predeterminado: `100` - -- `--cost` — Salida del costo de la ejecución a stderr - -- `--instructions ` — Número de instrucciones a simular - -- `--build-only` — Construir la transacción y solo escribir el xdr base64 a stdout - -- `--rpc-url ` — Punto final del servidor RPC - -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC - -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - -- `-n`, `--network ` — Nombre de la red a utilizar de la configuración - - `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` @@ -2289,13 +2457,12 @@ Depositar activos en un Fondo de Liquidez Valor predeterminado: `1:1` -## `stellar tx new liquidity-pool-withdraw` - -Retirar activos de un Fondo de Liquidez +###### **Opciones (Globales):** -**Uso:** `stellar tx new liquidity-pool-withdraw [OPTIONS] --source-account --liquidity-pool-id --amount --min-amount-a --min-amount-b ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm @@ -2305,329 +2472,313 @@ Retirar activos de un Fondo de Liquidez - `--instructions ` — Número de instrucciones a simular +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el xdr base64 a stdout -- `--rpc-url ` — punto final del servidor RPC +- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor de RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red para usar de la configuración +- `-n`, `--network ` — Nombre de la red a utilizar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx new liquidity-pool-withdraw` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Retirar activos de un Fondo de Liquidez -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new liquidity-pool-withdraw [OPTIONS] --source-account --liquidity-pool-id --amount --min-amount-a --min-amount-b ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionan las flags `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger - - `--liquidity-pool-id ` — ID del Fondo de Liquidez del que retirar - - `--amount ` — Cantidad de participaciones del fondo a retirar, en stroops - - `--min-amount-a ` — Cantidad mínima del primer activo a recibir, en stroops - - `--min-amount-b ` — Cantidad mínima del segundo activo a recibir, en stroops -## `stellar tx new manage-buy-offer` - -Crear, actualizar o eliminar una oferta de compra +###### **Opciones (Globales):** -**Uso:** `stellar tx new manage-buy-offer [OPTIONS] --source-account --selling --buying --amount --price ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** - `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm Valor predeterminado: `100` -- `--cost` — Imprime el costo de ejecución en stderr +- `--cost` — Salida del costo de la ejecución a stderr - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el xdr en base64 en stdout +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--rpc-url ` — Punto de conexión del servidor RPC +- `--build-only` — Construir la transacción y solo escribir el xdr base64 a stdout -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-url ` — punto final del servidor RPC -- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `-n`, `--network ` — Nombre de la red a usar desde la configuración +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `-n`, `--network ` — Nombre de la red para usar de la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +## `stellar tx new manage-buy-offer` -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +Crear, actualizar o eliminar una oferta de compra -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +**Uso:** `stellar tx new manage-buy-offer [OPTIONS] --source-account --selling --buying --amount --price ` -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger - - `--selling ` — Activo a vender - - `--buying ` — Activo a comprar - - `--amount ` — Cantidad del activo a comprar para adquirir, en stroops. 1 stroop = 0.0000001 del activo (ej. 1 XLM = `10_000_000` stroops). Usa `0` para eliminar la oferta - - `--price ` — Precio de 1 unidad del activo a comprar en términos del activo a vender como "numerador:denominador" (ej., "1:2" significa 0.5) - - `--offer-id ` — ID de la oferta. Si es 0, creará una nueva oferta. De lo contrario, actualizará la oferta existente Valor por defecto: `0` -## `stellar tx new manage-data` - -Establecer, modificar o eliminar entradas de datos de la cuenta +###### **Opciones (Globales):** -**Uso:** `stellar tx new manage-data [OPCIONES] --source-account --data-name ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** -- `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm +- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm - Valor por defecto: `100` + Valor predeterminado: `100` -- `--cost` — Mostrar costo de ejecución en stderr +- `--cost` — Imprime el costo de ejecución en stderr - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--rpc-url ` — Punto final del servidor RPC +- `--build-only` — Construir la transacción y solo escribir el xdr en base64 en stdout -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-url ` — Punto de conexión del servidor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `-n`, `--network ` — Nombre de la red a utilizar de la configuración +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +## `stellar tx new manage-data` -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +Establecer, modificar o eliminar entradas de datos de la cuenta -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +**Uso:** `stellar tx new manage-data [OPCIONES] --source-account --data-name ` -- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` +- `--hd-path ` — Si se usa una frase Seed para firmar, establece qué ruta determinista jerárquica usar, p.ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una wallet ledger - +- `--sign-with-ledger` — Firmar con una ledger wallet - `--data-name ` — Cadena de hasta 64 bytes de largo. Si este es un nuevo nombre, añadirá el par nombre/valor dado a la cuenta. Si este nombre ya está presente, entonces el valor asociado será modificado - - `--data-value ` — Cadena hex de hasta 64 bytes de largo. Si no está presente, entonces se eliminará el nombre existente. Si está presente, entonces este valor se establecerá en el `DataEntry` -## `stellar tx new manage-sell-offer` - -Crear, actualizar o eliminar una oferta de venta +###### **Opciones (Globales):** -**Uso:** `stellar tx new manage-sell-offer [OPTIONS] --source-account --selling --buying --amount --price ` +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** -- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm +- `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm - Valor predeterminado: `100` + Valor por defecto: `100` -- `--cost` — Salida del costo de ejecución a stderr +- `--cost` — Mostrar costo de ejecución en stderr - `--instructions ` — Número de instrucciones a simular -- `--build-only` — Desarrolla la transacción y solo escribe el xdr en base64 en stdout +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Header(s) RPC que se incluyen en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC -- `-n`, `--network ` — Nombre de la red a usar de la configuración +- `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde donde se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx new manage-sell-offer` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear, actualizar o eliminar una oferta de venta -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new manage-sell-offer [OPTIONS] --source-account --selling --buying --amount --price ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se utilizará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger - - `--selling ` — Activo a vender - - `--buying ` — Activo a comprar - - `--amount ` — Cantidad del activo a vender para ofrecer, en stroops. 1 stroop = 0.0000001 del activo (ej. 1 XLM = `10_000_000` stroops). Usa `0` para eliminar la oferta - - `--price ` — Precio de 1 unidad del activo a vender en términos del activo a comprar como "numerador:denominador" (ej., "1:2" significa 0.5) - - `--offer-id ` — ID de la oferta. Si es 0, creará una nueva oferta. De lo contrario, actualizará la oferta existente Valor por defecto: `0` -## `stellar tx new path-payment-strict-send` +###### **Opciones (Globales):** -Enviar un pago con un activo diferente usando búsqueda de rutas, especificando la cantidad a enviar +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -**Uso:** `stellar tx new path-payment-strict-send [OPTIONS] --source-account --send-asset --send-amount --destination --dest-asset --dest-min ` +###### **Opciones (RPC):** -###### **Opciones:** +- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0,0000001 xlm -- `--fee ` — cantidad de comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm + Valor predeterminado: `100` - Valor por defecto: `100` +- `--cost` — Salida del costo de ejecución a stderr -- `--cost` — Mostrar el coste de ejecución en stderr +- `--instructions ` — Número de instrucciones a simular -- `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout +- `--build-only` — Desarrolla la transacción y solo escribe el xdr en base64 en stdout -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. +- `--rpc-url ` — Punto final del servidor RPC -- Alias `source`. +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. +- `-n`, `--network ` — Nombre de la red a utilizar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…) o una frase semilla (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx new path-payment-strict-send` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar un pago con un activo diferente usando búsqueda de rutas, especificando la cantidad a enviar -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new path-payment-strict-send [OPTIONS] --source-account --send-asset --send-amount --destination --dest-asset --dest-min ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde donde se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase semilla (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger - - `--send-asset ` — Activo a enviar (pagar con) - - `--send-amount ` — Cantidad del activo a enviar a deducir de la cuenta del emisor, en stroops. 1 stroop = 0.0000001 del activo (ej. 1 XLM = `10_000_000` stroops) - - `--destination ` — Cuenta que recibe el pago - - `--dest-asset ` — Activo que recibirá el destinatario - - `--dest-min ` — Cantidad mínima del activo destino que la cuenta destinataria puede recibir. La operación fallará si esta cantidad no puede ser cumplida - - `--path ` — Lista de activos intermedios para la ruta de pago, separados por comas (hasta 5 activos). Cada activo debe tener el formato 'code:issuer' o 'native' para XLM -## `stellar tx new path-payment-strict-receive` +###### **Opciones (Globales):** -Enviar un pago con un activo diferente usando búsqueda de rutas, especificando la cantidad a recibir +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -**Uso:** `stellar tx new path-payment-strict-receive [OPTIONS] --source-account --send-asset --send-max --destination --dest-asset --dest-amount ` +###### **Opciones (RPC):** -###### **Opciones:** +- `--fee ` — cantidad de comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm -- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa + Valor por defecto: `100` - `--config-dir ` — Ubicación del directorio de configuración. +- `--cost` — Mostrar el coste de ejecución en stderr -- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. +- `--instructions ` — Número de instrucciones a simulate -- Contiene archivos de configuración, alias y otros ajustes persistentes +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. +- `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout -- `--rpc-url ` — Punto final del servidor RPC +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc +- `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC -- `-n`, `--network ` — Nombre de la red a usar desde la configuración +- `-n`, `--network ` — Nombre de la red a usar de la configuración -- Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +## `stellar tx new path-payment-strict-receive` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar un pago con un activo diferente usando búsqueda de rutas, especificando la cantidad a recibir -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx new path-payment-strict-receive [OPTIONS] --source-account --send-asset --send-max --destination --dest-asset --dest-amount ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` +###### **Opciones:** +- Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una wallet ledger - - `--send-asset ` — Activo a enviar (pagar con) - - `--send-max ` — Cantidad máxima del activo a enviar a deducir de la cuenta del emisor, en stroops. 1 stroop = 0.0000001 del activo (ej. 1 XLM = `10_000_000` stroops) - - `--destination ` — Cuenta que recibe el pago - - `--dest-asset ` — Activo que recibirá el destinatario - - `--dest-amount ` — Cantidad exacta del activo destino que la cuenta destinataria recibirá, en stroops. 1 stroop = 0.0000001 del activo - - `--path ` — Lista de activos intermedios para la ruta de pago, separados por comas (hasta 5 activos). Cada activo debe tener el formato 'code:issuer' o 'native' para XLM -## `stellar tx new payment` +###### **Opciones (Globales):** -Enviar activo a cuenta destino +- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. +- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa `--config-dir ` — Ubicación del directorio de configuración. -**Uso:** `stellar tx new payment [OPTIONS] --source-account --destination --amount ` +###### **Opciones (RPC):** -###### **Opciones:** +- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa -- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm + `--config-dir ` — Ubicación del directorio de configuración. - Valor predeterminado: `100` +- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. -- `--cost` — Mostrar el costo de ejecución en stderr +- Contiene archivos de configuración, alias y otros ajustes persistentes -- `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout +- `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. -- `--rpc-url ` — punto final del servidor RPC +- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC +- Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). -- `-n`, `--network ` — Nombre de la red a usar desde la configuración +- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx new payment` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar activo a cuenta destino -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx new payment [OPTIONS] --source-account --destination --amount ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si se usa Seed phrase, `--hd-path` predetermina a la ruta `0` +###### **Opciones:** -- `--hd-path ` — Si usas una Seed phrase para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará + +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase semilla (--sign-with-key "kite urban…"). Si usas frase semilla, `--hd-path` por defecto es la ruta `0` + +- `--hd-path ` — Si usas una frase semilla para firmar, establece qué ruta jerárquica determinista usar, ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org -- `--sign-with-ledger` — Firmar con una ledger wallet +- `--sign-with-ledger` — Firmar con una wallet ledger - `--destination ` — Cuenta a la que enviar, por ejemplo `GBX...` @@ -2637,188 +2788,187 @@ Enviar activo a cuenta destino - `--amount ` — Cantidad del activo mencionado a enviar, en stroops. 1 stroop = 0.0000001 del activo (ej. 1 XLM = `10_000_000` stroops) -## `stellar tx new revoke-sponsorship` +###### **Opciones (Globales):** -Revocar patrocinio de una entrada del ledger o firmante +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -**Uso:** `stellar tx new revoke-sponsorship [OPTIONS] --source-account --account-id ` +###### **Opciones (RPC):** -###### **Opciones:** +- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm -- `--sign-with-lab` — Firmar con https://lab.stellar.org `--sign-with-ledger` — Firmar con una ledger wallet + Valor predeterminado: `100` - `--fee ` — cantidad de comisión para la transacción, en stroops. +- `--cost` — Mostrar el costo de ejecución en stderr -- 1 stroop = 0.0000001 xlm +- `--instructions ` — Número de instrucciones para simulate -- Valor por defecto: `100` +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--cost` — Mostrar el coste de ejecución en stderr +- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout -- `--rpc-url ` — Punto de conexión del servidor RPC +- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--instructions ` — Número de instrucciones a simulate `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). +## `stellar tx new revoke-sponsorship` -- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. +Revocar patrocinio de una entrada del ledger o firmante -- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa `--config-dir ` — Ubicación del directorio de configuración. +**Uso:** `stellar tx new revoke-sponsorship [OPTIONS] --source-account --account-id ` -- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. +###### **Opciones:** +- `--instructions ` — Número de instrucciones a simulate `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). +- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. - Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. - - Ejemplo: `--hd-path 1`. - - Por defecto: `0` - - `--account-id ` — ID de cuenta (requerido para todos los tipos de patrocinio) - - `--asset ` — Activo para patrocinio de trustline (formato: CODE:ISSUER) - - `--data-name ` — Nombre de dato para patrocinio de entrada de datos - - `--offer-id ` — ID de oferta para patrocinio de oferta - - `--liquidity-pool-id ` — ID del pool para patrocinio de fondos de liquidez. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - - `--claimable-balance-id ` — ID de balance reclamable para patrocinio de balance reclamable. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA - - `--signer-key ` — Clave del firmante para patrocinio de firmante -## `stellar tx new set-options` +###### **Opciones (Globales):** -Establecer opciones de cuenta como flags, firmantes y dominio principal +- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. +- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa `--config-dir ` — Ubicación del directorio de configuración. -**Uso:** `stellar tx new set-options [OPTIONS] --source-account ` +###### **Opciones (RPC):** -###### **Opciones:** +- `--sign-with-lab` — Firmar con https://lab.stellar.org `--sign-with-ledger` — Firmar con una ledger wallet -- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm + `--fee ` — cantidad de comisión para la transacción, en stroops. - Valor predeterminado: `100` +- 1 stroop = 0.0000001 xlm -- `--cost` — Mostrar el costo de ejecución en stderr +- Valor por defecto: `100` -- `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout +- `--cost` — Mostrar el coste de ejecución en stderr -- `--rpc-url ` — punto final del servidor RPC +- `--rpc-url ` — Punto de conexión del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx new set-options` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Establecer opciones de cuenta como flags, firmantes y dominio principal -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx new set-options [OPTIONS] --source-account ` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si se usa Seed phrase, `--hd-path` predetermina a la ruta `0` +###### **Opciones:** +- `-s`, `--source-account ` [alias: `source`] — Cuenta de origen de la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si se usa Seed phrase, `--hd-path` predetermina a la ruta `0` - `--hd-path ` — Si usas una Seed phrase para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una ledger wallet - - `--inflation-dest ` — Cuenta del destino de inflación - - `--master-weight ` — Un número del 0-255 (inclusive) que representa el peso de la clave maestra. Si el peso de la clave maestra se actualiza a 0, se desactiva efectivamente - - `--low-threshold ` — Un número del 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un umbral bajo. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--med-threshold ` — Un número del 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un umbral medio. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--high-threshold ` — Un número del 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un umbral alto. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--home-domain ` — Establece el dominio de origen de una cuenta. Ver https://developers.stellar.org/docs/learn/encyclopedia/network-configuration/federation - - `--signer ` — Añadir, actualizar o eliminar un firmante de una cuenta - - `--signer-weight ` — El peso del firmante es un número del 0-255 (inclusive). El firmante se elimina si el peso es 0 - - `--set-required` — Cuando se habilita, un emisor debe aprobar una cuenta antes de que esta cuenta pueda poseer su activo. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-required-0x1 - - `--set-revocable` — Cuando se habilita, un emisor puede revocar la autorización de una línea de confianza existente, congelando así el activo que posee una cuenta. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-revocable-0x2 - - `--set-clawback-enabled` — Habilita a la cuenta emisora a recuperar (quemar) todo el activo. https://developers.stellar.org/docs/tokens/control-asset-access#clawback-enabled-0x8 - - `--set-immutable` — Con esta configuración, ninguno de los otros flags de autorización (`AUTH_REQUIRED_FLAG`, `AUTH_REVOCABLE_FLAG`) puede ser configurado, y la cuenta emisora no puede ser fusionada. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-immutable-0x4 - - `--clear-required` - - `--clear-revocable` - - `--clear-immutable` - - `--clear-clawback-enabled` -## `stellar tx new set-trustline-flags` +###### **Opciones (Globales):** -Configurar flags de autorización y trustline para un activo +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. -**Uso:** `stellar tx new set-trustline-flags [OPTIONS] --source-account --trustor --asset ` +###### **Opciones (RPC):** -###### **Opciones:** +- `--fee ` — monto de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm -- `--sign-with-lab` — Firmar con https://lab.stellar.org `--sign-with-ledger` — Firmar con una ledger wallet + Valor predeterminado: `100` - `--fee ` — cantidad de comisión para la transacción, en stroops. +- `--cost` — Mostrar el costo de ejecución en stderr -- 1 stroop = 0.0000001 xlm +- `--instructions ` — Número de instrucciones para simulate -- Valor por defecto: `100` +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- `--cost` — Mostrar el coste de ejecución en stderr +- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout -- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--instructions ` — Número de instrucciones a simulate `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). +## `stellar tx new set-trustline-flags` -- Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. +Configurar flags de autorización y trustline para un activo -- En ese caso, intentar firmar con clave pública fallará `--global` — ⚠️ Obsoleto: la configuración global siempre está activa `--config-dir ` — Ubicación del directorio de configuración. +**Uso:** `stellar tx new set-trustline-flags [OPTIONS] --source-account --trustor --asset ` -- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. +###### **Opciones:** +- `--instructions ` — Número de instrucciones a simulate `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). +- Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, volviendo a `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en almacenamiento seguro del SO. - Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es el camino `0` `--hd-path ` — Si usas frase Seed para firmar, define cuál camino jerárquico determinista usar, p. ej. `m/44'/148'/{hd_path}`. - - Ejemplo: `--hd-path 1`. - - Por defecto: `0` - - `--trustor ` — Cuenta a la que establecer flags de confianza, por ejemplo `GBX...`, o alias, o cuenta muxed, `M123...` - - `--asset ` — Activo para establecer flags de confianza - - `--set-authorize` — Significa autorización completa permitiendo a una cuenta transaccionar libremente con el activo para realizar y recibir pagos y realizar pedidos - - `--set-authorize-to-maintain-liabilities` — Denota una autorización limitada que permite a una cuenta mantener los pedidos actuales pero no transaccionar de otra manera con el activo - - `--set-trustline-clawback-enabled` — Habilita a la cuenta emisora a recuperar (quemar) todo el activo. Consulta nuestra sección sobre Clawbacks: https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/clawbacks - - `--clear-authorize` - - `--clear-authorize-to-maintain-liabilities` - - `--clear-trustline-clawback-enabled` +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. + +###### **Opciones (RPC):** + +- `--sign-with-lab` — Firmar con https://lab.stellar.org `--sign-with-ledger` — Firmar con una ledger wallet + + `--fee ` — cantidad de comisión para la transacción, en stroops. + +- 1 stroop = 0.0000001 xlm + +- Valor por defecto: `100` + +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +- `--cost` — Mostrar el coste de ejecución en stderr + +- `--rpc-url ` — Punto final del servidor RPC + +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces + +- `--network-passphrase ` — Frase de contraseña de la red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar tx operation` Manipula las operaciones en una transacción, incluyendo la adición de nuevas operaciones @@ -2875,6 +3025,19 @@ Transferir saldo XLM a otra cuenta y eliminar la cuenta origen ###### **Opciones:** - `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará. +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. +- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--account ` — Cuenta muxed con la que fusionarse, p. ej. `GBX...`, 'MBX...' + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. + +###### **Opciones (RPC):** - `--sign-with-lab` — Firmar con https://lab.stellar.org `--sign-with-ledger` — Firmar con una ledger wallet @@ -2884,32 +3047,18 @@ Transferir saldo XLM a otra cuenta y eliminar la cuenta origen - `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor rpc +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `-n`, `--network ` — Nombre de la red a usar desde la configuración - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Cabecera(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase contraseña de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará. - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. - -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. - -- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - -- `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una ledger wallet - -- `--account ` — Cuenta muxed con la que fusionarse, p. ej. `GBX...`, 'MBX...' - ## `stellar tx operation add begin-sponsoring-future-reserves` Comenzar a patrocinar reservas futuras para otra cuenta @@ -2923,6 +3072,19 @@ Comenzar a patrocinar reservas futuras para otra cuenta ###### **Opciones:** - `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará. +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. +- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--sponsored-id ` — Cuenta que será patrocinada + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. + +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -2932,32 +3094,18 @@ Comenzar a patrocinar reservas futuras para otra cuenta - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — Endpoint del servidor RPC -- `--rpc-header ` — Cabecera(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase contraseña de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a utilizar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta multiplexada (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si NO se proporcionaron los flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará. - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. - -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. - -- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - -- `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una ledger wallet - -- `--sponsored-id ` — Cuenta que será patrocinada - ## `stellar tx operación agregar aumentar-secuencia` Incrementar número de secuencia para invalidar transacciones anteriores @@ -2971,6 +3119,19 @@ Incrementar número de secuencia para invalidar transacciones anteriores ###### **Opciones:** - `--operation-source-account ` [alias: `op-source`] — Cuenta origen utilizada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. +- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--bump-to ` — Número de secuencia al que aumentar + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -2980,32 +3141,18 @@ Incrementar número de secuencia para invalidar transacciones anteriores - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. - -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0`. - -- `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquica determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - -- `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una ledger wallet - -- `--bump-to ` — Número de secuencia al que aumentar - ## `stellar tx operación agregar cambiar-confianza` Crear, actualizar o eliminar una trustline @@ -3019,58 +3166,22 @@ Crear, actualizar o eliminar una trustline ###### **Opciones:** - `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación - -- `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm - - Valor predeterminado: `100` - -- `--cost` — Mostrar el coste de ejecución en stderr - -- `--instructions ` — Número de instrucciones a simulate - -- `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - -- `--rpc-url ` — punto final del servidor RPC - -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC - -- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor RPC - -- `-n`, `--network ` — Nombre de la red a usar desde la configuración - - `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario utiliza `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes. - - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` - - `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una ledger wallet - - `--line ` - - `--limit ` — Límite para la línea de confianza, 0 para eliminar la línea de confianza Valor predeterminado: `9223372036854775807` -## `stellar tx operation add claim-claimable-balance` - -Reclamar un saldo reclamable por su ID de saldo - -**Uso:** `stellar tx operation add claim-claimable-balance [OPCIONES] --source-account --balance-id [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o entrada estándar si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen utilizada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3080,45 +3191,44 @@ Reclamar un saldo reclamable por su ID de saldo - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx operation add claim-claimable-balance` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Reclamar un saldo reclamable por su ID de saldo -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add claim-claimable-balance [OPCIONES] --source-account --balance-id [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o entrada estándar si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen utilizada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--balance-id ` — ID del saldo reclamable a reclamar (cadena hexadecimal de 64 caracteres) -## `stellar tx operation add clawback` - -Recuperar un activo de una cuenta - -**Uso:** `stellar tx operation add clawback [OPCIONES] --source-account --from --asset --amount [TX_XDR]` - -###### **Argumentos:** +###### **Opciones (Globales):** -- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío - -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3128,49 +3238,46 @@ Recuperar un activo de una cuenta - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada - -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes - -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` - -- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - -- `--sign-with-lab` — Firmar con https://lab.stellar.org - -- `--sign-with-ledger` — Firmar con una ledger wallet - -- `--from ` — Cuenta desde la que se recuperarán activos, por ejemplo `GBX...` +## `stellar tx operation add clawback` -- `--asset ` — Activo a recuperar +Recuperar un activo de una cuenta -- `--amount ` — Cantidad del activo a recuperar, en stroops. 1 stroop = 0.0000001 del activo +**Uso:** `stellar tx operation add clawback [OPCIONES] --source-account --from --asset --amount [TX_XDR]` -## `stellar tx operation add clawback-claimable-balance` +###### **Argumentos:** -Recuperar un balance reclamable por su ID de balance +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -**Uso:** `stellar tx operation add clawback-claimable-balance [OPCIONES] --source-account --balance-id [TX_XDR]` +###### **Opciones:** -###### **Argumentos:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org +- `--sign-with-ledger` — Firmar con una ledger wallet +- `--from ` — Cuenta desde la que se recuperarán activos, por ejemplo `GBX...` +- `--asset ` — Activo a recuperar +- `--amount ` — Cantidad del activo a recuperar, en stroops. 1 stroop = 0.0000001 del activo -- `` — Sobre de transacción base64 o archivo con XDR a decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3180,45 +3287,44 @@ Recuperar un balance reclamable por su ID de balance - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx operation add clawback-claimable-balance` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Recuperar un balance reclamable por su ID de balance -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add clawback-claimable-balance [OPCIONES] --source-account --balance-id [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción base64 o archivo con XDR a decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--balance-id ` — ID del balance reclamable a recuperar. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA -## `stellar tx operación agregar crear-cuenta` - -Crear y financiar una cuenta nueva - -**Uso:** `stellar tx operation add create-account [OPTIONS] --source-account --destination [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3228,73 +3334,83 @@ Crear y financiar una cuenta nueva - `--instructions ` — Número de instrucciones a simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx operación agregar crear-cuenta` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear y financiar una cuenta nueva -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add create-account [OPTIONS] --source-account --destination [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--destination ` — ID de cuenta a crear, p. ej. `GBX...` - - `--starting-balance ` — Saldo inicial en stroops de la cuenta, predeterminado 1 XLM Valor predeterminado: `10_000_000` -## `stellar tx operation add create-claimable-balance` - -Crear un saldo reclamable que puede ser reclamado por cuentas especificadas - -**Uso:** `stellar tx operation add create-claimable-balance [OPTIONS] --source-account --amount [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm Valor predeterminado: `100` -- `--cost` — Mostrar el costo de ejecución en stderr +- `--cost` — Mostrar el coste de ejecución en stderr -- `--instructions ` — Número de instrucciones para simulate +- `--instructions ` — Número de instrucciones a simulate -- `--build-only` — Desarrollar la transacción y solo escribir la xdr base64 en stdout +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +- `--build-only` — Desarrollar la transacción y solo escribir el xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará +## `stellar tx operation add create-claimable-balance` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear un saldo reclamable que puede ser reclamado por cuentas especificadas -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add create-claimable-balance [OPTIONS] --source-account --amount [TX_XDR]` + +###### **Argumentos:** + +- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío + +###### **Opciones:** + +- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente utilizada para la operación + +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase seed (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con la clave pública fallará - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` @@ -3316,19 +3432,12 @@ Crear un saldo reclamable que puede ser reclamado por cuentas especificadas - `--claimant alice (incondicional)` - `--claimant 'bob:{"before_absolute_time":"1735689599"}'` - `--claimant 'charlie:{"and":[{"before_absolute_time":"1735689599"},{"before_relative_time":"3600"}]}'` -## `stellar tx operation add create-passive-sell-offer` - -Crear una oferta de venta pasiva en el Stellar DEX - -**Uso:** `stellar tx operation add create-passive-sell-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3338,51 +3447,47 @@ Crear una oferta de venta pasiva en el Stellar DEX - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir la xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +## `stellar tx operation add create-passive-sell-offer` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Crear una oferta de venta pasiva en el Stellar DEX -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido; de lo contrario, usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add create-passive-sell-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase seed (--sign-with-key "kite urban…"). Si se usa frase seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase seed para firmar, establece qué ruta determinista jerárquica se usará, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--selling ` — Activo a vender - - `--buying ` — Activo a comprar - - `--amount ` — Cantidad de activo a vender para ofrecer, en stroops. Por defecto: `0` - - `--price ` — Precio de 1 unidad del activo a vender en términos del activo a comprar como "numerador:denominador" (p. ej., "1:2" significa 0.5) -## `stellar tx operation add end-sponsoring-future-reserves` - -Finalizar patrocinio de reservas futuras - -**Uso:** `stellar tx operation add end-sponsoring-future-reserves [OPTIONS] --source-account [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3392,43 +3497,43 @@ Finalizar patrocinio de reservas futuras - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir la xdr base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +## `stellar tx operation add end-sponsoring-future-reserves` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Finalizar patrocinio de reservas futuras -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add end-sponsoring-future-reserves [OPTIONS] --source-account [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas frase Seed para firmar, establece la ruta determinista jerárquica a usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `` — Sobre de transacción en base-64 XDR o archivo que contiene XDR a decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas frase Seed para firmar, establece la ruta determinista jerárquica a usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet -## `stellar tx operation add liquidity-pool-deposit` - -Depositar activos en un fondo de liquidez - -**Uso:** `stellar tx operation add liquidity-pool-deposit [OPTIONS] --source-account --liquidity-pool-id --max-amount-a --max-amount-b [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3438,21 +3543,33 @@ Depositar activos en un fondo de liquidez - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Desarrollar la transacción y solo escribir la xdr base64 en stdout -- `--rpc-url ` — punto final RPC del servidor +- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +## `stellar tx operation add liquidity-pool-deposit` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Depositar activos en un fondo de liquidez -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add liquidity-pool-deposit [OPTIONS] --source-account --liquidity-pool-id --max-amount-a --max-amount-b [TX_XDR]` + +###### **Argumentos:** + +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío + +###### **Opciones:** + +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación + +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` @@ -3476,21 +3593,14 @@ Depositar activos en un fondo de liquidez Valor predeterminado: `1:1` -## `stellar tx operation add liquidity-pool-withdraw` - -Retirar activos de un fondo de liquidez - -**Uso:** `stellar tx operation add liquidity-pool-withdraw [OPTIONS] --source-account --liquidity-pool-id --amount --min-amount-a --min-amount-b [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** -- `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm +- `--fee ` — monto de la comisión para la transacción, en stroops. 1 stroop = 0.0000001 xlm Valor predeterminado: `100` @@ -3498,51 +3608,47 @@ Retirar activos de un fondo de liquidez - `--instructions ` — Número de instrucciones para simulate -- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +- `--build-only` — Desarrollar la transacción y solo escribir la xdr base64 en stdout - `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +## `stellar tx operation add liquidity-pool-withdraw` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +Retirar activos de un fondo de liquidez -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add liquidity-pool-withdraw [OPTIONS] --source-account --liquidity-pool-id --amount --min-amount-a --min-amount-b [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas frase Seed para firmar, establece la ruta determinista jerárquica a usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta fuente usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si usas frase Seed para firmar, establece la ruta determinista jerárquica a usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--liquidity-pool-id ` — ID del fondo de liquidez para retirar - - `--amount ` — Cantidad de acciones del fondo para retirar, en stroops - - `--min-amount-a ` — Cantidad mínima del primer activo a recibir, en stroops - - `--min-amount-b ` — Cantidad mínima del segundo activo a recibir, en stroops -## `stellar tx operation add manage-buy-offer` - -Crear, actualizar o eliminar una oferta de compra - -**Uso:** `stellar tx operation add manage-buy-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3552,55 +3658,50 @@ Crear, actualizar o eliminar una oferta de compra - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add manage-buy-offer` + +Crear, actualizar o eliminar una oferta de compra + +**Uso:** `stellar tx operation add manage-buy-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` + +###### **Argumentos:** -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si usas frase Seed, `--hd-path` por defecto es la ruta `0` - - `--hd-path ` — Si usas frase Seed para firmar, establece la ruta determinista jerárquica a usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Predeterminado: `0` - - `--sign-with-lab` — Firmar con https://lab.stellar.org - - `--sign-with-ledger` — Firmar con una ledger wallet - - `--selling ` — Activo a vender - - `--buying ` — Activo a comprar - - `--amount ` — Cantidad de activo a comprar para adquirir, en stroops. 1 stroop = 0.0000001 del activo (p. ej. 1 XLM = `10_000_000` stroops). Usa `0` para eliminar la oferta - - `--price ` — Precio de 1 unidad del activo a comprar en términos del activo a vender como "numerador:denominador" (p. ej., "1:2" significa 0.5) - - `--offer-id ` — ID de la oferta. Si es 0, se creará una nueva oferta. De lo contrario, actualizará la oferta existente Valor predeterminado: `0` -## `stellar tx operación agregar gestionar-datos` - -Establecer, modificar o eliminar entradas de datos de la cuenta - -**Uso:** `stellar tx operation add manage-data [OPTIONS] --source-account --data-name [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3610,47 +3711,45 @@ Establecer, modificar o eliminar entradas de datos de la cuenta - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout -- `--rpc-url ` — Punto final del servidor RPC +- `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase para firmar la transacción enviada al servidor rpc +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operación agregar gestionar-datos` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +Establecer, modificar o eliminar entradas de datos de la cuenta -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add manage-data [OPTIONS] --source-account --data-name [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--data-name ` — Cadena de hasta 64 bytes de longitud. Si es un nombre nuevo, se agregará el par nombre/valor dado a la cuenta. Si este Nombre ya está presente, entonces el valor asociado será modificado - - `--data-value ` — Cadena hexagonal de hasta 64 bytes. Si no está presente, entonces se eliminará el Nombre existente. Si está presente, este valor se establecerá en el `DataEntry` -## `stellar tx operation add manage-sell-offer` - -Crear, actualizar o eliminar una oferta de venta - -**Uso:** `stellar tx operation add manage-sell-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3660,55 +3759,50 @@ Crear, actualizar o eliminar una oferta de venta - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout -- `--rpc-url ` — punto final RPC del servidor +- `--rpc-url ` — Punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC +- `--network-passphrase ` — Frase para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add manage-sell-offer` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +Crear, actualizar o eliminar una oferta de venta -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está establecido, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add manage-sell-offer [OPTIONS] --source-account --selling --buying --amount --price [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--selling ` — Activo a vender - - `--buying ` — Activo a comprar - - `--amount ` — Cantidad de activo a vender para ofrecer, en stroops. 1 stroop = 0.0000001 del activo (p. ej. 1 XLM = `10_000_000` stroops). Usa `0` para eliminar la oferta - - `--price ` — Precio de 1 unidad del activo a vender en términos del activo a comprar como "numerador:denominador" (p. ej., "1:2" significa 0.5) - - `--offer-id ` — ID de la oferta. Si es 0, se creará una nueva oferta. De lo contrario, actualizará la oferta existente Valor predeterminado: `0` -## `stellar tx operation add path-payment-strict-receive` - -Enviar un pago con un activo diferente usando la búsqueda de rutas, especificando la cantidad a recibir - -**Uso:** `stellar tx operation add path-payment-strict-receive [OPTIONS] --source-account --send-asset --send-max --destination --dest-asset --dest-amount [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3718,55 +3812,49 @@ Enviar un pago con un activo diferente usando la búsqueda de rutas, especifican - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add path-payment-strict-receive` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar un pago con un activo diferente usando la búsqueda de rutas, especificando la cantidad a recibir -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add path-payment-strict-receive [OPTIONS] --source-account --send-asset --send-max --destination --dest-asset --dest-amount [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--send-asset ` — Activo a enviar (pagar con) - - `--send-max ` — Cantidad máxima del activo a enviar para deducir de la cuenta del emisor, en stroops. 1 stroop = 0.0000001 del activo (p. ej. 1 XLM = `10_000_000` stroops) - - `--destination ` — Cuenta que recibe el pago - - `--dest-asset ` — Activo que la cuenta destino recibirá - - `--dest-amount ` — Cantidad exacta del activo destino que la cuenta destino recibirá, en stroops. 1 stroop = 0.0000001 del activo - - `--path ` — Lista de activos intermedios para la ruta de pago, separados por comas (hasta 5 activos). Cada activo debe estar en el formato 'código:emisor' o 'native' para XLM -## `stellar tx operation add path-payment-strict-send` - -Enviar un pago con un activo diferente usando la búsqueda de rutas, especificando la cantidad a enviar - -**Uso:** `stellar tx operation add path-payment-strict-send [OPTIONS] --source-account --send-asset --send-amount --destination --dest-asset --dest-min [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base 64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3776,55 +3864,49 @@ Enviar un pago con un activo diferente usando la búsqueda de rutas, especifican - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add path-payment-strict-send` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar un pago con un activo diferente usando la búsqueda de rutas, especificando la cantidad a enviar -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add path-payment-strict-send [OPTIONS] --source-account --send-asset --send-amount --destination --dest-asset --dest-min [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--send-asset ` — Activo a enviar (pagar con) - - `--send-amount ` — Cantidad de activo a enviar para deducir de la cuenta del emisor, en stroops. 1 stroop = 0.0000001 del activo (p. ej. 1 XLM = `10_000_000` stroops) - - `--destination ` — Cuenta que recibe el pago - - `--dest-asset ` — Activo que la cuenta destino recibirá - - `--dest-min ` — Cantidad mínima del activo destino que la cuenta destino puede recibir. La operación fallará si no se puede cumplir esta cantidad - - `--path ` — Lista de activos intermedios para la ruta del pago, separados por comas (hasta 5 activos). Cada activo debe estar en el formato 'código:emisor' o 'native' para XLM -## `stellar tx operation agregar pago` - -Enviar activo a cuenta destino - -**Uso:** `stellar tx operation add payment [OPTIONS] --source-account --destination --amount [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en base 64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3834,21 +3916,33 @@ Enviar activo a cuenta destino - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout -- `--rpc-url ` — punto final del servidor RPC +- `--rpc-url ` — punto final RPC del servidor -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces -- `--network-passphrase ` — Frase clave de red para firmar la transacción enviada al servidor rpc +- `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor RPC -- `-n`, `--network ` — Nombre de la red a usar de la configuración +- `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation agregar pago` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Enviar activo a cuenta destino -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add payment [OPTIONS] --source-account --destination --amount [TX_XDR]` + +###### **Argumentos:** + +- `` — Sobre de transacción XDR en base 64 o archivo que contiene XDR para decodificar, o stdin si está vacío + +###### **Opciones:** + +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación + +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará - `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` @@ -3866,19 +3960,12 @@ Enviar activo a cuenta destino - `--amount ` — Cantidad del activo mencionado a enviar, en stroops. 1 stroop = 0.0000001 del activo (p. ej. 1 XLM = `10_000_000` stroops) -## `stellar tx operation add revoke-sponsorship` - -Revocar patrocinio de una entrada del ledger o firmante - -**Uso:** `stellar tx operation add revoke-sponsorship [OPTIONS] --source-account --account-id [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3888,57 +3975,50 @@ Revocar patrocinio de una entrada del ledger o firmante - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add revoke-sponsorship` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Revocar patrocinio de una entrada del ledger o firmante -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add revoke-sponsorship [OPTIONS] --source-account --account-id [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--account-id ` — ID de cuenta (requerido para todos los tipos de patrocinio) +- `--asset ` — Activo para patrocinio de trustline (formato: CODE:ISSUER) +- `--data-name ` — Nombre de dato para patrocinio de entrada de datos +- `--offer-id ` — ID de oferta para patrocinio de oferta +- `--liquidity-pool-id ` — ID del pool para patrocinio de fondos de liquidez. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +- `--claimable-balance-id ` — ID de balance reclamable para patrocinio de balance reclamable. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA +- `--signer-key ` — Clave del firmante para patrocinio de firmante -- `--asset ` — Activo para patrocinio de trustline (formato: CODE:ISSUER) - -- `--data-name ` — Nombre de dato para patrocinio de entrada de datos - -- `--offer-id ` — ID de oferta para patrocinio de oferta - -- `--liquidity-pool-id ` — ID del pool para patrocinio de fondos de liquidez. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -- `--claimable-balance-id ` — ID de balance reclamable para patrocinio de balance reclamable. Acepta múltiples formatos: - Formato API con prefijo de tipo (72 caracteres): 000000006f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de hash directo (64 caracteres): 6f2179b31311fa8064760b48942c8e166702ba0b8fbe7358c4fd570421840461 - Formato de dirección (base32): BAAMLBZI42AD52HKGIZOU7WFVZM6BPEJCLPL44QU2AT6TY3P57I5QDNYIA - -- `--signer-key ` — Clave del firmante para patrocinio de firmante - -## `stellar tx operation add set-options` - -Establecer opciones de cuenta como flags, firmantes y dominio principal - -**Uso:** `stellar tx operation add set-options [OPTIONS] --source-account [TX_XDR]` - -###### **Argumentos:** - -- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +###### **Opciones (Globales):** -###### **Opciones:** +- Ejemplo: `--hd-path 1`. +- Por defecto: `0` Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y en caso contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +###### **Opciones (RPC):** - `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm @@ -3948,124 +4028,134 @@ Establecer opciones de cuenta como flags, firmantes y dominio principal - `--instructions ` — Número de instrucciones para simulate +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + - `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar de la configuración -- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +## `stellar tx operation add set-options` -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +Establecer opciones de cuenta como flags, firmantes y dominio principal -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otras configuraciones persistentes +**Uso:** `stellar tx operation add set-options [OPTIONS] --source-account [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--operation-source-account ` [alias: `op-source`] — Cuenta origen usada para la operación +- `-s`, `--source-account ` [alias: `source`] — Cuenta desde la que se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una Seed phrase (--source "kite urban…"). Si no se proporcionaron las banderas `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con clave pública fallará +- `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` +- `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet - - `--inflation-dest ` — Cuenta del destino de inflación - - `--master-weight ` — Un número de 0-255 (inclusive) que representa el peso de la clave maestra. Si el peso de la clave maestra se actualiza a 0, efectivamente queda deshabilitado - - `--low-threshold ` — Un número de 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un bajo umbral. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--med-threshold ` — Un número de 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un umbral medio. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--high-threshold ` — Un número de 0-255 (inclusive) que representa el umbral que esta cuenta establece en todas las operaciones que realiza que tienen un alto umbral. https://developers.stellar.org/docs/learn/encyclopedia/security/signatures-multisig#multisig - - `--home-domain ` — Establece el dominio de origen de una cuenta. Ver https://developers.stellar.org/docs/learn/encyclopedia/network-configuration/federation - - `--signer ` — Agregar, actualizar o eliminar un firmante de una cuenta - - `--signer-weight ` — El peso del firmante es un número de 0-255 (inclusive). El firmante se elimina si el peso es 0 - - `--set-required` — Cuando se habilita, un emisor debe aprobar una cuenta antes de que esa cuenta pueda poseer su activo. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-required-0x1 - - `--set-revocable` — Cuando se habilita, un emisor puede revocar la autorización de una línea de confianza existente, congelando así el activo mantenido por una cuenta. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-revocable-0x2 - - `--set-clawback-enabled` — Habilita la cuenta emisora para recuperar (quemar) todo el activo. https://developers.stellar.org/docs/tokens/control-asset-access#clawback-enabled-0x8 - - `--set-immutable` — Con esta configuración, ninguna de las otras banderas de autorización (`AUTH_REQUIRED_FLAG`, `AUTH_REVOCABLE_FLAG`) puede ser establecida, y la cuenta emisora no puede fusionarse. https://developers.stellar.org/docs/tokens/control-asset-access#authorization-immutable-0x4 - - `--clear-required` - - `--clear-revocable` - - `--clear-immutable` - - `--clear-clawback-enabled` -## `stellar tx operation add set-trustline-flags` - -Configurar flags de autorización y trustline para un activo - -**Uso:** `stellar tx operation add set-trustline-flags [OPTIONS] --source-account --trustor --asset [TX_XDR]` - -###### **Argumentos:** +###### **Opciones (Globales):** -- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y de lo contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes -###### **Opciones:** +###### **Opciones (RPC):** -- `--rpc-url ` — punto final RPC del servidor +- `--fee ` — Cantidad de la tarifa para la transacción, en stroops. 1 stroop = 0.0000001 xlm -- `--rpc-header ` — Encabezado(s) RPC para incluir en peticiones al proveedor RPC `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc + Valor predeterminado: `100` - `-n`, `--network ` — Nombre de la red a usar desde la configuración +- `--cost` — Mostrar el costo de ejecución en stderr -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--instructions ` — Número de instrucciones para simulate -- `--config-dir ` — Ubicación del directorio de configuración. +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción -- Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. +- `--build-only` — Construir la transacción y solo escribir el XDR base64 en stdout - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase clave de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar de la configuración -- Contiene archivos de configuración, alias y otras configuraciones persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. +## `stellar tx operation add set-trustline-flags` -- Ejemplo: `--hd-path 1`. +Configurar flags de autorización y trustline para un activo -- Por defecto: `0` Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y en caso contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes +**Uso:** `stellar tx operation add set-trustline-flags [OPTIONS] --source-account --trustor --asset [TX_XDR]` -- `--sign-with-key ` — Firmar con una clave local o con una clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa frase Seed, `--hd-path` por defecto es la ruta `0` +###### **Argumentos:** -- `--hd-path ` — Si se usa una frase Seed para firmar, establece qué ruta determinista jerárquica usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o stdin si está vacío -- `--sign-with-lab` — Firmar con https://lab.stellar.org +###### **Opciones:** +- `--rpc-url ` — punto final RPC del servidor +- Contiene archivos de configuración, alias y otras configuraciones persistentes `--sign-with-key ` — Firmar con una clave local o clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una Seed phrase (--sign-with-key "kite urban…"). Si usas Seed phrase, `--hd-path` usa por defecto la ruta `0` `--hd-path ` — Si usas Seed phrase para firmar, establece qué ruta jerárquica determinista usar, p. ej. `m/44'/148'/{hd_path}`. +- `--sign-with-key ` — Firmar con una clave local o con una clave guardada en el almacenamiento seguro del sistema operativo. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa frase Seed, `--hd-path` por defecto es la ruta `0` +- `--hd-path ` — Si se usa una frase Seed para firmar, establece qué ruta determinista jerárquica usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` +- `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una billetera ledger - - `--trustor ` — Cuenta para establecer banderas de línea de confianza, p.ej. `GBX...`, o alias, o cuenta multiplexada, \`M123...\`\` - - `--asset ` — Activo para establecer banderas de línea de confianza - - `--set-authorize` — Significa autorización completa que permite a una cuenta transaccionar libremente con el activo para hacer y recibir pagos y realizar pedidos - - `--set-authorize-to-maintain-liabilities` — Denota autorización limitada que permite a una cuenta mantener pedidos actuales pero no transaccionar con el activo de otra manera - - `--set-trustline-clawback-enabled` — Habilita a la cuenta emisora para recuperar (quemar) todo el activo. Ve nuestra sección sobre Clawbacks: https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/clawbacks - - `--clear-authorize` - - `--clear-authorize-to-maintain-liabilities` - - `--clear-trustline-clawback-enabled` +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y de lo contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-header ` — Encabezado(s) RPC para incluir en peticiones al proveedor RPC `--network-passphrase ` — Frase de red para firmar la transacción enviada al servidor rpc + + `-n`, `--network ` — Nombre de la red a usar desde la configuración + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada + +- `--config-dir ` — Ubicación del directorio de configuración. + +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +- Por defecto usa `$XDG_CONFIG_HOME/stellar` si está definido, en caso contrario usa `~/.config/stellar`. + +- `--rpc-url ` — punto final del servidor RPC + +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces + +- `--network-passphrase ` — Frase clave de red para firmar la transacción enviada al servidor rpc + +- `-n`, `--network ` — Nombre de la red a usar de la configuración + ## `stellar tx send` Envía un sobre de transacción a la red @@ -4076,14 +4166,17 @@ Envía un sobre de transacción a la red - `` — Sobre de transacción XDR en Base-64 o archivo que contiene XDR para decodificar, o entrada estándar si está vacío -###### **Opciones:** +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, o de lo contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** - `--rpc-url ` — endpoint del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y de lo contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar tx sign` @@ -4101,12 +4194,18 @@ Firma un sobre de transacción añadiendo la firma al sobre - `--hd-path ` — Si se usa una frase Seed para firmar, establece qué ruta determinista jerárquica usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una billetera ledger + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, o de lo contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — endpoint del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Frase de paso de la red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red a usar desde la configuración -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, utiliza `$XDG_CONFIG_HOME/stellar` si está definido, y de lo contrario recurre a `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes ## `stellar tx simulate` @@ -4120,17 +4219,24 @@ Simula un sobre de transacción desde stdin ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - `-s`, `--source-account ` [alias: `source`] — Cuenta desde la cual se origina la transacción. Alias `source`. Puede ser una identidad (--source alice), una clave pública (--source GDKW...), una cuenta muxed (--source MDA…), una clave secreta (--source SC36…), o una frase Seed (--source "kite urban…"). Si no se proporcionaron las flags `--build-only` o `--sim-only`, esta clave también se usará para firmar la transacción final. En ese caso, intentar firmar con una clave pública fallará -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, o de lo contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `--sign-with-key ` — Firmar con una clave local o una clave guardada en el almacenamiento seguro del SO. Puede ser una identidad (--sign-with-key alice), una clave secreta (--sign-with-key SC36…), o una frase Seed (--sign-with-key "kite urban…"). Si se usa una frase Seed, `--hd-path` por defecto es la ruta `0` - `--hd-path ` — Si usas una frase Seed para firmar, establece qué ruta jerárquicamente determinista usar, por ejemplo `m/44'/148'/{hd_path}`. Ejemplo: `--hd-path 1`. Por defecto: `0` - `--sign-with-lab` — Firmar con https://lab.stellar.org - `--sign-with-ledger` — Firmar con una ledger wallet +- `--instruction-leeway ` — Permite esta cantidad de instrucciones extra al presupuestar recursos durante la simulación de la transacción + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración ## `stellar tx fetch` @@ -4143,24 +4249,28 @@ Obtener una transacción de la red por hash. Si no se pasa subcomando, se devolv - `result` — Obtener el resultado de la transacción - `meta` — Obtener los metadatos de la transacción - `fee` — Obtener la información de la comisión de la transacción +- `events` — Obtener los eventos de la transacción ###### **Opciones:** - `--hash ` — Hash de la transacción a obtener -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - `--output ` — Formato de la salida Valor predeterminado: `json` - Posibles valores: + Valores posibles: - - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) - - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `json`: Salida JSON con XDRs analizados (una línea, no formateado) + - `json-formatted`: Salida JSON formateada (multilínea) con XDRs analizados - `xdr`: Salida RPC original (contiene XDRs) +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + ## `stellar tx fetch result` Obtener el resultado de la transacción @@ -4170,20 +4280,23 @@ Obtener el resultado de la transacción ###### **Opciones:** - `--hash ` — Hash de la transacción a obtener -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - `--output ` — Formato de la salida Valor por defecto: `json` Posibles valores: - - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) - - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `json`: Salida JSON con XDRs analizados (una línea, no formateado) + - `json-formatted`: Salida JSON formateada (multilínea) con XDRs analizados - `xdr`: Salida RPC original (contiene XDRs) +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + ## `stellar tx fetch meta` Obtener los metadatos de la transacción @@ -4193,20 +4306,23 @@ Obtener los metadatos de la transacción ###### **Opciones:** - `--hash ` — Hash de la transacción a obtener -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - `--output ` — Formato de la salida Valor predeterminado: `json` - Valores posibles: + Posibles valores: - - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) - - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `json`: Salida JSON con XDRs analizados (una línea, no formateado) + - `json-formatted`: Salida JSON formateada (multilínea) con XDRs analizados - `xdr`: Salida RPC original (contiene XDRs) +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + ## `stellar tx fetch fee` Obtener la información de la comisión de la transacción @@ -4216,10 +4332,6 @@ Obtener la información de la comisión de la transacción ###### **Opciones:** - `--hash ` — Hash de la transacción a obtener -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - `--output ` — Formato de salida para el comando fee Valor por defecto: `table` @@ -4230,6 +4342,39 @@ Obtener la información de la comisión de la transacción - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados - `table`: Formateado en una tabla comparando tipos de comisión +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + +## `stellar tx fetch events` + +Obtener los eventos de la transacción + +**Uso:** `stellar tx fetch events [OPCIONES] --hash ` + +###### **Opciones:** + +- `--hash ` — Hash de la transacción para obtener +- `--output ` — Formato de la salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de los eventos con XDRs analizados (una línea, no formateado) + - `json-formatted`: Salida JSON formateada (multilínea) de eventos con XDRs analizados + - `text`: Salida de eventos legible para humanos con XDRs analizados + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + ## `stellar tx decode` Decodificar un sobre de transacción de XDR a JSON @@ -4250,7 +4395,7 @@ Decodificar un sobre de transacción de XDR a JSON - `--output ` - Valor predeterminado: `json` + Valor por defecto: `json` Valores posibles: `json`, `json-formatted` @@ -4268,7 +4413,7 @@ Codificar un sobre de transacción de JSON a XDR - `--input ` - Valor por defecto: `json` + Valor predeterminado: `json` Valores posibles: `json` @@ -4469,41 +4614,100 @@ Generar valores XDR - `default` — Generar valores XDR predeterminados - `arbitrary` — Generar valores XDR arbitrarios -## `stellar xdr generate default` +## `stellar xdr generate default` + +Generar valores XDR predeterminados + +**Uso:** `stellar xdr generate default [OPTIONS] --type ` + +###### **Opciones:** + +- `--type ` — Tipo de XDR a generar +- `--output ` + + Valor predeterminado: `single-base64` + + Valores posibles: `single`, `single-base64`, `json`, `json-formatted`, `text` + +## `stellar xdr generate arbitrary` + +Generar valores XDR arbitrarios + +**Uso:** `stellar xdr generate arbitrary [OPTIONS] --type ` + +###### **Opciones:** + +- `--type ` — Tipo de XDR a generar +- `--output ` + + Valor predeterminado: `single-base64` + + Valores posibles: `single`, `single-base64`, `json`, `json-formatted`, `text` + +## `tipos xdr de stellar versión` + +Imprimir información de versión + +**Uso:** `tipos xdr de stellar versión` + +## `stellar strkey` + +Decodifica y codifica strkey + +**Uso:** `stellar strkey ` + +###### **Subcomandos:** + +- `decode` — Decodificar strkey +- `encode` — Codificar strkey +- `zero` — Generar el strkey cero +- `version` — Imprimir información de la versión + +## `stellar strkey decode` + +Decodificar strkey + +**Uso:** `stellar strkey decode ` + +###### **Argumentos:** + +- `` — Strkey a decodificar + +## `stellar strkey encode` + +Codificar strkey -Generar valores XDR predeterminados +**Uso:** `stellar strkey encode ` -**Uso:** `stellar xdr generate default [OPTIONS] --type ` +###### **Argumentos:** -###### **Opciones:** +- `` — JSON del Strkey a codificar -- `--type ` — Tipo de XDR a generar -- `--output ` +## `stellar strkey zero` - Valor predeterminado: `single-base64` +Generar el strkey cero - Valores posibles: `single`, `single-base64`, `json`, `json-formatted`, `text` +**Uso:** `stellar strkey zero [OPCIONES] ` -## `stellar xdr generate arbitrary` +###### **Argumentos:** -Generar valores XDR arbitrarios +- `` — Tipo de strkey para generar su valor cero -**Uso:** `stellar xdr generate arbitrary [OPTIONS] --type ` + Valores posibles: `public_key_ed25519`, `pre_auth_tx`, `hash_x`, `muxed_account_ed25519`, `signed_payload_ed25519`, `contract`, `liquidity_pool`, `claimable_balance_v0` ###### **Opciones:** -- `--type ` — Tipo de XDR a generar -- `--output ` +- `--output ` — Formato de salida - Valor predeterminado: `single-base64` + Valor por defecto: `strkey` - Valores posibles: `single`, `single-base64`, `json`, `json-formatted`, `text` + Valores posibles: `strkey`, `json` -## `tipos xdr de stellar versión` +## `stellar strkey version` -Imprimir información de versión +Imprimir información de la versión -**Uso:** `tipos xdr de stellar versión` +**Uso:** `stellar strkey version` ## `stellar completación` @@ -4566,10 +4770,13 @@ Listar acciones en caché (transacciones, simulaciones) ###### **Opciones:** -- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada -- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, o de lo contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes - `-l`, `--long` +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto usa `$XDG_CONFIG_HOME/stellar` si está configurado, o `~/.config/stellar` en caso contrario. Contiene archivos de configuración, alias y otras configuraciones persistentes + ## `stellar cache registro de acciones leer` Leer acción en caché @@ -4582,7 +4789,7 @@ Leer acción en caché ## `stellar versión` -Imprimir información de versión +Imprimir información de la versión **Uso:** `stellar version [OPTIONS]` @@ -4622,23 +4829,329 @@ Obtener información del ledger ###### **Subcomandos:** +- `entry` — Trabajar con entradas de ledger - `latest` — Obtener la secuencia más reciente del ledger e información desde la red - `fetch` — -## `stellar ledger latest` +## `stellar ledger entry` -Obtener la secuencia más reciente del ledger e información desde la red +Trabajar con entradas de ledger -**Uso:** `stellar ledger latest [OPTIONS]` +**Uso:** `stellar ledger entry ` + +###### **Subcomandos:** + +- `fetch` — Obtener entradas de ledger. Este comando admite todos los tipos de entradas de ledger admitidas por el RPC. Lee más sobre el comando RPC aquí: [https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#types-of-ledgerkeys](https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#types-of-ledgerkeys) + +## `stellar ledger entry fetch` + +Obtener entradas de ledger. Este comando admite todos los tipos de entradas de ledger admitidas por el RPC. Lee más sobre el comando RPC aquí: [https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#types-of-ledgerkeys](https://developers.stellar.org/docs/data/apis/rpc/api-reference/methods/getLedgerEntries#types-of-ledgerkeys) + +**Uso:** `stellar ledger entry fetch ` + +###### **Subcomandos:** + +- `account` — Obtener entrada de cuenta por clave pública o alias +- `contract-data` — Obtener entrada de ledger de contrato por dirección o alias y clave de almacenamiento +- `claimable-balance` — Obtener una entrada de ledger de balance reclamable por id +- `liquidity-pool` — Obtener una entrada de ledger de fondos de liquidez por id +- `contract-code` — Obtener el bytecode WASM de un Contrato por hash WASM +- `trustline` — Obtener un trustline por cuenta y activo +- `data` — Obtener entradas de datos clave-valor adjuntas a una cuenta (ver manageDataOp) +- `offer` — Obtener una oferta por cuenta e id de oferta + +## `stellar ledger entry fetch account` + +Obtener entrada de cuenta por clave pública o alias + +**Uso:** `stellar ledger entry fetch account [OPCIONES] --account ` + +###### **Opciones:** + +- `--account ` — Alias o dirección de la cuenta a consultar + +- `--output ` — Formato de la salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `xdr`: Salida RPC original (contiene XDRs) + +- `--hd-path ` — Si la identidad es una frase Seed usa este camino hd, predeterminado es 0 + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red que se usará desde la configuración + +## `stellar ledger entry fetch contract-data` + +Obtener entrada de ledger de contrato por dirección o alias y clave de almacenamiento + +**Uso:** `stellar ledger entry fetch contract-data [OPCIONES] --contract ` ###### **Opciones:** +- `--contract ` — Alias o dirección del contrato a obtener + +- `--output ` — Formato de la salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `xdr`: Salida RPC original (contiene XDRs) + +- `--durability ` — Durabilidad de la entrada de almacenamiento + + Valor predeterminado: `persistent` + + Valores posibles: + + - `persistent`: Persistente + - `temporary`: Temporal + +- `--key ` — Clave de almacenamiento (solo símbolos) + +- `--key-xdr ` — Clave de almacenamiento (XDR codificado en base64) + +- `--instance` — Si la entrada ledger de la instancia del contrato debe incluirse en la salida + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + - `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden agregar múltiples encabezados pasando la opción varias veces - `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - `-n`, `--network ` — Nombre de la red que se usará desde la configuración + +## `stellar ledger entry fetch claimable-balance` + +Obtener una entrada de ledger de balance reclamable por id + +**Uso:** `stellar ledger entry fetch claimable-balance [OPCIONES]` + +###### **Opciones:** + +- `--id ` — Ids de balance reclamable para obtener una entrada +- `--output ` — Formato de salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs parseados (en una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs parseados + - `xdr`: Salida RPC original (contiene XDRs) + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger entry fetch liquidity-pool` + +Obtener una entrada de fondo de liquidez en el ledger por id + +**Uso:** `stellar ledger entry fetch liquidity-pool [OPTIONS]` + +###### **Opciones:** + +- `--id ` — IDs de fondos de liquidez +- `--output ` — Formato de salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs analizados (una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs analizados + - `xdr`: Salida RPC original (contiene XDRs) + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger entry fetch contract-code` + +Obtener el bytecode WASM de un contrato por el hash WASM + +**Uso:** `stellar ledger entry fetch contract-code [OPTIONS]` + +###### **Opciones:** + +- `--wasm-hash ` — Obtener bytecode WASM por hash - `--output ` — Formato de la salida + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada ledger con XDRs analizados (una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada ledger con XDRs analizados + - `xdr`: Salida RPC original (contiene XDRs) + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger entry fetch trustline` + +Obtener una trustline por cuenta y activo + +**Uso:** `stellar ledger entry fetch trustline [OPTIONS] --account --asset ` + +###### **Opciones:** + +- `--output ` — Formato de salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs analizados (una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs analizados + - `xdr`: Salida RPC original (contiene XDRs) + +- `--account ` — Alias o dirección de la cuenta a consultar + +- `--asset ` — Activos para obtener información de trustline + +- `--hd-path ` — Si la cuenta es una frase seed, usar esta ruta HD, el valor por defecto es 0 + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activada +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está configurado, y en caso contrario `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger entry fetch data` + +Obtener entradas de datos clave-valor adjuntas a una cuenta (ver manageDataOp) + +**Uso:** `stellar ledger entry fetch data [OPTIONS] --account --data-name ` + +###### **Opciones:** + +- `--output ` — Formato de salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs analizados (una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs analizados + - `xdr`: Salida RPC original (contiene XDRs) + +- `--account ` — Alias o dirección de la cuenta a consultar + +- `--data-name ` — Obtener entradas de datos clave-valor adjuntas a una cuenta (ver manageDataOp) + +- `--hd-path ` — Si la identidad es una frase seed, usar esta ruta HD, el valor por defecto es 0 + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger entry fetch offer` + +Obtener una oferta por cuenta e id de oferta + +**Uso:** `stellar ledger entry fetch offer [OPTIONS] --account --offer ` + +###### **Opciones:** + +- `--output ` — Formato de salida + + Valor predeterminado: `json` + + Valores posibles: + + - `json`: Salida JSON de la entrada del ledger con XDRs analizados (una línea, sin formato) + - `json-formatted`: Salida JSON formateada (multilínea) de la entrada del ledger con XDRs analizados + - `xdr`: Salida RPC original (contiene XDRs) + +- `--account ` — Alias o dirección de la cuenta a consultar + +- `--offer ` — ID de una oferta realizada en el Stellar DEX + +- `--hd-path ` — Si la identidad es una frase seed, usar esta ruta HD, el valor por defecto es 0 + +###### **Opciones (Globales):** + +- `--global` — ⚠️ Obsoleto: la configuración global siempre está activa +- `--config-dir ` — Ubicación del directorio de configuración. Por defecto, usa `$XDG_CONFIG_HOME/stellar` si está definido, de lo contrario usa `~/.config/stellar`. Contiene archivos de configuración, alias y otros ajustes persistentes + +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + +## `stellar ledger latest` + +Obtener la secuencia más reciente del ledger e información desde la red + +**Uso:** `stellar ledger latest [OPTIONS]` + +###### **Opciones:** + +- `--output ` — Formato de salida + Valor por defecto: `text` Valores posibles: @@ -4647,6 +5160,13 @@ Obtener la secuencia más reciente del ledger e información desde la red - `json`: Resultado JSON de la solicitud RPC - `json-formatted`: Salida JSON formateada (multilínea) de la solicitud RPC +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar ledger fetch` **Uso:** `stellar ledger fetch [OPTIONS] ` @@ -4661,21 +5181,13 @@ Obtener la secuencia más reciente del ledger e información desde la red Valor predeterminado: `1` -- `--rpc-url ` — punto final del servidor RPC - -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC - -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc - -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración - - `--output ` — Formato de la salida Valor predeterminado: `text` Valores posibles: - - `text`: Salida de texto con la información de la red + - `text`: Salida de texto de la información de la red - `json`: Resultado JSON de la solicitud RPC - `json-formatted`: Salida JSON formateada (multilínea) de la solicitud RPC @@ -4688,6 +5200,13 @@ Obtener la secuencia más reciente del ledger e información desde la red - `json`: Los campos XDR se obtendrán como JSON y serán accesibles vía los campos headerJson y metadataJson - `xdr`: Los campos XDR se obtendrán como XDR y serán accesibles vía los campos headerXdr y metadataXdr +###### **Opciones (RPC):** + +- `--rpc-url ` — endpoint del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC a incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir varios encabezados pasando la opción múltiples veces +- `--network-passphrase ` — Frase de paso de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar desde la configuración + ## `stellar fee-stats` Obtener estadísticas de tarifas de red @@ -4696,11 +5215,7 @@ Obtener estadísticas de tarifas de red ###### **Opciones:** -- `--rpc-url ` — punto final del servidor RPC -- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC -- `--network-passphrase ` — Contraseña de red para firmar la transacción enviada al servidor rpc -- `-n`, `--network ` — Nombre de la red que se usará desde la configuración -- `--output ` — Formato de la salida +- `--output ` — Formato de salida Valor predeterminado: `text` @@ -4709,3 +5224,10 @@ Obtener estadísticas de tarifas de red - `text`: Salida de texto con la información de la red - `json`: Resultado JSON de la solicitud RPC - `json-formatted`: Salida JSON formateada (multilínea) de la solicitud RPC + +###### **Opciones (RPC):** + +- `--rpc-url ` — punto final del servidor RPC +- `--rpc-header ` — Encabezado(s) RPC para incluir en las solicitudes al proveedor RPC, ejemplo: "X-API-Key: abc123". Se pueden añadir múltiples encabezados pasando la opción varias veces +- `--network-passphrase ` — Frase de contraseña de red para firmar la transacción enviada al servidor rpc +- `-n`, `--network ` — Nombre de la red a usar según la configuración diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/node-operator-tools.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/node-operator-tools.mdx index 2fa3c97489..40ecd7374f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/node-operator-tools.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/node-operator-tools.mdx @@ -7,6 +7,6 @@ sidebar_position: 100 # Herramientas para Operadores de Nodo -### [Repositorio de GitHub](https://github.com/stellar/go/tree/master/tools) +### [Repositorio de GitHub](https://github.com/stellar/go-stellar-sdk/tree/master/tools) Un repositorio de GitHub con herramientas como Stellar Archivist (para el mantenimiento del archivo de Stellar Core) y Horizon cmp (compara las respuestas de dos servidores Horizon). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/security-tools.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/security-tools.mdx index 69b242c98b..4d0c79eea1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/security-tools.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/security-tools.mdx @@ -20,3 +20,7 @@ Almanax utiliza LLMs para identificar vulnerabilidades complejas de seguridad ta ### [Certora Sunbeam](https://docs.certora.com/en/latest/docs/sunbeam/index.html) Sunbeam es una herramienta de verificación formal desarrollada por Certora para contratos inteligentes Soroban en la blockchain Stellar. Diseñada específicamente para bytecode WebAssembly (Wasm), Sunbeam verifica el código del contrato desplegado, no solo el código fuente en Rust, eliminando la necesidad de confiar en el compilador Rust. Los desarrolladores escriben propiedades de corrección usando un lenguaje de especificación ligero integrado en Rust, y Sunbeam comprueba rigurosamente que el Wasm compilado cumple esas propiedades. + +### [El Portal de Seguridad Soroban](https://sorobansecurity.com) + +El Portal de Seguridad Soroban es una plataforma de seguridad desarrollada por Inferara. Es una solución impulsada por la comunidad, basada en una base de datos en constante mantenimiento de auditorías de seguridad e informes de vulnerabilidades relacionados con el desarrollo de contratos inteligentes Soroban. La experiencia del usuario se enriquece con búsqueda semántica y otras funciones, permitiendo una búsqueda fluida y el trabajo con datos relacionados con la seguridad. El Portal también abarca proyectos, auditores, herramientas y muchos más del ecosistema Stellar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/wallets.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/wallets.mdx index 5496087fe5..f4692433f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/wallets.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/developer-tools/wallets.mdx @@ -57,4 +57,4 @@ Consulta la [documentación](https://docs.dfns.co/d/api-docs/wallets/broadcast-t Infraestructura de billetera que permite a los usuarios crear programáticamente una nueva billetera dentro de sus aplicaciones. -Sigue esta [guía](https://docs.privy.io/wallets/wallets/create/from-my-server) para crear una billetera Stellar. +Sigue esta [guía](https://docs.privy.io/wallets/wallets/create/create-a-wallet) para crear una billetera Stellar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/README.mdx index d46099d068..bf61fd504a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/README.mdx @@ -28,7 +28,7 @@ Estas son las características que están disponibles ahora. Habrá más caracte ### Tutorial en Video para Laboratorio Stellar -- Tutorial en Video para Laboratorio: https://developers.stellar.org/meetings/2024/11/14 +- Video tutorial para el laboratorio de la [reunión de desarrolladores del 2024-11-14](/meetings/2024/11/14) ### ¿Qué pasa con el Antiguo Laboratorio? diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/account.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/account.mdx index c000a25f72..45aa82b27f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/account.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/account.mdx @@ -29,7 +29,7 @@ El Friendbot se puede utilizar para una nueva cuenta o cuentas con saldo inferio ::: -4. Opcionalmente, para guardar la llave Keypair generada, haz clic en el botón "Guardar llave". Ingresa el nombre en el pop-up y haz clic en el botón "Guardar" para almacenar la llave en el almacenamiento local del navegador. Haz clic en el enlace "Guardados" en el menú principal para expandir el submenú, luego haz clic en el enlace "Pares de Claves" para ver los pares de claves guardados. La función de guardar está disponible solo en las redes Testnet y Futurenet. +4. Opcionalmente, para guardar la llave Keypair generada, haz clic en el botón "Guardar llave". Ingresa el nombre en el pop-up y haz clic en el botón "Guardar" para almacenar la llave en el almacenamiento local del navegador. Haz clic en el enlace "Guardado" en el menú principal para expandir el submenú, luego haz clic en el enlace "[Keypairs](./saved/keypairs)" para ver los keypairs guardados. La función de guardar está disponible solo en las redes Testnet y Futurenet. ## [Financiar cuenta](https://lab.stellar.org/account/fund) @@ -47,17 +47,3 @@ Si ya tienes un par de claves que quieres financiar, ve a la página "Financiar También puedes crear una cuenta usando un SDK de Stellar. Sigue una guía [aquí](../../build/guides/transactions/create-account.mdx). ::: - -## [Llaves guardadas](https://lab.stellar.org/account/saved) - -![Lab: Llaves guardadas](/assets/lab/lab-account-saved.png) - -Esta página te muestra las llaves guardadas para la red seleccionada (solo Testnet y Futurenet) en el almacenamiento local del navegador. Cada llave keypair tiene lo siguiente: - -1. Nombre - facilita encontrar la llave keypair que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. -2. Llave pública - la dirección pública de la cuenta. Puedes copiarla rápidamente con un clic de botón. -3. Llave secreta - la llave secreta de la cuenta. Haz clic en el botón de Ojo para alternar entre el formato de texto enmascarado y claro. Al igual que la llave pública, puedes copiarla haciendo clic en el botón Copiar. -4. Elimina la llave keypair guardada si ya no la necesitas. -5. La última fecha y hora guardadas. -6. Saldo en XLM si la cuenta está financiada. -7. Si la cuenta no está financiada, puedes obtener 10.000 XLM haciendo clic en el botón "Financiar con Friendbot". Esto puede ser útil después de que se reinicie el Testnet o Futurenet, ya que todas tus cuentas guardadas también se reiniciarán. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/horizon-endpoint.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/horizon-endpoint.mdx index 7516db6cd5..09c12d27c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/horizon-endpoint.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/horizon-endpoint.mdx @@ -145,7 +145,7 @@ El punto final de pagos para cuenta `/accounts/:account-id/payments` proporciona ![Lab: Horizon - Pagos](/assets/lab/horizon-payments.png) -Cuando hago clic en el botón **Enviar**, el punto final devuelve los registros de pagos (consulta la [referencia de API](https://developers.stellar.org/docs/data/horizon/api-reference/get-payments-by-account-id) para más información sobre el formato de respuesta) incluyendo el [objeto de pago](https://developers.stellar.org/docs/data/horizon/api-reference/resources/payments/object) que fueron enviados exitosamente en la cuenta en formato `JSON`. +Cuando hago clic en el botón **Submit**, el endpoint devuelve los registros de pagos (consulta la [referencia de la API](../../../data/apis/horizon/api-reference/get-payments-by-account-id.api.mdx) para más información sobre el formato de la respuesta), incluyendo el [objeto payment](../../../data/apis/horizon/api-reference/resources/payments/object.mdx) que fueron enviados con éxito en la cuenta en formato `JSON`. ![Lab: Horizon - Respuesta de Pagos](/assets/lab/horizon-payments-response.png) @@ -275,7 +275,7 @@ Cuando hago clic en el botón **Enviar**, el punto final `/assets` devuelve los ![Lab: Horizon - Página de Activos](/assets/lab/horizon-assets-usdc-response.png) -La respuesta JSON para el activo `USDC` incluye [el objeto de activo](https://developers.stellar.org/docs/data/horizon/api-reference/resources/assets/object), que contiene detalles sobre USDC, como el archivo TOML del activo (también conocido como [el archivo de información Stellar](https://developers.stellar.org/docs/tokens/publishing-asset-info)), el número de saldos reclamables, fondos de liquidez, contratos, cuentas, saldos y flags. +La respuesta JSON para el activo `USDC` incluye [el objeto asset](../../../data/apis/horizon/api-reference/resources/assets/object.mdx), que contiene detalles sobre USDC, como el archivo TOML del activo (también conocido como [el archivo de información Stellar](../../../tokens/publishing-asset-info.mdx)), el número de saldos reclamables, pools de liquidez, contratos, cuentas, balances y flags. Muestra que `auth_revocable` está establecido en `true` bajo `flags`, indicando que esta cuenta (en este caso, el emisor de `USDC`) puede congelar el saldo de un titular de un activo que ha emitido. @@ -353,8 +353,4 @@ Hacer clic en el ícono abre un modal. Recomendamos proporcionar un nombre ident ![Lab: Horizon - Modal](/assets/lab/horizon-save-modal.png) -Los endpoints guardados se encuentran en el menú principal bajo el menú "Guardados", submenú "Solicitudes". Incluyen solicitudes tanto para los **Métodos RPC** como para los **Puntos Finales de Horizon**. - -![Lab: Horizon - Página de Solicitudes Guardadas](/assets/lab/horizon-saved-requests.png) - -En la página de Solicitudes Guardadas, puedes actualizar un nombre de solicitud en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. El botón **Ver** te redirige a la página del punto final respectivo en el Stellar Lab, mientras que el ícono de copiar sirve como la Función Compartir que discutimos anteriormente. También puedes eliminar solicitudes guardadas desde esta página. +Los endpoints guardados se encuentran en el menú principal bajo el menú "Guardados", en el submenú "[Solicitudes](../saved/requests.mdx)". diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/rpc-methods.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/rpc-methods.mdx index 0f7843e618..d27ee63fba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/rpc-methods.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/api-explorer/rpc-methods.mdx @@ -30,23 +30,4 @@ El laboratorio Stellar te permite compartir métodos RPC con datos rellenados. S ## Solicitudes guardadas -Puedes guardar métodos en el almacenamiento local del navegador haciendo clic en el botón Guardar (junto al botón Compartir). Una vez que hagas clic en ese botón, aparecerá un modal donde necesitarás ingresar el nombre y hacer clic en guardar. Para ver tus métodos RPC guardados en el Laboratorio, haz clic en el enlace "Saved" en el menú principal, luego haz clic en el enlace del submenú "Requests". Luego haz clic en la pestaña "RPC Methods" en la esquina superior derecha. - -:::info - -Solo se muestran los elementos para la red seleccionada. Si no ves el elemento que buscas, intenta cambiar de red. - -::: - -![Laboratorio: Métodos RPC guardados](/assets/lab/rpc-methods-saved.png) - -Cada elemento de solicitud guardada tiene lo siguiente: - -1. Nombre del método RPC - identifica rápidamente el método que necesitas. -2. Nombre - facilita encontrar el método RPC que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de edición y guardando el nuevo nombre. -3. URL RPC - donde se envía la solicitud. -4. Comparte la URL para ver el método con todos los datos en el laboratorio. -5. Ve el elemento en el API Explorer, donde puedes enviarlo. -6. Ver cuerpo. -7. La última fecha y hora guardadas. -8. Elimina el elemento si ya no es necesario. +Puedes guardar métodos en el almacenamiento local del navegador haciendo clic en el botón Guardar (junto al botón Compartir). Una vez que hagas clic en ese botón, aparecerá un modal donde necesitarás ingresar el nombre y hacer clic en guardar. Para ver tus métodos RPC guardados en el Lab, haz clic en el enlace "Guardados" en el menú principal y luego en el enlace del submenú "[Solicitudes](../saved/requests.mdx)". Luego haz clic en la pestaña "RPC Methods" en la esquina superior derecha. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/quickstart-with-lab.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/quickstart-with-lab.mdx index 03e7505730..b52fa376b7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/quickstart-with-lab.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/quickstart-with-lab.mdx @@ -6,7 +6,7 @@ ## Requisitos previos -- [Stellar CLI](/docs/tools/cli/install-cli) +- [Stellar CLI](../cli/install-cli.mdx) - [Docker](https://www.docker.com/) ## Iniciar Quickstart @@ -27,7 +27,7 @@ Quickstart generalmente se iniciará en `http://localhost:8000`. Con esta inform 2. Selecciona la red `Personalizada` en el menú desplegable. 3. Para la URL de RPC, ingresa `http://localhost:8000/rpc`. 4. Para la URL de Horizon, ingresa `http://localhost:8000.`. -5. Para el [pase de red](/docs/networks), ingresa `Test SDF Network ; September 2015` +5. Para el [network passphrase](../../networks/README.mdx), ingresa `Test SDF Network ; September 2015` 6. Haz clic en el botón `Cambiar a la red personalizada` y cambia a usar tu Quickstart. Ahora deberías poder usar los puntos finales de Horizon, los puntos finales de RPC y Friendbot en Lab, con solicitudes que se envían a tu entorno local (Quickstart). Lab te proporciona una interfaz amigable para interactuar con tu entorno local. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/README.mdx new file mode 100644 index 0000000000..f728c096da --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/README.mdx @@ -0,0 +1,12 @@ +--- +title: Guardado +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +# Guardado + +Ver keypairs, solicitudes y transacciones guardadas en el almacenamiento local. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/keypairs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/keypairs.mdx new file mode 100644 index 0000000000..135a808982 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/keypairs.mdx @@ -0,0 +1,46 @@ +--- +title: Keypairs +sidebar_label: Keypairs +description: Ver keypairs guardados (cuentas). +sidebar_position: 0 +--- + +# [Keypairs](https://lab.stellar.org/account/saved) + +:::important + +Solo puedes guardar keypairs en redes de prueba—nunca en Mainnet—y jamás debes reutilizar keypairs de Mainnet en redes de prueba ni compartir tus claves secretas con nadie. + +::: + +## Resumen + +![Lab: Saved Keypairs](/assets/lab/lab-account-saved.png) + +Esta página muestra los keypairs guardados para la red seleccionada (solo Testnet y Futurenet) en el almacenamiento local del navegador. Cada keypair tiene lo siguiente: + +1. Nombre: facilita encontrar el keypair que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. +2. Clave pública: la dirección pública de la cuenta. Puedes copiarla rápidamente con un clic en el botón. +3. Clave secreta: la clave secreta de la cuenta. Haz clic en el botón Ojo para alternar entre formato enmascarado y texto claro. Como la clave pública, puedes copiarla haciendo clic en el botón Copiar. +4. Frase de recuperación: la frase de paso de 12 o 24 palabras. Haz clic en el botón Ojo para alternar entre formato enmascarado y texto claro. Como la clave pública, puedes copiarla haciendo clic en el botón Copiar. +5. Botón de eliminar: haz clic en este botón para borrar el keypair. +6. Elimina el keypair guardado si ya no es necesario. +7. La fecha y hora de la última vez que se guardó. +8. Saldo de XLM si la cuenta está financiada. +9. Si la cuenta no está financiada, puedes obtener 10,000 XLM haciendo clic en el botón "Financiar con Friendbot". Esto puede ser útil tras el reinicio de Testnet o Futurenet, ya que todas tus cuentas guardadas también se restablecerán. + +## Guardar keypair manualmente + +Para añadir un keypair manualmente, haz clic en el botón "Añadir keypair manualmente" ubicado en la esquina superior derecha de la pantalla. Esto abrirá un modal donde puedes ingresar un nombre para tu keypair junto con la [clave secreta de Stellar](../../../learn/glossary.mdx#secret-private-key) (que comienza con la letra "S") o la frase de recuperación (una frase de 12 o 24 palabras). + +![Lab: Add keypair manually](/assets/lab/lab-account-saved-manual.png) + +## Uso de keypairs guardados + +Los keypairs guardados facilitan trabajar con cuentas Stellar y firmar transacciones. Al crear una transacción, haz clic en el botón "Obtener dirección" en el campo Cuenta de origen y elige la cuenta deseada del menú desplegable. + +![Lab: Use saved public key](/assets/lab/lab-account-saved-usage-public.png) + +Cuando sea momento de firmar, ve a la sección de Firmas en la página Firmar transacción. Si no la ves, primero importa tu transacción XDR. Luego haz clic en "Usar clave secreta" en la sección "Firmar con clave secreta" y selecciona la clave de la cuenta que deseas utilizar. + +![Lab: Use saved secret key](/assets/lab/lab-account-saved-usage-secret.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/requests.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/requests.mdx new file mode 100644 index 0000000000..0da0374a57 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/requests.mdx @@ -0,0 +1,44 @@ +--- +title: Solicitudes +sidebar_label: Solicitudes +description: Consulta los endpoints de Horizon guardados y los métodos RPC. +sidebar_position: 1 +--- + +# [Solicitudes](https://lab.stellar.org/endpoints/saved) + +En esta página, puedes ver las solicitudes guardadas tanto para los **métodos RPC** como para los **endpoints de Horizon**. Selecciona la pestaña que quieres ver en la esquina superior derecha. + +:::info + +Solo se muestran los elementos de la red seleccionada. Si no ves el elemento que buscas, intenta cambiar de red. + +::: + +## Métodos RPC + +![Lab: Saved RPC Methods](/assets/lab/lab-rpc-methods-saved.png) + +Cada elemento de solicitud RPC guardada contiene lo siguiente: + +1. Nombre del método RPC: identifica rápidamente el método que necesitas. +2. Nombre: facilita encontrar el método RPC que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. +3. URL RPC: lugar donde enviar la solicitud. +4. Comparte la URL para ver el método con todos los datos en el Lab. +5. Ver el elemento en el Explorador de API, donde puedes enviarlo. +6. Ver carga útil. +7. Fecha y hora de la última guardada. +8. Eliminar el elemento si ya no es necesario. + +## Endpoints de Horizon + +![Lab: Horizon - Saved Requests Page](/assets/lab/lab-horizon-saved-requests.png) + +Los endpoints de Horizon guardados contienen lo siguiente: + +1. Nombre: puedes actualizarlo en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. +2. URL de Horizon: endpoint para obtener los datos. +3. Comparte la URL para ver el endpoint con todos los datos en el Lab. +4. Ver el elemento en el Explorador de API, donde puedes enviarlo. +5. Fecha y hora de la última guardada. +6. Eliminar el elemento si ya no es necesario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/transactions.mdx new file mode 100644 index 0000000000..f090027428 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/saved/transactions.mdx @@ -0,0 +1,22 @@ +--- +title: Transacciones +sidebar_label: Transacciones +description: Ver transacciones guardadas. +sidebar_position: 2 +--- + +# [Transacciones](https://lab.stellar.org/transaction/saved) + +![Lab: Transacciones Guardadas](/assets/lab/lab-transactions-saved.png) + +En esta página, verás las transacciones guardadas en el almacenamiento local de tu navegador. Solo muestra las transacciones en la red seleccionada, la cual puedes cambiar en la esquina superior derecha. + +Las transacciones guardadas tienen lo siguiente: + +1. Nombre: facilita encontrar la transacción que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. +2. Operaciones: lista de operaciones en esta transacción. +3. Eliminar la transacción guardada. +4. La fecha y hora del último guardado. +5. El botón de compartir para obtener un enlace compartible de esta transacción. +6. Las transacciones guardadas en la página "Transaction Builder" tienen el botón "Ver en el constructor" que te lleva a la página "Construir Transacción". +7. Las transacciones guardadas en la página "Submit Transaction" tienen el botón "Ver en el que envía" que te lleva a esa página. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/README.mdx index 8ef59cb3d0..084e35f2ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/README.mdx @@ -5,14 +5,25 @@ sidebar_position: 20 import DocCardList from "@theme/DocCardList"; -# Contratos Inteligentes - -En esta sección, puedes explorar contratos inteligentes de Stellar por ID y ver una lista de contratos inteligentes en la red Stellar seleccionada. +Stellar Lab proporciona un conjunto completo de herramientas para explorar, probar e interactuar con contratos inteligentes en la red Stellar. Estas herramientas están diseñadas para ayudar a los desarrolladores a comprender el comportamiento del contrato, depurar incidencias y probar las interacciones del contrato sin escribir código adicional. :::tip -Si no conoces ningún ID de contrato inteligente de Stellar, mira la lista y haz clic en cualquiera de los elementos. Esto te llevará a la página "Explorador de Contratos", donde el ID seleccionado aparece prellenado. ¡Carga el contrato y examínalo! +Si no conoces ningún ID de contrato inteligente de Stellar, consulta la [Lista de Contratos Inteligentes](https://lab.stellar.org/smart-contracts/contract-list) y haz clic en cualquiera de los elementos. Esto te llevará a la página "Explorador de Contratos", donde el ID seleccionado ya estará rellenado. ¡Carga el contrato y échale un vistazo! ::: +### Consejos para nuevos desarrolladores + +- **Comienza con Testnet**: Siempre empieza tu desarrollo y pruebas en Testnet, donde el XLM es gratuito y los errores no tienen consecuencias en el mundo real. +- **Examina contratos de ejemplo**: Estudia contratos conocidos para entender patrones comunes y prácticas recomendadas. +- **Guarda tus configuraciones**: Escribe el ID del contrato que quieres explorar en el [Explorador de Contratos](https://lab.stellar.org/smart-contracts/contract-explorer), te dará la opción de guardarlo para acceder rápidamente mediante 'Guardar ID de Contrato'. +- **Verifica el estado de la red**: Asegúrate de estar conectado a la red correcta. + +## Recursos adicionales + +- [Documentación de Smart Contracts](../../../build/smart-contracts/README.mdx) +- [Herramientas CLI de Soroban](../../cli/README.mdx) +- [Contratos de ejemplo](../../../build/smart-contracts/example-contracts/README.mdx) + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/contract-explorer.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/contract-explorer.mdx index 795f773e67..72339a1bea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/contract-explorer.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/contract-explorer.mdx @@ -1,38 +1,42 @@ -# Explorador de contratos +--- +title: Explorador de Contratos +sidebar_label: Explorador de Contratos +description: Explora e interactúa con contratos inteligentes desplegados en Stellar a través de una interfaz basada en navegador. Consulta especificaciones del contrato, código fuente, almacenamiento, información de desarrollo, historial de versiones e invoca métodos de contrato directamente. +sidebar_position: 0 +--- -En la página "Explorador de contratos", puedes profundizar en los contratos inteligentes de Stellar. Aquí puedes ver información general del contrato, invocar métodos del contrato directamente desde el navegador, explorar la especificación del contrato, el código fuente, el almacenamiento del contrato, la información de compilación y el historial de versiones. +# Explorador de Contratos + +El [Explorador de Contratos](https://lab.stellar.org/smart-contracts/contract-explorer) es tu interfaz principal para examinar contratos inteligentes desplegados en la red Stellar. Mediante una intuitiva interfaz basada en navegador, puedes acceder a información completa sobre [especificaciones del contrato](#contract-spec), [código fuente](#source-code), [estado del almacenamiento](#contract-storage), [información de desarrollo](#build-info), [historial de versiones](#version-history) y [enlaces de cliente](#bindings), además de [invocar métodos del contrato](#invoke-contract) directamente sin herramientas de línea de comandos. :::warning -Se requiere la URL RPC para ver la información del contrato. Puedes actualizar o establecer la URL RPC en el selector de red en la esquina superior derecha. +Se requiere la URL RPC para ver la información del contrato. Puedes actualizar o establecer la URL RPC en el selector de red en la esquina superior derecha. Consulta [Proveedores RPC](../../../data/apis/rpc/providers.mdx). ::: ![Lab: Contract Explorer](/assets/lab/lab-contract-explorer.png) -Vamos a cargar el ID del contrato `CAJJZSGMMM3PD7N33TAPHGBUGTB43OC73HVIK2L2G6BNGGGYOSSYBXBD` en la red Mainnet, y veamos qué podemos aprender sobre él. - -## Información del contrato +## Comenzar -En la sección "Información del contrato", podemos ver la fecha en que se creó el contrato y la dirección Stellar del creador. También muestra el hash Wasm y el repositorio de GitHub, junto con un enlace al código fuente de este contrato. Además, puedes ver cuántas entradas de almacenamiento tiene este contrato. +Para explorar un contrato: -![Lab: Contract Explorer: Contract Info](/assets/lab/lab-contract-explorer-info.png) +1. Navega al [Explorador de Contratos](https://lab.stellar.org/smart-contracts/contract-explorer) +2. Selecciona tu red `Testnet` o `Mainnet` +3. Introduce un ID de contrato +4. Explora las pestañas para familiarizarte con la estructura y capacidades del contrato -## Invocar contrato +Vamos a cargar el ID de contrato `CAJJZSGMMM3PD7N33TAPHGBUGTB43OC73HVIK2L2G6BNGGGYOSSYBXBD` en la red `Mainnet` y ver qué podemos aprender sobre él. -Esta función te permite interactuar y ejecutar métodos de un contrato inteligente Stellar directamente desde la interfaz Lab en tu navegador. - -:::warning - -Se requiere una wallet conectada para invocar el contrato. +## Información del contrato -::: +En la sección "Información del contrato", podemos ver la fecha en que se creó el contrato y la dirección Stellar del creador. También muestra el hash Wasm y el repositorio de GitHub, junto con un enlace al código fuente de este contrato. Además, puedes ver cuántas entradas de almacenamiento tiene este contrato. -![Lab: Contract Explorer: Invoke Contract](/assets/lab/lab-contract-explorer-invoke.png) +![Lab: Contract Explorer: Contract Info](/assets/lab/lab-contract-explorer-info.png) ## Especificación del contrato -En esta sección, puedes ver la [Meta de contrato](../../../learn/fundamentals/contract-development/overview#contract-meta), la [Meta del entorno de contrato](../../../learn/fundamentals/contract-development/overview#environment-meta), y la [Especificación del contrato](../../../learn/fundamentals/contract-development/overview#contract-spec) desde el archivo Wasm. Puedes ver cada sección en formatos JSON o XDR, seleccionando el tipo en el menú desplegable en la esquina superior derecha de la vista del editor. También puedes descargar cada sección individualmente en el formato seleccionado (el botón de descarga está ubicado junto al menú desplegable de tipo), o descargar el archivo Wasm completo haciendo clic en el botón "Descargar Wasm" al final de la sección. +En esta sección, puedes ver la [Meta de contrato](../../../learn/fundamentals/contract-development/overview#contract-meta), la [Meta del entorno de contrato](../../../learn/fundamentals/contract-development/overview#environment-meta), y la [Especificación del contrato](../../../learn/fundamentals/contract-development/overview#contract-spec) desde el archivo Wasm. Puedes ver cada sección en formatos `Interface`, `JSON` o `XDR`, seleccionando el tipo desde el menú desplegable en la esquina superior derecha de la vista del editor. También puedes descargar cada sección individualmente en el formato seleccionado (el botón de descarga está ubicado junto al menú desplegable de tipo), o descargar el archivo Wasm completo haciendo clic en el botón "Descargar Wasm" al final de la sección. ![Lab: Contract Explorer: Contract Spec](/assets/lab/lab-contract-explorer-spec.png) @@ -44,10 +48,26 @@ En el editor de código, puedes ver el archivo `README.md` del repositorio del c ## Almacenamiento del contrato -Aquí puedes ver las entradas de datos almacenadas para este contrato inteligente en un formato legible para humanos. Puedes filtrar estos datos por Clave y Valor, así como ordenarlos por Durabilidad, TTL o columnas de Actualización. También puedes exportar estos datos en formatos XDR o JSON. +Esta sección muestra todas las entradas de datos almacenadas para el contrato inteligente en un formato legible para humanos. Los datos pueden filtrarse por `Key` y `Value`, ordenarse por las columnas `Durability`, `TTL` o `Updated`, y exportarse en formatos `XDR` o `JSON`. ![Lab: Contract Explorer: Contract Storage](/assets/lab/lab-contract-explorer-storage.png) +### Restaurar Footprint + +Las entradas de almacenamiento archivadas pueden restaurarse haciendo clic en el botón `Restore` junto a la entrada. + +![Lab: Contract Explorer: Contract Storage Restore](/assets/lab/stellar-lab-restore.png) + +Esta acción te redirige a la [página Construir Transacciones](https://lab.stellar.org/transaction/build) con una operación `RestoreFootprintOp` configurada automáticamente con los parámetros necesarios para restaurar el footprint archivado. + +![Lab: Contract Explorer: Contract Storage Restore in action](/assets/lab/restore-footprint.gif) + +:::tip + +Verifica que el XDR de la Transacción Soroban preparada incluya los datos del contrato que deseas restaurar en sus recursos `footprint.read_write`, y confirma que tanto los bytes de lectura como de escritura sean diferentes de cero. + +::: + ## Información de compilación Si el contrato inteligente tiene configurada la verificación de compilación (siguiendo el [SEP de validación de código fuente de contrato](https://github.com/orgs/stellar/discussions/1573)), esta sección muestra información de la attestación de GitHub. @@ -69,3 +89,38 @@ En esta sección, puedes encontrar el historial de cambios del Wasm. ## Bindings Bindings son una función del [CLI de Stellar](../../cli) que generan bibliotecas cliente completamente tipadas para tus contratos inteligentes, adaptadas a tu lenguaje de programación elegido, incluyendo TypeScript, JSON, Rust, Python y Java. Esto facilita integrar los contratos Stellar en tu aplicación como si fueran módulos nativos. Cada binding proporciona funciones con seguridad de tipos que corresponden a los métodos de tu contrato. Para aprender más sobre generar bindings, consulta el [comando de bindings del CLI de Stellar](../../cli/stellar-cli#stellar-contract-bindings). + +## Invocar contrato + +La página Invocar Contrato te permite interactuar directamente con contratos inteligentes a través de la interfaz web, sin necesidad de herramientas de línea de comandos o scripts personalizados. + +:::warning + +Se requiere una wallet conectada para invocar el contrato. + +::: + +### Cómo usar + +1. **Conecta tu billetera**: Elige conectar una billetera del navegador haciendo clic en "Connect Wallet" en la esquina superior derecha. +2. **Selecciona la red**: `Testnet` o `Mainnet` en la esquina superior derecha. +3. **Introduce los detalles del contrato**: Proporciona el ID del contrato +4. **Selecciona una Función**: Escoge qué función del contrato quieres invocar de las opciones disponibles. +5. **Completa los parámetros**: Introduce los parámetros requeridos para la función seleccionada. Lab proporciona sugerencias de tipo basadas en la [Especificación del Contrato](#contract-spec). +6. **Simulate**: Simula la transacción para obtener la cantidad correcta de la tarifa y ver el resultado antes de enviarla a la red. Por defecto, verás el resultado de la función invocada. Si quieres la respuesta completa de la invocación del contrato, simplemente activa "Show full response". +7. **Enviar**: Usa esto solo cuando sea una operación de `Write` y desees cambiar los datos en la red. + +![Lab: Contract Explorer: Invoke Contract](/assets/lab/lab-contract-explorer-invoke.gif) + +:::info + +Una vez que simules la función, verás una herramienta emergente que indica `Read` o `Write` junto al título de la función invocada. Cuando una transacción no cambia el estado del contrato, se considera una operación de `Read`. En este caso, no es necesario enviar la transacción a la red, ya que no modifica ningún dato. Puedes simplemente simular la transacción para ver los resultados sin incurrir en costos. + +::: + +### Casos de Uso + +- **Pruebas**: Prueba rápidamente funciones del contrato durante el desarrollo sin desplegar scripts de prueba +- **Depuración**: Investiga incidencias invocando funciones con diferentes parámetros y examinando las salidas +- **Educación**: Aprende cómo funcionan los contratos explorando e invocando contratos públicos +- **Prototipado**: Experimenta con interacciones de contratos antes de desarrollar aplicaciones completas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/smart-contract-list.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/smart-contract-list.mdx index 4b0ea521bd..0014599a71 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/smart-contract-list.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/smart-contract-list.mdx @@ -1,3 +1,10 @@ +--- +title: Lista de contratos inteligentes +sidebar_label: Lista de contratos inteligentes +description: Una lista de contratos inteligentes Stellar en la red seleccionada +sidebar_position: 1 +--- + # Lista de contratos inteligentes Esta página muestra una lista de contratos inteligentes Stellar en la red seleccionada. La tabla muestra el ID o dirección del contrato inteligente, junto con su fecha y hora de creación. Al hacer clic en la dirección del contrato, se te dirigirá a la página "Contract Explorer", donde la dirección seleccionada ya estará rellenada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/upload-deploy-contract.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/upload-deploy-contract.mdx new file mode 100644 index 0000000000..6fdda020e7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/smart-contracts/upload-deploy-contract.mdx @@ -0,0 +1,39 @@ +--- +title: Subir y desplegar contrato +sidebar_label: Subir y desplegar contrato +description: Sube el bytecode WASM de tu contrato y despliega el contrato en la red. +sidebar_position: 2 +--- + +# Subir y desplegar contrato + +Hay varias formas de subir y desplegar contratos en la red Stellar. Si estás familiarizado con el flujo de trabajo de la CLI, puedes subir y desplegar contratos fácilmente usando dos comandos diferentes en la [Stellar CLI](../../cli/README.mdx). Si prefieres hacerlo todo en una interfaz web, la página ["Subir y desplegar contrato"](https://lab.stellar.org/smart-contracts/deploy-contract) en Stellar Lab ofrece una forma cómoda de subir y desplegar contratos en la red. + +![Lab: Explorador de contratos](/assets/lab/lab-upload-deploy-page.png) + +El proceso de despliegue consta de dos fases distintas: + +1. **Fase de subida**: subir el bytecode `WASM` a la red +2. **Fase de despliegue**: desplegar una instancia de contrato a partir del bytecode subido con éxito + +:::tip + +Cada fase de subida y despliegue requiere crear una transacción y firmarla. + +::: + +## Fase de subida + +La "fase de subida" acepta archivos `.wasm` mediante arrastrar y soltar o selección en el explorador de archivos. Durante esta fase, Lab verifica si el archivo `.wasm` subido ya existe en la red. Si no está en la red, crea una transacción de subida que debes firmar usando alguno de estos métodos: clave secreta, hardware wallet, wallet de extensión o firma. + +![Lab: Subir y desplegar contrato - subiendo contrato](/assets/lab/lab-upload-contract.gif) + +Si el bytecode `WASM` solicitado ya está subido en la red, Lab omite la sección "Subir contrato" y abre por defecto la sección "Desplegar contrato". Verás un mensaje: "Este contrato `WASM` ya está subido. Hash Wasm: \*\*\*\*" + +![Lab: Subir y desplegar contrato - omitiendo subir contrato](/assets/lab/lab-already-uploaded.gif) + +## Fase de despliegue + +Durante la "fase de despliegue", Lab verifica si los metadatos del contrato `WASM` tienen un constructor y qué argumentos requiere. Una vez que todos los campos requeridos están completos, crea una transacción de despliegue. Después de que la transacción esté firmada y enviada con éxito, puedes verificar tu contrato inmediatamente en exploradores de blockchain como [Stellar.Expert](https://stellar.expert/explorer/) o [el explorador de contratos de Stellar Lab](https://lab.stellar.org/smart-contracts/contract-explorer). + +![Lab: Subir y desplegar contrato - desplegando contrato](/assets/lab/lab-deploy-contract.gif) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/transactions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/transactions.mdx index c5672ce080..05b723e4e2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/transactions.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/transactions.mdx @@ -24,7 +24,7 @@ Selecciona el tipo de operación del menú desplegable para obtener los campos p Si deseas agregar más operaciones, haz clic en el botón "Agregar Operación" en la parte inferior de la sección de operaciones. También puedes duplicar, eliminar y mover la operación haciendo clic en el botón correspondiente en la parte superior derecha de la sección de cada operación. -También puedes guardar una transacción válida haciendo clic en el botón de guardar en la parte inferior de la sección de operaciones. Necesitarás ingresar un nombre para esta transacción en un pop-up y hacer clic en el botón "Guardar". Las transacciones se guardan en el almacenamiento local del navegador y se pueden encontrar en la página "Transacciones Guardadas" (accedida haciendo clic en el enlace en la navegación de lado izquierdo). +También puedes guardar una transacción válida haciendo clic en el botón de guardar en la parte inferior de la sección de operaciones. Necesitarás ingresar un nombre para esta transacción en un pop-up y hacer clic en el botón "Guardar". Las transacciones se guardan en el almacenamiento local del navegador y se pueden encontrar en la página "[Transacciones Guardadas](./saved/transactions)" (accesible haciendo clic en el enlace Guardadas en la navegación izquierda y luego en el subelemento de menú "Transacciones"). Hacer clic en el botón de compartir (justo al lado del botón de guardar) te permite compartir un enlace con toda la información de la transacción proporcionada. Puedes compartir cualquier transacción, incluso si es inválida o incompleta. @@ -37,19 +37,3 @@ La sección de validación en la parte inferior de la página muestra la informa Si hay errores en esta transacción, los verás agrupados por sección (parámetros y cada operación) para facilitar identificar qué necesita corrección. ![Laboratorio: Error de validación de transacción](/assets/lab/lab-transactions-response-error.png) - -## [Transacciones Guardadas](https://lab.stellar.org/transaction/saved) - -![Laboratorio: Transacciones Guardadas](/assets/lab/lab-transactions-saved.png) - -En esta página, verás transacciones guardadas en el almacenamiento local de tu navegador. Solo muestra las transacciones en la red seleccionada, que puedes cambiar en la esquina superior derecha. - -Las transacciones guardadas tienen lo siguiente: - -1. Nombre - facilita encontrar la transacción que buscas. Puedes actualizar el nombre en cualquier momento haciendo clic en el botón de editar y guardando el nuevo nombre. -2. Operaciones - lista de operaciones en esta transacción. -3. Eliminar la transacción guardada. -4. La última fecha y hora guardada. -5. El botón de compartir para obtener un enlace compartible a esta transacción. -6. Las transacciones guardadas en la página "Constructor de Transacciones" tienen el botón "Ver en constructor" para llevarte a la página "Crear Transacción". -7. Las transacciones guardadas en la página "Enviar Transacción" tienen el botón "Ver en emisor" para llevarte a esa página. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/README.mdx new file mode 100644 index 0000000000..50da169ebe --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/README.mdx @@ -0,0 +1,12 @@ +--- +title: Ver XDR +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +# Ver XDR + +Esta sección proporciona herramientas para trabajar con datos [XDR](../../../learn/fundamentals/data-format/xdr.mdx) (External Data Representation). Puedes decodificar XDR en un formato JSON fácil de leer, convertir JSON nuevamente en formato XDR o comparar dos conjuntos de datos XDR para ver sus diferencias lado a lado. Aprende más sobre la conversión de XDR a JSON [aquí](../../../learn/fundamentals/data-format/xdr-json.mdx). + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/diff-xdr.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/diff-xdr.mdx new file mode 100644 index 0000000000..d1f6f1dda6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/diff-xdr.mdx @@ -0,0 +1,32 @@ +--- +title: Diferencias en XDRs +sidebar_label: Diferencias en XDRs +description: La herramienta Diferencias en XDRs compara dos XDRs codificados en base-64 y resalta las diferencias entre ellos en formato JSON. +sidebar_position: 2 +--- + +# Diferencias en XDRs + +:::info + +Obtén más información sobre las herramientas de conversión de XDR a JSON [aquí](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +## Acceder a la herramienta Diferencias en XDRs + +Para acceder a la página de [Diferencias en XDRs](https://lab.stellar.org/xdr/diff), selecciona "Ver XDR" en el menú de navegación izquierdo y luego elige la opción "Diferencias en XDRs" en el submenú. + +![Lab: página de Diferencias en XDRs](/assets/lab/lab-xdr-diff.png) + +## Comparar datos XDR + +En esta página, puedes comparar dos [XDRs](../../../learn/fundamentals/data-format/xdr.mdx) codificados en base-64 viendo sus diferencias en JSON. Introduce el XDR Original en el primer campo de entrada y el XDR Modificado en el segundo campo. Ambos XDRs deben tener el mismo tipo de XDR, el cual se completa automáticamente al ingresar un valor Original válido. Si el tipo sugerido parece incorrecto, puedes seleccionar uno alternativo desde el menú desplegable. Hay una función de búsqueda disponible para ayudar a encontrar el tipo adecuado. + +![Lab: menú desplegable de tipo XDR](/assets/lab/lab-xdr-diff-dropdown.png) + +## Comprender la salida + +Una vez ingresados ambos valores XDR, se mostrará una vista comparativa abajo resaltando las diferencias entre los dos objetos. Debajo de cada diferencia, encontrarás un botón para copiar los datos JSON correspondientes. + +![Lab: salida de Diferencias en XDRs](/assets/lab/lab-xdr-diff-filled.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/json-to-xdr.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/json-to-xdr.mdx new file mode 100644 index 0000000000..e4ad21ad57 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/json-to-xdr.mdx @@ -0,0 +1,33 @@ +--- +title: JSON a XDR +sidebar_label: JSON a XDR +description: El convertidor de JSON a XDR transforma objetos JSON en formato XDR codificado en base 64. +sidebar_position: 1 +--- + +# JSON a XDR + +:::info + +Aprende más sobre las herramientas de conversión de JSON a XDR [aquí](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +## Acceder al convertidor de JSON a XDR + +Para acceder a la página de [JSON a XDR](https://lab.stellar.org/xdr/to), selecciona "Ver XDR" en el menú de navegación izquierdo y luego escoge la opción "JSON a XDR" del submenú. + +![Lab: página JSON a XDR](/assets/lab/lab-xdr-from-json.png) + +## Ingresar datos JSON + +En esta página puedes introducir un objeto JSON válido de [XDR](../../../learn/fundamentals/data-format/xdr.mdx) en el campo de entrada. Para obtener datos de ejemplo, navega a la página "[XDR a JSON](./xdr-to-json.mdx)", y usa el botón "Copiar JSON" debajo de la salida JSON para copiar un objeto formateado para pruebas. + +## Comprender la salida + +Después de ingresar un objeto JSON válido, la interfaz muestra dos componentes clave: + +1. **Tipo XDR** – El tipo identificado de datos XDR, con un valor preseleccionado automáticamente. Si el tipo sugerido parece incorrecto, puedes seleccionar una alternativa del menú desplegable. Hay una función de búsqueda disponible para ayudarte a encontrar el tipo adecuado. ![Lab: menú desplegable de tipo XDR](/assets/lab/lab-xdr-from-json-dropdown.png) +2. **Salida XDR** – Un XDR codificado en base 64 generado según el tipo XDR seleccionado. Puedes copiar esta salida haciendo clic en el botón de copiar debajo del campo. + +![Lab: salida JSON a XDR](/assets/lab/lab-xdr-from-json-filled.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/xdr-to-json.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/xdr-to-json.mdx new file mode 100644 index 0000000000..57088aa21a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/lab/view-xdr/xdr-to-json.mdx @@ -0,0 +1,32 @@ +--- +title: XDR a JSON +sidebar_label: XDR a JSON +description: El convertidor de XDR a JSON transforma datos XDR codificados en base-64 en un formato JSON legible. +sidebar_position: 0 +--- + +# XDR a JSON + +:::info + +Aprende más sobre herramientas de conversión de XDR a JSON [aquí](../../../learn/fundamentals/data-format/xdr-json.mdx). + +::: + +Para acceder a la página [XDR a JSON](https://lab.stellar.org/xdr/view), selecciona "Ver XDR" en el menú de navegación lateral izquierdo, luego elige la opción "XDR a JSON" en el submenú. + +![Lab: página de XDR a JSON](/assets/lab/lab-xdr-to-json.png) + +## Ingresar datos XDR + +En esta página, puedes introducir un [XDR](../../../learn/fundamentals/data-format/xdr.mdx) codificado en base-64 en el campo de entrada ubicado en la parte superior. Alternativamente, puedes obtener un XDR de ejemplo seleccionando el enlace "obtener la última transacción" que está debajo del campo de entrada. + +## Entendiendo la salida + +Después de cargar un XDR válido (por ejemplo, obteniendo la última transacción), la interfaz muestra tres componentes clave: + +1. **Hash de transacción** – Un campo de solo lectura que contiene el hash de la transacción, el cual puedes copiar para usar en otras herramientas, como obtener detalles de la transacción mediante [API Explorer > Métodos RPC > getTransaction](https://lab.stellar.org/endpoints/rpc/get-transaction). +2. **Tipo de XDR** – El tipo identificado de datos XDR, con un valor preseleccionado automáticamente. Si el tipo sugerido parece incorrecto, puedes seleccionar otra opción desde el menú desplegable. Hay una función de búsqueda disponible para ayudarte a encontrar el tipo adecuado. ![Lab: menú desplegable del tipo de XDR](/assets/lab/lab-xdr-to-json-dropdown.png) +3. **Salida JSON** – Un objeto JSON generado según el tipo de XDR seleccionado. Puedes copiar este objeto haciendo clic en el botón "Copiar JSON" que está debajo de la salida. + +![Lab: salida de XDR a JSON](/assets/lab/lab-xdr-to-json-filled.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/openzeppelin-contracts.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/openzeppelin-contracts.mdx index 191290857c..36d73ec2c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/openzeppelin-contracts.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/openzeppelin-contracts.mdx @@ -1,13 +1,13 @@ --- -title: Contratos Stellar de OpenZeppelin -description: Biblioteca de Contratos y Asistente de Contratos para Stellar de OpenZeppelin -sidebar_label: Contratos de OpenZeppelin +title: Contratos y herramientas de OpenZeppelin +description: Biblioteca de contratos y herramientas de OpenZeppelin +sidebar_label: Contratos y herramientas de OpenZeppelin sidebar_position: 44 --- -Para llevar contratos inteligentes probados a la comunidad de desarrolladores Stellar, OpenZeppelin contribuye activamente a una biblioteca de contratos inteligentes y extensiones, así como a herramientas para desarrolladores. +Para ofrecer contratos inteligentes comprobados a la comunidad de desarrolladores de Stellar, OpenZeppelin contribuye activamente a una biblioteca de contratos inteligentes y extensiones, así como a herramientas para desarrolladores (incluidos productos como [Contract Wizard](https://wizard.openzeppelin.com/stellar), [Relayer](https://github.com/OpenZeppelin/openzeppelin-relayer), [Monitor](https://github.com/OpenZeppelin/openzeppelin-monitor) y [UI Builder](https://builder.openzeppelin.com/)). Para la documentación más reciente sobre productos de OpenZeppelin, por favor visita: [https://docs.openzeppelin.com/stellar-contracts](https://docs.openzeppelin.com/stellar-contracts/.). ## Comenzar con el Asistente de Contratos @@ -58,6 +58,29 @@ OpenZeppelin Stellar Contracts es una colección de contratos auditados y utilid - **Lista blanca**: Restringir transferencias a direcciones aprobadas - **Lista negra**: Prevenir transferencias desde/hacia direcciones bloqueadas +**Token RWA (ERC-3643)** El token RWA amplía la funcionalidad estándar de token fungible con características regulatorias necesarias para tokens de seguridad, incluyendo: + +- Características: + - **Gestión de identidad**: Integración con registros de identidad para cumplimiento de KYC/AML + - **Marco de cumplimiento**: Normas modulares de cumplimiento y validación para transferencias y creación + - **Controles de transferencia**: Restricciones y validaciones sofisticadas para transferencias + - **Mecanismos de congelamiento**: Capacidades de congelamiento a nivel de dirección y parcial de tokens + - **Sistema de recuperación**: Recuperación de cuentas perdidas/antiguas para inversionistas verificados + - **Operaciones pausables**: Funcionalidad de pausa de emergencia para todo el token + - **Control de acceso basado en roles (RBAC)**: Gestión flexible de privilegios para funciones administrativas + +**Bóveda de tokens** La Bóveda de tokens fungibles extiende el Token fungible y aplica [SEP-56 Tokenized Vault Standard](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0056.md), permitiendo que los tokens fungibles representen participaciones en un fondo de activos subyacentes. El estándar de bóveda tokenizada es la interfaz formalizada para bóvedas que generan rendimiento y contienen activos subyacentes. Las participaciones en la bóveda permiten colaterales hiperfungibles en DeFi y permanecen completamente compatibles con las operaciones estándar de tokens fungibles. + +**Cuentas inteligentes** + +Las Cuentas inteligentes son billeteras basadas en contratos diseñadas para una autorización flexible y programable. Este marco adopta un enfoque centrado en el contexto, separando tres aspectos distintos: quién puede firmar (firmantes), qué pueden hacer (reglas de contexto/alcance) y cómo se aplican esos permisos (políticas). La versión inicial incluye políticas para multisig y límites de gasto. + +- Componentes: + - **Reglas de contexto**: Tabla de enrutamiento para autorización + - **Firmantes**: Lista de firmantes autorizados (dirección delegada o firmantes externos) + - **Políticas**: Módulo de aplicación ligado a las reglas de contexto + - **Verificadores**: Contratos de confianza que validan firmas en nombre de cuentas inteligentes + **Utilidades** - **Utilidades pausables y actualizables** @@ -66,12 +89,10 @@ OpenZeppelin Stellar Contracts es una colección de contratos auditados y utilid **Próximamente** -- Token de Seguridad (ERC-3643) -- Multisig -- Firmante con passkey -- Bóveda de Tokens (ERC-4626) +- Matemáticas de punto fijo +- Gobernador -Estas implementaciones se irán lanzando con el tiempo, asegurando que los desarrolladores Stellar tengan acceso a opciones de contratos extensibles. Todos los contratos y extensiones son auditados por el equipo de seguridad de OpenZeppelin, mejorando la seguridad y fiabilidad de los contratos y extensiones. Para usar la biblioteca, por favor visita: https://github.com/OpenZeppelin/stellar-contracts. +Todos los contratos y extensiones son auditados por el equipo de seguridad de OpenZeppelin, mejorando la seguridad y fiabilidad de los contratos y extensiones. Se está completando una verificación formal adicional por Certora. Para usar la biblioteca, visita: https://github.com/OpenZeppelin/stellar-contracts. ``` Repository Structure @@ -79,15 +100,20 @@ Repository Structure │── docs/ # Documentation │── examples/ # Example contracts │── packages/ -│ ├── tokens/ # Various token types (fungible, non-fungible, etc.) +│ ├── access/ # Access control, ownable, and role transfer utilities +│ ├── accounts/ # Smart account framework +│ ├── tokens/ # Various token types (fungible, non-fungible, RWA, vault, etc.) │ ├── contract-utils/ # Utilities for token types (pausable, upgradable, etc.) │ ├── constants/ # Shared constants │ ├── test-utils/ # Utilities for tests ``` -Para proporcionar comentarios, por favor abre incidencias aquí: [https://github.com/OpenZeppelin/stellar-contracts/issues](https://github.com/OpenZeppelin/stellar-contracts/issues) +Para proporcionar comentarios sobre estos contratos y utilidades, abre incidencias en: [https://github.com/OpenZeppelin/stellar-contracts/issues](https://github.com/OpenZeppelin/stellar-contracts/issues) -## Documentación para OpenZeppelin Stellar Contracts +### Herramientas de OpenZeppelin -Para documentación adicional sobre contratos inteligentes Stellar de OpenZeppelin, por favor visita: [https://docs.openzeppelin.com/stellar-contracts](https://docs.openzeppelin.com/stellar-contracts/.). +- [Relayer](https://github.com/OpenZeppelin/openzeppelin-relayer): Infraestructura para retransmitir transacciones en Stellar. +- [Monitor](https://github.com/OpenZeppelin/openzeppelin-monitor): Herramienta de infraestructura para monitorear eventos y transacciones en blockchain. +- [Constructor de interfaz de usuario](https://builder.openzeppelin.com/): Herramienta de código abierto para crear formularios de interfaz de usuario para contratos. +- [Servidor MCP](https://mcp.openzeppelin.com/): Genera contratos inteligentes de Stellar seguros basados en plantillas de OpenZeppelin. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/advanced-usage/container.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/advanced-usage/container.mdx index bea79a3707..c4a2562be8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/advanced-usage/container.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/advanced-usage/container.mdx @@ -13,8 +13,8 @@ La imagen de Quickstart [docker](https://hub.docker.com/r/stellar/quickstart) ut - [PostgreSQL](https://www.postgresql.org) - [stellar-core](https://github.com/stellar/stellar-core) -- [horizon](https://github.com/stellar/go/tree/master/services/horizon) -- [friendbot](https://github.com/stellar/go/tree/master/services/friendbot) +- [horizon](https://github.com/stellar/stellar-horizon) +- [friendbot](https://github.com/stellar/friendbot) - [stellar-rpc](https://github.com/stellar/stellar-rpc/tree/main/cmd/stellar-rpc) - [supervisord](http://supervisord.org/) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/faucet.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/faucet.mdx index e27d628c8e..e7b7356964 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/faucet.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/quickstart/faucet.mdx @@ -8,7 +8,7 @@ sidebar_position: 30 Quickstart utiliza Friendbot como un grifo de activos nativos para testnet, futurenet y redes locales, igual que se usa Friendbot en el testnet público y futurenet. -Friendbot está disponible en `:8000/friendbot` y se puede usar para financiar una nueva cuenta. Por ejemplo: +Friendbot está disponible en `:8000/friendbot` y puede usarse para financiar cuentas y contratos. Por ejemplo: ```sh curl http://localhost:8000/friendbot?addr=G... diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/ramps/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/ramps/README.mdx index e860806e7a..041352888b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/ramps/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/ramps/README.mdx @@ -11,6 +11,6 @@ Stellar cuenta con servicios de anchor que operan a nivel mundial. Consulta el [ Los anchors pueden emitir sus propios activos en la red Stellar o pueden respaldar activos que ya existen. -Puedes configurar un anchor usando la [Anchor Platform](/platforms/anchor-platform) mantenida por SDF, que es la forma más sencilla de desplegar un servicio de anchor compatible con las Propuestas del Ecosistema Stellar (SEPs). +Puedes configurar un anchor usando la [Anchor Platform](../../platforms/anchor-platform/README.mdx) mantenida por SDF, que es la forma más fácil de desplegar un servicio de anchor compatible con las Propuestas del Ecosistema Stellar (SEP). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/scaffold-stellar.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/scaffold-stellar.mdx index 7ec5a87e9e..9c08c7a012 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/scaffold-stellar.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/scaffold-stellar.mdx @@ -7,7 +7,7 @@ sidebar_position: 45 **Scaffold Stellar** es un kit de herramientas para desarrolladores para crear aplicaciones descentralizadas (dApps) y contratos inteligentes en la blockchain de Stellar. Te ayuda a pasar de la idea a una dApp full-stack funcional más rápido — proporcionando herramientas CLI, plantillas de contratos reutilizables, un registro de contratos inteligentes y un frontend moderno. -Visita la página principal de [Scaffold Stellar](https://scaffoldstellar.com) para guías, documentación y más. +Visita la página principal de [Scaffold Stellar](https://scaffoldstellar.org) para guías, documentación y más. ## Prerequisitos @@ -27,42 +27,46 @@ Instala las herramientas CLI requeridas: ```bash # Install stellar-scaffold CLI -cargo install stellar-scaffold-cli +cargo install --locked stellar-scaffold-cli # Install registry CLI (to easily deploy your contract to the registry) -cargo install stellar-registry-cli +cargo install --locked stellar-registry-cli ``` -### Crear un proyecto nuevo +:::tip Para una instalación más rápida, usa cargo-binstall -1. Inicializa un proyecto nuevo: +En lugar de compilar desde el código fuente, puedes acelerar la instalación obteniendo el binario directamente usando [cargo-binstall](https://github.com/cargo-bins/cargo-binstall). Esto es especialmente útil en entornos de CI. ```bash -stellar scaffold init my-project -cd my-project +# Install cargo-binstall (see other install methods in their README linked above) +cargo install cargo-binstall + +# Install the binaries +cargo binstall stellar-scaffold-cli stellar-registry-cli ``` -Tendrás varios contratos de ejemplo ya incluidos en el proyecto, o puedes comenzar desde el [OpenZeppelin Wizard](./openzeppelin-contracts) para personalizar tu contrato y a partir de ahí iniciar un proyecto con Scaffold Stellar. +::: + +### Crear un proyecto nuevo -2. Configura tu entorno de desarrollo: +1. Inicializa un proyecto nuevo: ```bash -# Copy and configure environment variables -cp .env.example .env - -# Install frontend dependencies -npm install +stellar scaffold init my-project +cd my-project ``` -3. Inicia el entorno de desarrollo: +Esto creará la estructura del proyecto en el directorio que especificaste con varios contratos de ejemplo. O puedes comenzar desde el [OpenZeppelin Wizard](./openzeppelin-contracts) para personalizar tu contrato y comenzar un proyecto Scaffold Stellar desde allí. + +2. Inicia la aplicación: ```bash -npm run dev +npm start ``` -¡Contarás con una dApp en funcionamiento, con un par de contratos para empezar, lista para que comiences a construir! +¡Tendrás una dApp en funcionamiento integrada con los contratos iniciales, lista para comenzar a desarrollar! -Explora el archivo `environments.toml` para personalizar tu(s) entorno(s) de desarrollo. +Explora el archivo `environments.toml` para personalizar tu(s) entorno(s) de desarrollo que se configuran mediante tu archivo `.env`. ## Estructura del proyecto @@ -70,17 +74,17 @@ Cuando ejecutas `stellar scaffold init`, crea una estructura de proyecto full-st ``` my-project/ -├── contracts/ # Rust smart contracts (compiled to WASM) -├── packages/ # Auto-generated TypeScript contract clients +├── contracts/ # Rust smart contracts (compiled to WASM) +├── packages/ # Auto-generated TypeScript contract clients ├── src/ # React frontend code │ ├── components/ # Reusable UI components │ ├── contracts/ # Contract interaction logic -│ ├── App.tsx # Main app component -│ └── main.tsx # Entry point +│ ├── App.tsx # Main app component +│ └── main.tsx # Entry point ├── environments.toml # Configuration per environment (dev/test/prod) -├── .env # Local environment variables -├── package.json # Frontend packages -└── target/ # Build outputs +├── .env # Local environment variables +├── package.json # Frontend packages +└── target/ # Build outputs ``` Esta plantilla proporciona una aplicación frontend lista para usar con contratos inteligentes de ejemplo y sus clientes TypeScript. El frontend está configurado con `Vite`, `React` e incluye componentes básicos para interactuar con los contratos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/client-sdks.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/client-sdks.mdx index 04d3d57414..5bd27c2226 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/client-sdks.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/client-sdks.mdx @@ -113,10 +113,10 @@ El SDK de PHP de Stellar es mantenido por un desarrollador comunitario dedicado, **El SDK de Go es mantenido por SDF.** -Este SDK está dividido en paquetes separados, todos los cuales puedes encontrar en el [README del monorepo de Go](https://github.com/stellar/go/blob/master/docs/reference/readme.md). Las bibliotecas clave son: +Este SDK está dividido en paquetes separados, todos los cuales puedes encontrar en el [Go SDK](https://github.com/stellar/go-stellar-sdk). Las bibliotecas clave son: -- `txnbuild` [SDK](https://github.com/stellar/go/tree/master/txnbuild) | [Docs](https://godoc.org/github.com/stellar/go/txnbuild): permite la construcción, firma y codificación de transacciones de Stellar. -- `Horizon Client` [SDK](https://github.com/stellar/go/tree/master/clients/horizonclient) | [Docs](https://godoc.org/github.com/stellar/go/clients/horizonclient): proporciona un cliente web para interactuar con los puntos finales REST del servidor Horizon para recuperar información del ledger y enviar transacciones construidas con `txnbuild`. +- `txnbuild` [SDK](https://github.com/stellar/go-stellar-sdk/tree/main/txnbuild) | [Documentación](https://godoc.org/github.com/stellar/go-stellar-sdk/txnbuild): permite la construcción, firma y codificación de transacciones Stellar. +- `Horizon Client` [SDK](https://github.com/stellar/go-stellar-sdk/tree/main/clients/horizonclient) | [Documentación](https://godoc.org/github.com/stellar/go-stellar-sdk/clients/horizonclient): proporciona un cliente web para interactuar con los puntos finales REST del servidor Horizon para recuperar información del ledger y enviar transacciones desarrolladas con `txnbuild`. - `RPC Client` [SDK](https://github.com/stellar/stellar-rpc/tree/main/client) | [Docs](https://pkg.go.dev/github.com/stellar/stellar-rpc/client): proporciona un envoltorio de sdk para invocar puntos finales RPC. - [Ingest SDK](../../data/indexers/build-your-own/ingest-sdk/README.mdx): adquirir y analizar datos de la red Stellar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/contract-sdks.mdx b/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/contract-sdks.mdx index b9a552e7d8..1701a87a87 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/contract-sdks.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/tools/sdks/contract-sdks.mdx @@ -40,6 +40,20 @@ soroban-sdk = $VERSION soroban-sdk = { version = $VERSION, features = ["testutils"] } ``` +## SDK de Solidity + +[Compilador Hyperledger Solang](https://github.com/hyperledger-solang/solang) | [Documentación](https://solang.readthedocs.io/en/v0.3.4/) + +**El compilador Solang es mantenido por la comunidad Hyperledger.** + +Solang es un compilador basado en llvm para Solidity que puede dirigirse a múltiples blockchains, incluyendo Stellar. + +Los ejemplos admitidos de Solidity se pueden encontrar dentro del [repositorio Solang](https://github.com/hyperledger-solang/solang/tree/main/examples/soroban). + +Puedes informar incidencias y añadir solicitudes de funciones al repositorio Solang [aquí](https://github.com/hyperledger-solang/solang/issues/new/choose). + +El compilador Solang también ofrece un IDE web que puedes usar para compilar, desplegar e interactuar con contratos Solidity en Soroban. Puedes acceder al IDE web [aquí](https://solang.io/). + ## SDK de AssemblyScript [SDK de AssemblyScript](https://github.com/Soneso/as-soroban-sdk) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/README.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/README.mdx index 783b6d3592..17afed97b2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/README.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/README.mdx @@ -7,8 +7,6 @@ sidebar_position: 10 # Introducción a los Validadores -import { Alert } from "@site/src/components/Alert"; - Stellar es una red de usuario a usuario compuesta por nodos, que son ordenadores que mantienen un [ledger](../learn/fundamentals/stellar-data-structures/ledgers.mdx) distribuido común, y que se comunican para validar y añadir [transacciones](../learn/fundamentals/transactions/operations-and-transactions.mdx) a él. Los nodos utilizan un programa llamado Stellar Core — una implementación del [Stellar Consensus Protocol](../learn/fundamentals/stellar-consensus-protocol.mdx) — para mantenerse sincronizados mientras trabajan para acordar la validez de los conjuntos de transacciones y aplicarlas al ledger. En general, los nodos alcanzan consenso, aplican un conjunto de transacciones y actualizan el ledger cada 3-5 segundos. Esta sección de la documentación explica cómo ejecutar un nodo validador, que participa en el consenso para validar transacciones y determinar la configuración de la red. Un nodo validador _no debe_ ser utilizado para el acceso a datos de la red y la presentación de transacciones. Hay dos variedades de nodos _no validadores_ que se pueden utilizar para esos propósitos, cada uno de los cuales tiene su propio proceso para la configuración, interacción, mantenimiento y monitoreo. Son: @@ -47,11 +45,11 @@ El flujo básico, el cual puedes navegar utilizando la "Guía del Administrador" Hay dos tipos de nodos validadores, y realizan las mismas funciones básicas: ejecutan Stellar Core, se conectan a usuarios, presentan transacciones y almacenan el estado del ledger. La diferencia es esta: un **Validador Básico** no publica un archivo de historial; un **Validador Completo** sí lo hace. - +:::info Los nodos no validadores, como Stellar RPC o Galexie, incluyen un "Captive" Core optimizado para atender sus necesidades operativas. - +::: ### Validador básico diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/commands.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/commands.mdx index bf5a9f85d9..a934fac377 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/commands.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/commands.mdx @@ -3,17 +3,15 @@ title: Comandos sidebar_position: 120 --- -import { Alert } from "@site/src/components/Alert"; - Stellar Core se puede controlar usando un CLI robusto. - +:::info Aquí cubriremos una selección de los comandos y la sintaxis _esenciales_, pero el **mejor recurso** para utilizar la línea de comandos `stellar-core` se encuentra en el [repositorio de GitHub de stellar-core]. Adicionalmente, aunque los comandos en esta página son comandos _CLI_, hay un conjunto adicional de [_comandos de punto final _HTTP_] que proporcionan un mayor control administrativo sobre un nodo central en ejecución. - +::: ## Obtener `--help` en Cualquier Lugar @@ -67,11 +65,11 @@ El **comando `catchup`** ejecutará un catchup desde archivos de historia sin co - `--metadata-output-stream `: Nombre de archivo o número de descriptor de archivo `fd:N` para transmitir metadatos. - `--force-back`: Fuerza el estado del ledger a un estado anterior, preservando datos históricos más antiguos. - +:::info Para reiterar, esta página cubre una selección de los comandos _esenciales_, pero solo hemos rozado la superficie. El **mejor, más completo recurso** para utilizar la línea de comandos `stellar-core` se encuentra en el [repositorio de GitHub de stellar-core]. - +::: [repositorio de GitHub de stellar-core]: https://github.com/stellar/stellar-core/blob/master/docs/software/commands.md [comandos de punto final _HTTP_]: https://github.com/stellar/stellar-core/blob/master/docs/software/commands.md#http-commands diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/configuring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/configuring.mdx index 45464d4490..254e273b4e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/configuring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/configuring.mdx @@ -3,13 +3,11 @@ title: Configurando sidebar_position: 40 --- -import { Alert } from "@site/src/components/Alert"; - - +:::info Antes de intentar configurar stellar-core, se recomienda encarecidamente intentar ejecutar primero una red privada o unirse a la red de prueba. - +::: ## Conceptos Básicos de Configuración @@ -25,11 +23,11 @@ Al instalar usando paquetes oficiales de Debian, el archivo de unidad systemd es Esta página te guiará a través de los campos clave que necesitarás incluir en tu archivo de configuración para poner tu nodo en funcionamiento. - +:::info Esta página intenta (tan estrictamente como sea posible) enfocarse en los campos y valores específicos que puedes necesitar modificar en tu archivo de configuración de Stellar Core. Para mantener esta página concisa, intentamos evitar el contexto conceptual y la información de fondo. Probablemente encontrarás parte de esa información relacionada en las páginas de [prerrequisitos](./prerequisites.mdx) o [preparación del entorno](./environment-preparation.mdx), si quieres. - +::: ### Ejemplos de Configuración @@ -106,11 +104,11 @@ Si deseas que otros validadores agreguen tu nodo a sus conjuntos de quórum, tam Para crear tu conjunto de quórum, Stellar Core se basa en dos matrices de tablas: `[[HOME_DOMAINS]]` y `[[VALIDATORS]]`. Consulta la [`MATRIZ HOME_DOMAINS`](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_example.cfg#L671) del ejemplo de configuración y la [`MATRIZ VALIDATORS`](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_example.cfg#L688) para verlas en acción. - +:::info Es beneficioso hacer una breve pausa aquí y explorar algo de información de fondo sobre los quórums de validadores y el consenso de la red. Si deseas, puedes avanzar y comenzar a crear tu [matriz de dominios de origen](#home-domains-array) ahora. ¡De lo contrario, sigue leyendo, amigo! - +::: No importa qué tipo de nodo ejecutes — Validador Básico o Completo — necesitas seleccionar un conjunto de quórum, que consiste en validadores (agrupados por organización) con los que tu nodo verifica si debe aplicar un conjunto de transacciones a un ledger. Si deseas saber más sobre cómo funcionan los conjuntos de quórum, consulta este artículo sobre [cómo Stellar aborda los quórums]. Si deseas ver cómo se ve un conjunto de quórum que consiste en todos los validados Tier 1 — una configuración probada y verdadera — consulta la [configuración de red pública para un Validador Completo]. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/environment-preparation.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/environment-preparation.mdx index 2d313c33e0..52be5c3478 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/environment-preparation.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/environment-preparation.mdx @@ -3,8 +3,6 @@ title: Preparación del Entorno sidebar_position: 50 --- -import { Alert } from "@site/src/components/Alert"; - ## Inicializar la Base de Datos y el Estado Local Después de configurar tu [base de datos](./configuring.mdx#database) y los ajustes de [cubos](./configuring.mdx#buckets), antes de ejecutar Stellar Core por primera vez, debes inicializar la base de datos: @@ -41,11 +39,11 @@ Algunas implementaciones de Stellar Core querrán conservar los metadatos de _to Esto puede ser especialmente costoso si debe ejecutarse más de una vez. Por ejemplo, al poner en línea un nuevo nodo. O cuando se necesite reingestar datos históricos para incluir más metadatos en tus datos almacenados (como ocurrió en [Protocol 23](https://stellar.org/blog/developers/stellar-events-retroactive-events)). - +:::info Debido a los requisitos de tamaño muy grandes, **recomendamos no** conservar metadatos para toda la historia de la red a menos que sea absolutamente necesario para tu caso de uso. - +::: Por eso, algunos operadores prefieren cerrar sus procesos de stellar-core y _tomar imágenes a nivel de sistema de archivos_ o _volcados a nivel de base de datos_ del contenido de la base de datos y del directorio de buckets de Stellar Core, después de que se genere los metadatos por primera vez. Esas imágenes luego se pueden restaurar, poniendo a stellar-core en un estado que contiene metadatos sin realizar una reproducción completa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/installation.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/installation.mdx index dde3b7ce18..e2451d882e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/installation.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/installation.mdx @@ -3,8 +3,6 @@ title: Instalando sidebar_position: 30 --- -import { Alert } from "@site/src/components/Alert"; - Existen tres formas comunes de instalar y ejecutar Stellar Core: 1. **Usando [paquetes](#package-based-installation) publicados.** Para uso en producción, recomendamos instalar Stellar Core usando paquetes publicados. @@ -75,11 +73,11 @@ El repositorio del código fuente de Stellar Core contiene instrucciones extensa SDF mantiene una [imagen de inicio rápido](https://github.com/stellar/quickstart) que ejecuta un validador de Stellar Core, un "Captive Core" incluido con Stellar RPC, y todos los demás componentes necesarios para admitir el desarrollo local. Es una forma rápida de configurar una configuración predeterminada, no validante, efímera que debería funcionar para la mayoría de los desarrolladores. Además, la imagen de inicio rápido puede ser iniciada preconfigurada para su uso como nodo de Mainnet, Testnet, Futurenet o red Local. - +:::info La imagen de inicio rápido no está destinada a servir como un nodo de instancia de nivel producción. Please plan your production instance(s) carefully. - +::: ### Entornos de Producción diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/logging.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/logging.mdx index 8cf636513f..1896354aaa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/logging.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/logging.mdx @@ -3,8 +3,6 @@ title: Registro sidebar_position: 70 --- -import { Alert } from "@site/src/components/Alert"; - Stellar Core envía registros a error estándar y `stellar-core.log` por defecto, configurable con el campo `LOG_FILE_PATH`. Los mensajes de registro se clasifican por niveles de _prioridad_ progresivos: `TRACE`, `DEBUG`, `INFO`, `WARNING`, `ERROR` y `FATAL`. El sistema de registro solo emite esos mensajes en o por encima de su nivel de registro configurado. El sistema de registro solo emite aquellos mensajes en su nivel de registro configurado o superior. @@ -27,11 +25,11 @@ sudo -u stellar stellar-core --conf /etc/stellar/stellar-core.cfg http-command " Contra un sistema en funcionamiento. - +:::info Por favor, revisa el [referencia de Comandos HTTP] para más información sobre las particiones disponibles para usar en el comando `ll`. - +::: El nivel de registro por defecto es `INFO`, que es moderadamente detallado y debería emitir mensajes de progreso cada pocos segundos durante el funcionamiento normal. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/monitoring.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/monitoring.mdx index 024cd528f7..ee74aad1fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/monitoring.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/monitoring.mdx @@ -3,17 +3,15 @@ title: Monitoreo sidebar_position: 80 --- -import { Alert } from "@site/src/components/Alert"; - Una vez que tu nodo esté en funcionamiento, es importante mantener un ojo en él para asegurarte de que se mantenga a flote y siga contribuyendo a la salud de la red en general. Para ayudar con eso, Stellar Core expone información vital que puedes usar para monitorear tu nodo y diagnosticar problemas potenciales. Puedes acceder a esta información utilizando comandos e inspeccionando la salida de Stellar Core. La primera mitad de esta página cubrirá este enfoque. También puedes conectar [Prometheus](#using-prometheus) para facilitar el monitoreo, combinarlo con [Alertmanager](#configure-notifications-using-alertmanager) para automatizar la notificación, y usar [tableros preconstruidos de Grafana](#visualize-metrics-using-grafana) para crear representaciones visuales del bienestar de tu nodo. - +:::info [**Stellarbeat**](https://www.stellarbeat.io), un panel de monitoreo administrado por la comunidad, también puede ser útil para ver la salud de la red en su conjunto. Debes mantener un ojo muy atento en tu(s) nodo(s) usando algunas de las herramientas sugeridas en esta página, pero monitorear el rendimiento de todos los nodos de la red también puede ser útil para entender cómo interactúan todos entre sí. - +::: Sin importar cómo decidas monitorear, lo más importante es que tengas un sistema en marcha para asegurarte de que tu integración siga funcionando. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/publishing-history-archives.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/publishing-history-archives.mdx index b9f53f03b1..0b0a0b683e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/publishing-history-archives.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/publishing-history-archives.mdx @@ -191,7 +191,7 @@ En esta etapa, tu validador está publicando con éxito su historia, lo que perm ## Archivo de historia completo -La herramienta de línea de comandos [stellar-archivist](https://github.com/stellar/go/tree/master/tools/stellar-archivist) puede ser utilizada para reflejar, explorar y reparar archivos existentes. Usando los [repositorios de paquetes SDF](https://github.com/stellar/packages), puedes instalar `stellar-archivist` ejecutando: +La herramienta de línea de comandos [stellar-archivist](https://github.com/stellar/go-stellar-sdk/tree/main/tools/stellar-archivist) puede usarse para reflejar, escanear y reparar archivos existentes. Usando los [repositorios de paquetes SDF](https://github.com/stellar/packages), puedes instalar `stellar-archivist` ejecutando: ```bash apt-get install stellar-archivist diff --git a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/soroban-settings.mdx b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/soroban-settings.mdx index 1663e818e7..b4243f4f39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/soroban-settings.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/validators/admin-guide/soroban-settings.mdx @@ -3,19 +3,17 @@ title: Configuraciones de Soroban sidebar_position: 110 --- -import { Alert } from "@site/src/components/Alert"; - Soroban tiene una gran colección de configuraciones almacenadas en el ledger que se pueden modificar a través de un voto de validator. Aquí puedes descubrir cómo proponer una nueva actualización de configuraciones así como cómo examinar una actualización propuesta. También puedes consultar la [página de Comandos](./commands.mdx) para más detalles sobre los comandos de stellar-core utilizados a continuación. ## Proponer una Actualización de Configuraciones Esta sección describirá cómo proponer una actualización de configuraciones, pero echa un vistazo a la [página de Actualización de la Red](./network-upgrades.mdx#upgrading-soroban-settings) para más información sobre cómo funciona internamente el mecanismo de actualización de configuraciones. - +:::info Si se te pide que votes por una actualización, por favor pasa a la sección [Examinar una Actualización Propuesta](#examine-a-proposed-upgrade) para detalles sobre cómo lograr eso. - +::: ## Script de Ayuda @@ -35,7 +33,7 @@ La salida del archivo JSON de la fase 2, por ejemplo, se vería así: AAAAAgAAAAEAAAAAHc1lAAAAAAAF9eEAAAAAAAAAABkCgAAAAAAAAgAAAMgAB6EgAAAAfQABEXAAAAAoAAIIAAAAABkAAQQAAAAAAAAAGGoAAAAAAAAnEAAAAAAAAAb6AAAAAukO3QD///////0NfwAAAAAAAOFfAAAD6A== ``` - +:::info La `stellar` CLI se puede instalar usando brew o cargo: @@ -47,7 +45,7 @@ cargo install --locked stellar-cli También puedes descargar un [binario precompilado] de la última versión para tu sistema desde GitHub. - +::: ### 2. Generar Transacciones de Actualización de Configuraciones diff --git a/i18n/es/docusaurus-theme-classic/navbar.json b/i18n/es/docusaurus-theme-classic/navbar.json index 7cb5fe9ede..1a8886d64d 100644 --- a/i18n/es/docusaurus-theme-classic/navbar.json +++ b/i18n/es/docusaurus-theme-classic/navbar.json @@ -27,10 +27,6 @@ "message": "Validadores", "description": "Navbar item with label Validators" }, - "item.label.Meetings": { - "message": "Reuniones", - "description": "Navbar item with label Meetings" - }, "item.label.Overview": { "message": "Resumen", "description": "Navbar item with label Overview" @@ -111,10 +107,6 @@ "message": "RPC", "description": "Navbar item with label RPC" }, - "item.label.CLI": { - "message": "CLI", - "description": "Navbar item with label CLI" - }, "item.label.State Archival": { "message": "Archivado de estado", "description": "Navbar item with label State Archival" @@ -167,10 +159,6 @@ "message": "Rampas (anchors)", "description": "Navbar item with label Ramps (anchors)" }, - "item.label.Glossary": { - "message": "Glosario", - "description": "Navbar item with label Glossary" - }, "item.label.Migrate from Another Chain": { "message": "Migrar de otra cadena", "description": "Navbar item with label Migrate from Another Chain" @@ -267,10 +255,6 @@ "message": "Stellar Disbursement Platform", "description": "Navbar item with label Stellar Disbursement Platform" }, - "item.label.Network Configuration": { - "message": "Configuración de la red", - "description": "Navbar item with label Network Configuration" - }, "item.label.Software Versions": { "message": "Versiones de software", "description": "Navbar item with label Software Versions" @@ -322,5 +306,9 @@ "item.label.Networks Overview": { "message": "Resumen de Redes", "description": "Navbar item with label Networks Overview" + }, + "item.label.Contract Accounts": { + "message": "Cuentas de Contrato", + "description": "Navbar item with label Contract Accounts" } } diff --git a/meeting-notes/2024-01-26.mdx b/meeting-notes/2024-01-26.mdx index b019ef246b..1156f4b2cc 100644 --- a/meeting-notes/2024-01-26.mdx +++ b/meeting-notes/2024-01-26.mdx @@ -28,6 +28,6 @@ tags: [developer] 2. Definitely something here we should be addressing to make testing against specific ledger state easier 5. How do you get a list of smart contracts? - [thread](https://discord.com/channels/897514728459468821/1199121845656486009/1199739331078803496) 1. Observe create contract ops as ledgers close - 2. Use an [indexing service](https://developers.stellar.org/docs/tools/developer-tools/data-indexers.mdx) + 2. Use an [indexing service](/docs/data/indexers) 6. What is the status of contracts caching support? - [question](https://discord.com/channels/897514728459468821/1199121845656486009/1200484710447587490) 1. [response](https://discord.com/channels/897514728459468821/1199121845656486009/1200516877680644276) diff --git a/meeting-notes/2024-03-21.mdx b/meeting-notes/2024-03-21.mdx index 717ff5372a..7fea7f2580 100644 --- a/meeting-notes/2024-03-21.mdx +++ b/meeting-notes/2024-03-21.mdx @@ -17,5 +17,5 @@ tags: [developer] 2. Read-only invocations for contracts is explained, focusing on ensuring certain functions remain read-only without side effects. (https://github.com/stellar/stellar-protocol/discussions/1454) (https://github.com/stellar/stellar-protocol/discussions/1456) (https://github.com/stellar/stellar-protocol/discussions/1464) 3. Enabling contract discovery is introduced to enhance the visibility and authenticity of smart contracts within the Stellar ecosystem. 4. The implementation of a standardized contract meta data schema is proposed to link contracts to source code and enhance contract discoverability.(https://docs.rs/soroban-sdk/latest/soroban_sdk/macro.contractmeta.html) -5. Issues related to inclusion fees in the Stellar network, highlighting the importance of monitoring fees closely and understanding the implications of surge pricing. (https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee) +5. Issues related to inclusion fees in the Stellar network, highlighting the importance of monitoring fees closely and understanding the implications of [surge pricing](/docs/learn/fundamentals/fees-resource-limits-metering#inclusion-fee) 6. Plans are discussed for designing a new RPC endpoint to provide developers with better visibility and information on setting inclusion fees, aiming to improve transparency and decision-making regarding fee trade-offs. diff --git a/meeting-notes/2024-07-11.mdx b/meeting-notes/2024-07-11.mdx index 6b8f5e8be7..3d2fda2bf6 100644 --- a/meeting-notes/2024-07-11.mdx +++ b/meeting-notes/2024-07-11.mdx @@ -13,5 +13,5 @@ tags: [developer] 1. SDF Data team gave a crash course in analysis of Stellar data, and covered how to access Hubble, tips for efficient querying, and how to get started with data exploration. 2. [Slides](https://docs.google.com/presentation/d/1QsCwFLFcDF4RmNIwtSSnNrUfZb0RM0kLxOOxC7ENY5M/edit#slide=id.g2cb5821e4de_1_1143) are publicly available and legible async. -3. Tips for data anlaysis are also covered in [docs](https://developers.stellar.org/docs/data/hubble/analyst-guide) +3. Tips for data anlaysis are also covered in [docs](/docs/data/analytics/hubble/analyst-guide) 4. Share your queries and post questions in #hubble in Stellar discord, which is a dedicated channel for data-related topics. diff --git a/meeting-notes/2024-08-22.mdx b/meeting-notes/2024-08-22.mdx index c0ed92d549..32034c9ea3 100644 --- a/meeting-notes/2024-08-22.mdx +++ b/meeting-notes/2024-08-22.mdx @@ -15,7 +15,7 @@ tags: [protocol] Core Developers discussed the latest proposals to advance Stellar Core in this week's Protocol Meeting. -1. The proposal for addition of a constructor to Soroban’s flavor of Rust was introduced in a previous protocol meeting ([previous meeting](https://developers.stellar.org/meetings/2024/07/25)), documented in [CAP-58](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0058.md). A constructor is a function that will only be executed the first time the contract is created. +1. The proposal for addition of a constructor to Soroban’s flavor of Rust was introduced in a previous protocol meeting ([previous meeting](./2024-07-25.mdx)), documented in [CAP-58](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0058.md). A constructor is a function that will only be executed the first time the contract is created. 2. In this meeting, Dima discussed the updates made since the last meeting: 1. Default constructor - if a constructor is not defined explicitly, the contract is treated as if it has a constructor 2. Semantics of the return value - if the transactions succeeds, it is required to return a valid value diff --git a/meeting-notes/2024-12-05.mdx b/meeting-notes/2024-12-05.mdx index 2de51f26d8..ecebf39dde 100644 --- a/meeting-notes/2024-12-05.mdx +++ b/meeting-notes/2024-12-05.mdx @@ -4,13 +4,8 @@ authors: carstenjacobsen tags: [developer] --- - -
-In this week's call we talk to Alberto Chaves from Trustless Work about building -an escrow service on Stellar, followed by a quick introduction to using AI-based -tools to develop Soroban smart contracts. +import YouTube from "@site/src/components/YouTube"; + + + +In this week's call we talk to Alberto Chaves from Trustless Work about building an escrow service on Stellar, followed by a quick introduction to using AI-based tools to develop Soroban smart contracts. diff --git a/meeting-notes/2024-12-12.mdx b/meeting-notes/2024-12-12.mdx index c1076b716f..2fb974e446 100644 --- a/meeting-notes/2024-12-12.mdx +++ b/meeting-notes/2024-12-12.mdx @@ -4,13 +4,8 @@ authors: carstenjacobsen tags: [developer] --- - -
-In this meeting SDF Developer Advocate Chris Anatalio talks about the future -stack, including smart contract wallets and Passkeys. In the second half SDF -Core Software Engineer Siddharth Suresh talks about increasing Soroban limits. +import YouTube from "@site/src/components/YouTube"; + + + +In this meeting, SDF Developer Advocate Chris Anatalio talks about the future stack, including smart contract wallets and Passkeys. In the second half, SDF Core Software Engineer Siddharth Suresh talks about increasing Soroban limits. diff --git a/meeting-notes/2024-12-19.mdx b/meeting-notes/2024-12-19.mdx index 297801a37a..8f9c4a3965 100644 --- a/meeting-notes/2024-12-19.mdx +++ b/meeting-notes/2024-12-19.mdx @@ -4,12 +4,8 @@ authors: carstenjacobsen tags: [developer] --- - -
-In this meeting SDF Core Software Engineer Jay talks about BLS building blocks, -and walks through examples and demos. +import YouTube from "@site/src/components/YouTube"; + + + +In this meeting SDF Core Software Engineer Jay talks about BLS building blocks, and walks through examples and demos. diff --git a/meeting-notes/2025-01-16.mdx b/meeting-notes/2025-01-16.mdx index f77f08b0db..0527400b44 100644 --- a/meeting-notes/2025-01-16.mdx +++ b/meeting-notes/2025-01-16.mdx @@ -4,12 +4,8 @@ authors: carstenjacobsen tags: [developer] --- - -
-Stellar Development Foundation's Ecosystem DevRel team got together to talk -about the past year, and what 2025 brings. +import YouTube from "@site/src/components/YouTube"; + + + +Stellar Development Foundation's Ecosystem DevRel team got together to talk about the past year, and what 2025 brings. diff --git a/meeting-notes/2025-01-23.mdx b/meeting-notes/2025-01-23.mdx index 458323dec0..ae36d5a326 100644 --- a/meeting-notes/2025-01-23.mdx +++ b/meeting-notes/2025-01-23.mdx @@ -4,32 +4,21 @@ authors: carstenjacobsen tags: [developer] --- - -
+import YouTube from "@site/src/components/YouTube"; + + + Part 1 -
-In this week's meeting Hoops Finance's founders Bastian and Tim talk about the -progress they have made, some design considerations and the future of Hoops -Finance. -
-
- -
+ +In this week's meeting Hoops Finance's founders Bastian and Tim talk about the progress they have made, some design considerations and the future of Hoops Finance. + + + Part 2 -
+ Recording from a protocol meeting where two Core Advancement Proposals - -CAP-0062 (Soroban Live State Prioritization) and CAP-0066 (Soroban In-memory -Read Resource) where discussed. + +CAP-0062 (Soroban Live State Prioritization) and CAP-0066 (Soroban In-memory Read Resource) where discussed. Here's are some resources to read up on: diff --git a/meeting-notes/2025-01-30.mdx b/meeting-notes/2025-01-30.mdx index f4a5b39377..c7200899ba 100644 --- a/meeting-notes/2025-01-30.mdx +++ b/meeting-notes/2025-01-30.mdx @@ -4,36 +4,21 @@ authors: carstenjacobsen tags: [developer] --- - -
+import YouTube from "@site/src/components/YouTube"; + + + Part 1 -
-RampMeDaddy will be joining us for this Stellar Developer Meeting. RampMeDaddy -is currently participating in the Stellar x Draper Embark Program, and we ask -what the team is up to, learn more about what they are building and a casual -chat about how they are building their dapp on Stellar/Soroban. + +RampMeDaddy will be joining us for this Stellar Developer Meeting. RampMeDaddy is currently participating in the Stellar x Draper Embark Program, and we ask what the team is up to, learn more about what they are building and a casual chat about how they are building their dapp on Stellar/Soroban. Visit their website here: https://rampmedaddy.com -
-
- -
+ + Part 2 -
-In this protocol meeting two Core Advancement Proposals are discussed - Dima -will be presenting CAP-0064 (Memo Authorization for Soroban), and Graydon will -be presenting CAP-0065 (Reusable Module Cache). + +In this protocol meeting two Core Advancement Proposals are discussed - Dima will be presenting CAP-0064 (Memo Authorization for Soroban), and Graydon will be presenting CAP-0065 (Reusable Module Cache). Here are some resources: diff --git a/meeting-notes/2025-02-06.mdx b/meeting-notes/2025-02-06.mdx index 7fd83e63a9..5b3d96daa7 100644 --- a/meeting-notes/2025-02-06.mdx +++ b/meeting-notes/2025-02-06.mdx @@ -4,14 +4,11 @@ authors: carstenjacobsen tags: [developer] --- +import YouTube from "@site/src/components/YouTube"; + ## Part 1 - + The dev team behind Reflector and Refractor presents their tools for decentralized finance and transaction management on Stellar. Reflector delivers on-chain price feeds to enhance DeFi protocols, while Refractor provides a pending transaction storage and multisig aggregator for coordinated signing. They’ll cover how these products support trustless financial interactions and improve smart contract execution on Stellar. @@ -19,18 +16,16 @@ Visit their website here: https://reflector.network ## Part 2 - + In this protocol meeting we discuss two Core Advancement Proposals - Dima will be presenting CAP-0063 (Parallelism-friendly Transaction Scheduling), and Siddharth will be presenting CAP-0067 (Unified Asset Events). Here are some resources to read up on: - [CAP-0063](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0063.md) + - [CAP-0063 Discussion](https://github.com/stellar/stellar-protocol/discussions/1602) + - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [CAP-0067 Discussion](https://github.com/stellar/stellar-protocol/discussions/1553) diff --git a/meeting-notes/2025-02-13.mdx b/meeting-notes/2025-02-13.mdx index fd7b303c66..7139876294 100644 --- a/meeting-notes/2025-02-13.mdx +++ b/meeting-notes/2025-02-13.mdx @@ -4,36 +4,32 @@ authors: carstenjacobsen tags: [developer] --- +import YouTube from "@site/src/components/YouTube"; + ## Part 1 - + OrbitLens will showcase StellarBroker and StellarExpert services. StellarBroker is a multi-source liquidity swap router that aggregates liquidity from Soroban AMMs, Classic AMMs, and Classic orderbooks. The second part of the presentation will focus on Stellar smart contracts insights and on-chain transaction analytics using StellarExpert blockchain explorer. Links: - [StellarBroker](https://stellar.broker) + - [StellarExpert](https://stellar.expert) ## Part 2 - + This protocol meeting we discuss two Core Advancement Proposals - Dima is presenting CAP-0068 and CAP-0069, both of which add new host functions. Here are some resources to read up on: - [CAP-0068](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0068.md) + - [CAP-0068 Discussion](https://github.com/stellar/stellar-protocol/discussions/1626) + - [CAP-0069](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0069.md) + - [CAP-0069 Discussion](https://github.com/stellar/stellar-protocol/discussions/1633) diff --git a/meeting-notes/2025-02-20.mdx b/meeting-notes/2025-02-20.mdx index efda50927a..5467d4a49a 100644 --- a/meeting-notes/2025-02-20.mdx +++ b/meeting-notes/2025-02-20.mdx @@ -4,35 +4,30 @@ authors: carstenjacobsen tags: [developer] --- +import YouTube from "@site/src/components/YouTube"; + ## Part 1 - + SDF Developer Advocate Elliot Voris gives an introduction to the KaleFail project, and cover how it was built, the purpose and future features. KaleFail is building on top of Kalepail’s KALE project and both serve as fully fledged demo applications, showcasing key Stellar/Soroban features. Links: - [KaleFail](https://kalefail.elliotfriend.com) + - [Source Code](https://github.com/elliotfriend/project-kalefail) + - [KALE](https://kalepail.com/kale) ## Part 2 - + In this protocol meeting, a Core Advancement Proposals is discussed - Siddharth Suresh will will be presenting the memo related updates to CAP-0067. Here are some resources to read up on: - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [Discussion](https://github.com/stellar/stellar-protocol/discussions/1553) diff --git a/meeting-notes/2025-02-27.mdx b/meeting-notes/2025-02-27.mdx index ae60fc6375..bdc56a428e 100644 --- a/meeting-notes/2025-02-27.mdx +++ b/meeting-notes/2025-02-27.mdx @@ -4,36 +4,32 @@ authors: carstenjacobsen tags: [developer] --- +import YouTube from "@site/src/components/YouTube"; + ## Part 1 - + Blend, a universal liquidity protocol build on Stellar/Soroban, is preparing to release V2 and launched the Blend V2 Audit + Certora Formal Verification competition this past Monday. There are $125K in USDC up for grabs, and the team are joining this week’s meeting to talk about the competition and walk through some code. Join to learn more about Blend and the competition! Links: - [Blend](https://www.blend.capital) + - [Competition](https://code4rena.com/audits/2025-02-blend-v2-audit-certora-formal-verification) ## Part 2 - + In this protocol meeting Dima's and Leigh's prototypes for dealing with memos/muxed accounts in CAP-0067 are discussed, as well as updates to CAP-0066 (Soroban In-memory Read Resource). Links: - [CAP-0066](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0066.md) + - [CAP-0066 Discussion](https://github.com/stellar/stellar-protocol/discussions/1585) + - [CAP-0067](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0067.md) + - [CAP-0067 Discussions](https://github.com/stellar/stellar-protocol/discussions/1553#discussioncomment-12306846) and [CAP-0067 Discussions](https://github.com/stellar/stellar-protocol/discussions/1553#discussioncomment-12309408) diff --git a/meeting-notes/2025-03-06.mdx b/meeting-notes/2025-03-06.mdx index e9f0d4451f..11e3d02600 100644 --- a/meeting-notes/2025-03-06.mdx +++ b/meeting-notes/2025-03-06.mdx @@ -4,17 +4,16 @@ authors: carstenjacobsen tags: [developer] --- - +import YouTube from "@site/src/components/YouTube"; + + In this meeting we have a conversation with Christian Santagata from OpenZeppelin about the Stellar x OpenZeppelin multi-year partnership, and talk about what the team is working on in the Stellar ecosystem. The conversation includes topics about Stellar token contracts and token standards, and how to use the OpenZeppelin Contract Wizard that now supports Stellar contracts. Links: - [OpenZeppelin Contract Wizard](https://wizard.openzeppelin.com/stellar) + - [OpenZeppelin Stellar Contracts](https://github.com/OpenZeppelin/stellar-contracts) + - [Dev Walkthrough](https://www.youtube.com/watch?v=iD7ZspsZLVo) diff --git a/meeting-notes/2025-03-27.mdx b/meeting-notes/2025-03-27.mdx index d076c49e99..0cb6010bfd 100644 --- a/meeting-notes/2025-03-27.mdx +++ b/meeting-notes/2025-03-27.mdx @@ -4,30 +4,24 @@ authors: carstenjacobsen tags: [developer] --- +import YouTube from "@site/src/components/YouTube"; + ## Part 1 - + We are meeting with the OpenZeppelin team again to catch up on the latest feature additions, and this time we have invited two of their engineers, Boyan Barakov and Ozgun Ozerk, to answer technical questions from the audience. Links: - [OpenZeppelin Contract Wizard](https://wizard.openzeppelin.com/stellar) + - [OpenZeppelin Stellar Contracts](https://github.com/OpenZeppelin/stellar-contracts) + - [Dev Walkthrough](https://www.youtube.com/watch?v=iD7ZspsZLVo) ## Part 2 - + This is a short protocol meeting, following up on previous discussions. diff --git a/meeting-notes/2025-04-03.mdx b/meeting-notes/2025-04-03.mdx index 816541420d..a02b752bc0 100644 --- a/meeting-notes/2025-04-03.mdx +++ b/meeting-notes/2025-04-03.mdx @@ -4,12 +4,9 @@ authors: carstenjacobsen tags: [developer] --- - +import YouTube from "@site/src/components/YouTube"; + + First we take a look at look at Stellar Lab, a lot of features and improvements have been added since we did a Stellar Lab presentation last year. Stellar Lab is a powerful tool for everyone developing on Stellar. @@ -18,4 +15,5 @@ We are looking for community feedback on the Upgradeable Contracts SEP, and will Links: - [Stellar Lab](https://lab.stellar.org) + - [Upgradeable Contracts SEP](https://github.com/stellar/stellar-protocol/pull/1671) diff --git a/meeting-notes/2025-04-10.mdx b/meeting-notes/2025-04-10.mdx index dde48dd2aa..b9d80dd67a 100644 --- a/meeting-notes/2025-04-10.mdx +++ b/meeting-notes/2025-04-10.mdx @@ -4,12 +4,9 @@ authors: carstenjacobsen tags: [developer] --- - +import YouTube from "@site/src/components/YouTube"; + + Pamphile (better know as tupui) is a senior software engineer working at Bitpanda. Previously he worked in the team who brought Flight Simulator 2020, and he created a consulting company to work on open source software. diff --git a/meeting-notes/2025-04-17.mdx b/meeting-notes/2025-04-17.mdx index 7d0db9bdb9..93ac66c591 100644 --- a/meeting-notes/2025-04-17.mdx +++ b/meeting-notes/2025-04-17.mdx @@ -4,12 +4,9 @@ authors: carstenjacobsen tags: [developer] --- - +import YouTube from "@site/src/components/YouTube"; + + This week we’ll dive into one of the most overlooked tools - Quickstart. @@ -19,4 +16,4 @@ Learn about Quickstart, see how to install it and how to deploy the Hello World Link: -- [Stellar Quickstart](https://developers.stellar.org/docs/tools/quickstart) +- [Stellar Quickstart](/docs/tools/quickstart) diff --git a/meeting-notes/2025-05-01.mdx b/meeting-notes/2025-05-01.mdx index fe7be874c0..548b2fd11e 100644 --- a/meeting-notes/2025-05-01.mdx +++ b/meeting-notes/2025-05-01.mdx @@ -4,12 +4,9 @@ authors: carstenjacobsen tags: [developer] --- - +import YouTube from "@site/src/components/YouTube"; + + We are close to completing the implementation of Whisk, Protocol 23 CAPs, the next step in the CAP lifecycle is voting by the Core CAP team. In this protocol meeting an update was provided on the CAPs and any final questions from the community was answered. diff --git a/meeting-notes/2025-10-23.mdx b/meeting-notes/2025-10-23.mdx new file mode 100644 index 0000000000..9eeb1c6959 --- /dev/null +++ b/meeting-notes/2025-10-23.mdx @@ -0,0 +1,16 @@ +--- +title: "2025-10-23" +authors: carstenjacobsen +tags: [developer] +--- + + + +In this meeting we are talking to Dobprotocol to learn more about how they use Stellar to build a unique platform, turning machines into investable assets. + +Website: https://www.dobprotocol.com diff --git a/meeting-notes/2025-10-30.mdx b/meeting-notes/2025-10-30.mdx new file mode 100644 index 0000000000..1893aab9e5 --- /dev/null +++ b/meeting-notes/2025-10-30.mdx @@ -0,0 +1,16 @@ +--- +title: "2025-10-30" +authors: carstenjacobsen +tags: [developer] +--- + + + +In this meeting we are continuing our mini series about the Stellar-based open source tooling OpenZeppelin is developing. In the last session we talked briefly about Relayer and this time we are diving deeper into this tool, and OpenZeppelin Managed Service. + +OpenZeppelin Relayer: https://docs.openzeppelin.com/relayer diff --git a/meeting-notes/2025-11-06.mdx b/meeting-notes/2025-11-06.mdx new file mode 100644 index 0000000000..54058a45ae --- /dev/null +++ b/meeting-notes/2025-11-06.mdx @@ -0,0 +1,20 @@ +--- +title: "2025-11-06" +authors: carstenjacobsen +tags: [developer] +--- + + + +In this meeting we do a walkthrough of OpenZeppelin’s Q3 library releases for Smart Account, Vault and RWA. + +Links to docs: + +- Smart Account: https://docs.openzeppelin.com/stellar-contracts/accounts/smart-account +- Vault: https://docs.openzeppelin.com/stellar-contracts/tokens/vault/vault +- RWA: https://docs.openzeppelin.com/stellar-contracts/tokens/rwa/rwa diff --git a/meeting-notes/2026-01-22.mdx b/meeting-notes/2026-01-22.mdx new file mode 100644 index 0000000000..a71deabb7c --- /dev/null +++ b/meeting-notes/2026-01-22.mdx @@ -0,0 +1,35 @@ +--- +title: "2026-01-22" +authors: carstenjacobsen +tags: [developer] +--- + + + +## OpenZeppelin Q4 Releases + +In this year’s first Stellar Developer Meeting, on Thursday, January 22nd at 8am PT on Twitch, we will catch up with Ozgun and Boyan from the OpenZeppelin team and take a look at the libraries released in Q4 last year. + + + +## Protocol Discussion + +We had three CAPs prepared for this meeting. CAP-77 will provide a way to make ledger keys inaccessible based on the network configuration upgrade performed with a validator vote. CAP-78 proposes an interface which allows developers to specify TTL extension policies such as 'if an entry TTL is less than 29 days, extend it to have 30 days TTL'. CAP-79 introduces host functions for converting Stellar strkey format strings to/from Address/MuxedAddress objects. + +Read more about the proposals here: + +[CAP-0077](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0078.md) - [Discussion](https://github.com/orgs/stellar/discussions/1811) + +[CAP-0078](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0078.md) - [Discussion](https://github.com/orgs/stellar/discussions/1825) + +[CAP-0079](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0079.md) - [Discussion](https://github.com/orgs/stellar/discussions/1840) diff --git a/meeting-notes/2026-01-29.mdx b/meeting-notes/2026-01-29.mdx new file mode 100644 index 0000000000..d99357ee27 --- /dev/null +++ b/meeting-notes/2026-01-29.mdx @@ -0,0 +1,24 @@ +--- +title: "2026-01-29" +authors: carstenjacobsen +tags: [developer] +--- + + + +## Protocol Discussion + +We have one new CAP to discuss and that is CAP-80. This proposal adds BN254 Multi-Scalar Multiplication and modular arithmetic used in a variety of ZK proof applications. Adding host support for these will greatly improve the performance of these use cases. + +We also follow up on a previous CAP - the CAP-73. + +Read more about the proposal here: + +[CAP-0080](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0080.md) - [Discussion](https://github.com/orgs/stellar/discussions/1826) + +[CAP-0073](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0073.md) - [Discussion](https://github.com/orgs/stellar/discussions/1668) diff --git a/nginx/includes/redirects.conf b/nginx/includes/redirects.conf index ac6601c410..f01e71506d 100644 --- a/nginx/includes/redirects.conf +++ b/nginx/includes/redirects.conf @@ -29,6 +29,7 @@ rewrite ^/docs/software-and-sdks$ "/docs/tools/sdks" permanent; rewrite ^/docs/tools-and-sdks(.*)$ "/docs/tools/sdks$1" permanent; rewrite ^/docs/data/indexers/data-indexers$ "/docs/data/indexers/indexer-providers" permanent; rewrite ^/docs/tools/developer-tools/data-indexers "/docs/data/indexers/data-indexers" permanent; +rewrite ^/docs/data/indexers/indexer-providers(/indexer-providers)?$ "/docs/data/indexers" permanent; rewrite ^/docs/start/introduction$ "/docs" permanent; rewrite ^/docs/start/list-of-operations$ "/docs/learn/fundamentals/list-of-operations" permanent; rewrite ^/docs/start/stellar-stack$ "/docs/learn/fundamentals/stellar-stack" permanent; @@ -37,6 +38,7 @@ rewrite ^/docs/tutorials/securing-projects$ "/docs/build/security-docs/securing- rewrite ^/docs/tutorials/moneygram-access-integration-guide$ "/docs/build/apps/moneygram-access-integration-guide" permanent; rewrite ^/docs/fundamentals-and-concepts/testnet-and-pubnet$ "/docs/learn/fundamentals/networks" permanent; rewrite ^/api$ "/docs/data/apis/horizon" permanent; +rewrite ^/docs/build/smart-contracts/example-contracts/custom-account$ "/docs/build/smart-contracts/example-contracts/complex-account" permanent; # Moving /api/* locations to /api/horizon (leaving /api intact for the "overview page") rewrite ^/(network|api)/(horizon/)?resources/((cb|get|list|retrieve|submit)-.*)$ "/docs/data/apis/horizon/api-reference/$3" permanent; @@ -51,18 +53,18 @@ rewrite ^/docs/data/horizon/api-reference/resources/((cb|get|list|retrieve|submi rewrite ^/api(/(?!horizon|(anchor|stellar-disbursement)-platform).*)$ "/docs/data/apis/horizon$1" permanent; rewrite ^/network/horizon/(resources|structure|aggregations|errors)(.*)$ "/docs/data/apis/horizon/api-reference/$1$2" permanent; rewrite ^/(network|api)/horizon(.*)$ "/docs/data/apis/horizon$2" permanent; -rewrite ^/network/anchor-platform/(resources|callbacks|custody-server|rpc)(.*)$ "/platforms/anchor-platform/api-reference/$1$2" permanent; -rewrite ^/network/stellar-disbursement-platform/resources(.*)$ "/platforms/stellar-disbursement-platform/api-reference$1" permanent; -rewrite ^/(network|api)/((anchor|stellar-disbursement)-platform)(.*)$ "/platforms/$2$4" permanent; +rewrite ^/network/anchor-platform/(resources|callbacks|custody-server|rpc)(.*)$ "/docs/platforms/anchor-platform/api-reference/$1$2" permanent; +rewrite ^/network/stellar-disbursement-platform/resources(.*)$ "/docs/platforms/stellar-disbursement-platform/api-reference$1" permanent; +rewrite ^/(network|api)/((anchor|stellar-disbursement)-platform)(.*)$ "/docs/platforms/$2$4" permanent; rewrite ^/network/soroban-rpc/(methods|json-rpc|pagination)(.*)$ "/docs/data/apis/rpc/api-reference/$1$2" permanent; # Moving /ap_api locations to /api/anchor-platform -rewrite ^/ap_api(.*)?$ "/platforms/anchor-platform$1" permanent; -rewrite ^/docs/category/anchor-platform$ "/platforms/anchor-platform/admin-guide" permanent; +rewrite ^/ap_api(.*)?$ "/docs/platforms/anchor-platform$1" permanent; +rewrite ^/docs/category/anchor-platform$ "/docs/platforms/anchor-platform/admin-guide" permanent; rewrite ^/docs/anchoring-assets(/|/overview)?$ "/docs/learn/fundamentals/anchors" permanent; rewrite ^/docs/anchoring-assets(.*)$ "/docs/learn/fundamentals/anchors" permanent; -rewrite ^/docs/category/use-the-stellar-disbursement-platform$ "/platforms/stellar-disbursement-platform/admin-guide" permanent; -rewrite ^/docs/stellar-disbursement-platform(.*)$ "/platforms/stellar-disbursement-platform/admin-guide$1" permanent; +rewrite ^/docs/category/use-the-stellar-disbursement-platform$ "/docs/platforms/stellar-disbursement-platform/admin-guide" permanent; +rewrite ^/docs/stellar-disbursement-platform(.*)$ "/docs/platforms/stellar-disbursement-platform/admin-guide$1" permanent; rewrite ^/docs/run-api-server$ "/docs/data/apis/horizon/admin-guide/overview" permanent; rewrite ^/docs/run-api-server(.*)$ "/docs/data/apis/horizon/admin-guide$1" permanent; rewrite ^/docs/run-platform-server/?$ "/docs/data/apis/horizon/admin-guide/overview" permanent; @@ -82,7 +84,7 @@ rewrite ^/docs/glossary(.*)$ "/docs/learn/glossary$1" permanent; # Miscellaneous redirects rewrite ^/docs/learn$ "/docs/learn/fundamentals" permanent; rewrite ^/docs/data/apis/horizon/api-reference/resources/retrieve-a-transaction$ "/docs/data/apis/horizon/api-reference/retrieve-a-transaction" permanent; -rewrite ^/platforms/anchor-platform/api-reference/resources/get-transaction$ "/platforms/anchor-platform/api-reference/platform/transactions/get-transaction" permanent; +rewrite ^/platforms/anchor-platform/api-reference/resources/get-transaction$ "/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transaction" permanent; rewrite ^/docs/learn/smart-contract-internals/fees-and-metering$ "/docs/learn/fundamentals/fees-resource-limits-metering" permanent; rewrite ^/docs/learn/migrate/introduction-to-solidity-and-rust$ "/docs/learn/migrate/evm/introduction-to-solidity-and-rust" permanent; rewrite ^/docs/learn/smart-contract-internals/state-expiration$ "/docs/learn/fundamentals/contract-development/storage/state-archival" permanent; @@ -93,20 +95,35 @@ rewrite ^/docs/smart-contracts/faq "/docs/build/smart-contracts/overview#soroban rewrite ^/docs/learn/smart-contract-internals/faq "/docs/build/smart-contracts/overview#soroban-faqs" permanent; rewrite ^/docs/learn/smart-contract-internals/high-level-overview(.*)$ "/docs/learn/fundamentals/contract-development" permanent; rewrite ^/docs/smart-contracts/tokens/token-interface.mdx$ "/docs/tokens/token-interface" permanent; -rewrite ^/network/anchor-platform/anchor$ "/platforms/anchor-platform" permanent; +rewrite ^/network/anchor-platform/anchor$ "/docs/platforms/anchor-platform" permanent; rewrite ^/docs/examples/auth$ "/docs/build/smart-contracts/example-contracts/auth" permanent; rewrite ^/docs/reference$ "/docs/networks" permanent; rewrite ^/docs/reference/futurenet$ "/docs/networks" permanent; rewrite ^/docs/reference/(.*)$ "/docs/networks/$1" permanent; rewrite ^/docs/SDKs/rust-auth$ "/docs/tools/sdks/library#soroban-rust-sdk" permanent; -rewrite ^/docs/category/cross-border-payments$ "/platforms/anchor-platform/admin-guide/sep31" permanent; -rewrite ^/docs/category/hosted-deposits-and-withdrawals$ "/platforms/anchor-platform/admin-guide/sep24" permanent; -rewrite ^/docs/category/build-a-wallet$ "/docs/category/build-a-wallet-with-the-wallet-sdk" permanent; +rewrite ^/docs/category/cross-border-payments$ "/docs/platforms/anchor-platform/sep-guide/sep31" permanent; +rewrite ^/docs/category/hosted-deposits-and-withdrawals$ "/docs/platforms/anchor-platform/sep-guide/sep24" permanent; +rewrite ^/docs/category/programmatic-deposits-and-withdrawals$ "/docs/platforms/anchor-platform/sep-guide/sep6" permanent; +rewrite ^/docs/category/stellar-authentication$ "/docs/platforms/anchor-platform/sep-guide/sep10" permanent; +rewrite ^/docs/category/web-authentication-for-contracts$ "/docs/platforms/anchor-platform/sep-guide/sep45" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep1(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep1$1" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep6(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep6$1" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep10(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep10$1" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep24(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep24$1" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep31(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep31$1" permanent; +rewrite ^/platforms/anchor-platform/admin-guide/sep45(.*)$ "/docs/platforms/anchor-platform/sep-guide/sep45$1" permanent; rewrite ^/dapps "/docs/learn/interactive" permanent; rewrite ^/docs/learn/interactive/dapps "/docs/learn/interactive" permanent; rewrite ^/docs/learn/networks$ "/docs/networks" permanent; rewrite ^/docs/learn/fundamentals/networks$ "/docs/networks" permanent; +# Move some categories around +rewrite ^/docs/category/build-a-wallet$ "/docs/build/apps/wallet" permanent; +rewrite ^/docs/category/build-a-wallet-with-the-wallet-sdk$ "/docs/build/apps/wallet" permanent; +rewrite ^/docs/category/build-a-payment-app-with-the-js-sdk$ "/docs/build/apps/example-application-tutorial" permanent; +rewrite ^/docs/category/anchor-integration$ "/docs/build/apps/example-application-tutorial/anchor-integration" permanent; +rewrite ^/docs/category/build-custom-network-ingestion-pipeline$ "/docs/build/apps/ingest-sdk" permanent; + # Categorized Encyclopedia redirects rewrite ^/docs/learn/smart-contract-internals/authorization(.*)$ "/docs/learn/fundamentals/contract-development/authorization$1" permanent; rewrite ^/docs/learn/smart-contract-internals/types/built-in-types$ "/docs/learn/fundamentals/contract-development/types/built-in-types" permanent; @@ -166,10 +183,12 @@ rewrite ^/docs/category/build-applications$ "/docs/build/apps" permanent; rewrite ^/docs/building-apps(.*)$ "/docs/build/apps$1" permanent; rewrite ^/docs/smart-contracts$ "/docs/build/smart-contracts/overview" permanent; rewrite ^/docs/smart-contracts/guides(.*)$ "/docs/build/guides$1" permanent; -rewrite ^/docs/smart-contracts/smart-wallets(.*)$ "/docs/build/apps/smart-wallets$1" permanent; +rewrite ^/docs/smart-contracts/smart-wallets(.*)$ "/docs/build/guides/contract-accounts$1" permanent; +rewrite ^/docs/build/apps/smart-wallets(.*)$ "/docs/build/guides/contract-accounts$1" permanent; rewrite ^/docs/smart-contracts/getting-started/create-an-app(.*)$ "/docs/build/apps/dapp-frontend$1" permanent; rewrite ^/docs/smart-contracts(.*)$ "/docs/build/smart-contracts$1" permanent; -rewrite ^docs/build/guides/basics/follow-received-payments(.*)$ "docs/build/guides/transactions/send-and-receive-payments$1" permanent; +rewrite ^/docs/build/guides/basics/follow-received-payments(.*)$ "/docs/build/guides/transactions/send-and-receive-payments$1" permanent; +rewrite ^/docs/build/guides/transactions/install-wasm-bytecode(.*)$ "/docs/build/guides/transactions/upload-wasm-bytecode$1" permanent; # Moving testing docs around rewrite ^/docs/build/guides/testing/detecting-changes-with-test-snapshots(.*)$ "/docs/build/guides/testing/differential-tests-with-test-snapshots$1" permanent; @@ -218,6 +237,8 @@ rewrite ^/docs/tools/developer-tools/cli(.*)$ "/docs/tools/cli$1" permanent; rewrite ^/docs/tools/developer-tools/lab(.*)$ "/docs/tools/lab$1" permanent; rewrite ^/docs/tools/developer-tools/quickstart(.*)$ "/docs/tools/quickstart$1" permanent; rewrite ^/docs/tools/developer-tools/openzepplin-contracts(.*)$ "/docs/tools/developer-tools/openzeppelin-contracts$1" permanent; +rewrite ^/docs/tools/cli/cookbook/install-(deploy|wasm)(.*)$ "/docs/tools/cli/cookbook/upload-$1$2" permanent; +rewrite ^/docs/build/guides/cli/install-(deploy|wasm)(.*)$ "/docs/tools/cli/cookbook/upload-$1$2" permanent; rewrite ^/docs/build/guides/cli(.*)$ "/docs/tools/cli/cookbook$1" permanent; # MoneyGram @@ -228,6 +249,14 @@ rewrite ^/docs/learn/encyclopedia/data-format$ "/docs/learn/fundamentals/data-fo rewrite ^/docs/learn/encyclopedia/data-format/xdr$ "/docs/learn/fundamentals/data-format/xdr" permanent; rewrite ^/docs/learn/encyclopedia/data-format/xdr-json$ "/docs/learn/fundamentals/data-format/xdr-json" permanent; +# Stellar Disbursement Platform +rewrite ^/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points$ "/docs/platforms/stellar-disbursement-platform/admin-guide" permanent; +rewrite ^/platforms/stellar-disbursement-platform/admin-guide/single-tenant-to-multi-tenant-migration$ "/docs/platforms/stellar-disbursement-platform/admin-guide" permanent; +rewrite ^/platforms/stellar-disbursement-platform/admin-guide/tenant-provisioning$ "/docs/platforms/stellar-disbursement-platform/admin-guide/advanced-configration#provisioning-tenants" permanent; +rewrite ^/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual$ "/docs/platforms/stellar-disbursement-platform/admin-guide/security" permanent; +# and a blanket "/platforms" redirect +rewrite ^/platforms(.*)$ "/docs/platforms$1" permanent; + # Moving the contract development section (https://github.com/stellar/stellar-docs/pull/1557) rewrite ^/docs/learn/encyclopedia/errors-and-debugging(.*)$ "/docs/learn/fundamentals/contract-development/errors-and-debugging$1" permanent; rewrite ^/docs/learn/encyclopedia/security/authorization(.*)$ "/docs/learn/fundamentals/contract-development/authorization$1" permanent; diff --git a/openapi/anchor-platform/bundled-custody.yaml b/openapi/anchor-platform/bundled-custody.yaml deleted file mode 100644 index 969c197304..0000000000 --- a/openapi/anchor-platform/bundled-custody.yaml +++ /dev/null @@ -1,279 +0,0 @@ -openapi: 3.1.0 -info: - version: 3.0.0 - title: Custody Server - description: | - The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the events service, payments to your accounts will trigger a HTTP callback made to your business server. - - If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the Platform API. - - Currently the only supported provider is Fireblocks. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://custody-server.exampleanchor.com -tags: - - name: Custody Transactions - description: Custody Server creates custody transaction record in DB. - - name: Payments - description: Custody Server calls the configured custody service to send payment. - - name: Refunds - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - name: Custody Unique Address - description: Custody Server calls the configured custody service to generate deposit address and memo. -paths: - /transactions: - post: - description: Custody Server creates custody transaction record in DB. - summary: Create Custody Transaction - operationId: createCustodyTransaction - tags: - - Custody Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - id: - description: SEP transaction ID. - type: string - memo: - description: Memo value, that is used to identify inbound or outbound payments. - type: string - memoType: - description: Type of memo, that is used to identify inbound or outbound payments. - type: string - enum: - - id - - hash - - text - protocol: - description: Protocol of SEP transaction. - type: string - enum: - - '6' - - '24' - - '31' - fromAccount: - description: Source Stellar account. - type: string - toAccount: - description: Destination Stellar account. - type: string - amount: - description: Amount of the asset, that is sent/received. - type: string - amountFee: - description: Fee of SEP transaction. - type: string - asset: - description: Asset, that is sent/received. - type: string - kind: - description: Kind of the SEP transaction. - type: string - enum: - - deposit - - withdrawal - - receive - responses: - '200': - description: Success. - content: - application/json: - schema: - type: object - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/payments: - post: - description: Custody Server calls the configured custody service to send payment. - summary: Send Payment - operationId: sendPayment - tags: - - Payments - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/refunds: - post: - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - summary: Send Refund - operationId: sendRefund - tags: - - Refunds - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - memo: - description: Memo value, that will be added to the refund payment. - type: string - memoType: - description: Type of memo, that will be added to the refund payment. - type: string - amount: - description: Amount, that will be refunded. - type: string - amountFee: - description: Fee of the refund. - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /assets/:asset/addresses: - post: - description: | - Custody Server calls the configured custody service to generate deposit address and memo. - - Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - summary: Generate Unique Address - operationId: generateUniqueAddress - tags: - - Custody Unique Address - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateUniqueAddressResponse' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' -components: - schemas: - CustodyError: - type: object - required: - - error - properties: - error: - type: string - SendPaymentResponse: - type: object - properties: - id: - type: string - description: External TX ID from custody service. - GenerateUniqueAddressResponse: - type: object - properties: - address: - description: Deposit address to which the client should send funds. - type: string - memo: - description: Memo value, that should be added to payment by the client. - type: string - memoType: - description: Type of memo, that should be added to payment by the client. - type: string - enum: - - id - - hash - - text diff --git a/openapi/anchor-platform/main-custody.yaml b/openapi/anchor-platform/main-custody.yaml deleted file mode 100644 index 744f4fabfc..0000000000 --- a/openapi/anchor-platform/main-custody.yaml +++ /dev/null @@ -1,245 +0,0 @@ -openapi: 3.1.0 -info: - version: "3.0.0" - title: Custody Server - description: | - The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the events service, payments to your accounts will trigger a HTTP callback made to your business server. - - If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the Platform API. - - Currently the only supported provider is Fireblocks. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://custody-server.exampleanchor.com -tags: - - name: "Custody Transactions" - description: "Custody Server creates custody transaction record in DB." - - name: "Payments" - description: "Custody Server calls the configured custody service to send payment." - - name: "Refunds" - description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." - - name: "Custody Unique Address" - description: "Custody Server calls the configured custody service to generate deposit address and memo." -paths: - /transactions: - post: - description: Custody Server creates custody transaction record in DB. - summary: Create Custody Transaction - operationId: createCustodyTransaction - tags: - - Custody Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - id: - description: SEP transaction ID. - type: string - memo: - description: Memo value, that is used to identify inbound or outbound payments. - type: string - memoType: - description: Type of memo, that is used to identify inbound or outbound payments. - type: string - enum: - - id - - hash - - text - protocol: - description: Protocol of SEP transaction. - type: string - enum: [ "6", "24", "31" ] - fromAccount: - description: Source Stellar account. - type: string - toAccount: - description: Destination Stellar account. - type: string - amount: - description: Amount of the asset, that is sent/received. - type: string - amountFee: - description: Fee of SEP transaction. - type: string - asset: - description: Asset, that is sent/received. - type: string - kind: - description: Kind of the SEP transaction. - type: string - enum: - - deposit - - withdrawal - - receive - responses: - '200': - description: Success. - content: - application/json: - schema: - type: object - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - /transactions/:id/payments: - post: - description: Custody Server calls the configured custody service to send payment. - summary: Send Payment - operationId: sendPayment - tags: - - Payments - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - /transactions/:id/refunds: - post: - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - summary: Send Refund - operationId: sendRefund - tags: - - Refunds - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - memo: - description: Memo value, that will be added to the refund payment. - type: string - memoType: - description: Type of memo, that will be added to the refund payment. - type: string - amount: - description: Amount, that will be refunded. - type: string - amountFee: - description: Fee of the refund. - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' - /assets/:asset/addresses: - post: - description: | - Custody Server calls the configured custody service to generate deposit address and memo. - - Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - summary: Generate Unique Address - operationId: generateUniqueAddress - tags: - - Custody Unique Address - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/GenerateUniqueAddressResponse' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: './schemas.yaml#/components/schemas/CustodyError' diff --git a/openapi/anchor-platform/versions/callbacks-2.8.4.yaml b/openapi/anchor-platform/versions/callbacks-2.8.4.yaml deleted file mode 100644 index 12da77ef77..0000000000 --- a/openapi/anchor-platform/versions/callbacks-2.8.4.yaml +++ /dev/null @@ -1,1309 +0,0 @@ -openapi: 3.1.0 -info: - version: 2.8.4 - description: | - The Synchronous Callbacks API specification for the Stellar Anchor Platform project. - - The Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The - anchor's responses to these requests affect the Platform responses to the client application. - title: Callbacks Server - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://callback.business-server.exampleanchor.com -tags: - - name: Unique Address - description: (optional) Provide a unique `stellar_address:memo` pair that will be used to correlate a Stellar payment 1-to-1 with a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - - name: Fees - description: Requests containing data that can be used to calculate transaction fees. - - name: Rates - description: Requests containing data that can be used to provide exchange rates between on & off-chain assets. - - name: Customers - description: | - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md) requests made from client - applications. -paths: - /unique_address: - get: - description: | - If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to - the Anchor backend every time a transaction is initiated by a client application. - - The Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform - resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - - Here is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs - outside the platform, using Circle: - - [![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) - summary: Generate Unique Address - operationId: genAddress - tags: - - Unique Address - x-seps: - - SEP-31 - parameters: - - in: query - name: transaction_id - description: | - The platform server will save the posted transaction and pass the `transaction_id` through this endpoint. - If the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](https://developers.stellar.org/platforms/anchor-platform/api-reference/resources/get-transaction). - schema: - type: string - required: true - responses: - '200': - description: Success. - content: - application/json: - schema: - type: object - properties: - unique_address: - description: An object containing the unique `stellar_address:memo` pair used to identify a destination. - type: object - properties: - stellar_address: - description: A `G...` stellar address or a `M...` [muxed stellar address](https://developers.stellar.org/docs/learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos#muxed-accounts) of an **existing** account in the Stellar network. - type: string - memo: - description: The memo to attach to the Stellar payment. - type: string - memo_type: - description: The type of memo to attach to the Stellar payment (text, hash, or id). - type: string - enum: - - text - - hash - - id - required: - - stellar_address - '500': - description: Error. The Platform will respond to the client application with the same response code and body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /fee: - get: - description: | - The Platform will make this request to the anchor every time a transaction is initiated by a client application - without a `quote_id`. - - The Anchor must ensure that the sending and receiving customers specified in the request meet the KYC requirements - necessary to partake in the transaction described in the request. - - The anchor must return the fee it will charge for the transaction. - - In the future, this endpoint may be used to provide estimated fees to client applications prior to initiating transactions. - When this change is made, the request schema will be adapted to support the use case. - tags: - - Fees - x-seps: - - SEP-31 - summary: Retrieve Fees - operationId: getFee - parameters: - - in: query - name: send_asset - description: | - The asset the client application will send to the anchor in exchange for `receive_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: receive_asset - description: | - The asset the that the anchor will send in exchange for `send_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: send_amount - description: | - The amount of `send_asset` the client application will send in exchange for `receive_asset`. One of `send_amount` - or `receive_amount` will always be included in the request. If the client application specified a `quote_id` in - its transaction creation request, both amounts specified in the referenced quote will be passed. - schema: - type: string - - in: query - name: receive_amount - description: | - The amount of `receive_asset` the anchor will send in exchange for `send_asset`. One of `send_amount` or - `receive_amount` will always be included in the request. If the client application specified a `quote_id` in its - transaction creation request, both amounts specified in the referenced quote will be passed. - schema: - type: string - - in: query - name: client_id - description: | - An identifier for the client application making the request. This ID can be used to offer different fees to different clients. - A client ID it the Stellar account of a sending anchor: In SEP-31, the `client_id` should match the account of a known SEP-31 sending anchor match the one used to authenticate via SEP-10. - schema: - type: string - required: true - - in: query - name: sender_id - description: | - The SEP-12 customer ID of the sending user. - schema: - type: string - required: true - - in: query - name: receiver_id - description: | - The SEP-12 customer ID of the receiving user. - schema: - type: string - required: true - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/FeeResponse' - '422': - description: | - Unprocessable Entity. This status should be returned when the anchor understood the request but cannot - return a success response. An example for when this response code would be appropriate is if the sender - and/or receiver is not permitted to initiate a transaction with the specified amounts. In these cases, - the Platform will respond to the client application's request with a `400 Bad Request` and include the - error message provided by the anchor in the response body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '500': - description: Error. The Platform will respond to the client application with the same response code and body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /rate: - get: - description: | - Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must - use exchange rates that are communicated to the client application requesting the transaction. When clients make - requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - - Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or - [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the - client requests a firm rate. - - Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter - for this reason. - - Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, - either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either - `sell_asset` or `buy_asset` is a Stellar asset. - tags: - - Rates - x-seps: - - SEP-31 - - SEP-38 - summary: Retrieve Rates - operationId: getRates - parameters: - - in: query - name: type - description: The type of rate requested. If `firm`, the response must include `rate.id` and `rate.expires_at`. - schema: - type: string - enum: - - indicative - - firm - required: true - - in: query - name: client_id - description: | - An identifier for the client application making the request. This ID can be used to offer different fees to different clients. - - Client IDs will be the Stellar public key the public key used to authenticate via SEP-10. Anchors must ensure - that the public key specified in the request matches a public key known to belong to the sending anchor. - - This parameter will only be specified if the client is authenticated via SEP-10. Anchors can define whether or not - authentication is required for fetching indicative rates. Firm rates always require authentication. - schema: - type: string - - in: query - name: sell_asset - description: | - The asset the client application will send to the anchor in exchange for `buy_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: buy_asset - description: | - The asset the that the anchor will send in exchange for `sell_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: sell_amount - description: | - The amount of `sell_asset` the client application will send in exchange for `buy_asset`. Will not be used in - conjuction with `buy_amount`. - schema: - type: string - - in: query - name: buy_amount - description: | - The amount of `buy_asset` the anchor will send in exchange for `sell_asset`. Will not be used in conjuction - with `sell_amount`. - schema: - type: string - - in: query - name: country_code - description: | - The [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code of the user's current address. - Anchors should expect this parameter to be provided if one of the assets of the buy/sell pair is fiat and it - is available in two or more countries. - schema: - type: string - - in: query - name: expire_after - description: | - The client's desired `expires_at` date and time for the quote that can be used if this is a firm quote. This should - be a [UTC ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) string. Anchors should return `400 Bad - Request` if an expiration date on or after the requested value cannot be provided. - schema: - type: string - - in: query - name: sell_delivery_method - description: | - The method the client or user will use to deliver `sell_asset` to the Anchor. This value may affect the - expiration and price provided. The values used for this parameter is defined in the application's configuration. - Will not be used in conjuction with `buy_delivery_method`. - schema: - type: string - - in: query - name: buy_delivery_method - description: | - The method the client or user wants used to receive `buy_asset` from the Anchor. This value may affect the - expiration and price provided. The values used for this parameter is defined in the application's configuration. - Will not be used in conjuction with `sell_delivery_method`. - schema: - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/RateResponse' - '422': - description: | - Unprocessable Entity. This status should be returned when the anchor understood the request but cannot - return a success response. - In these cases, the Platform will respond to the client application's request with a `400 Bad Request` - and include the error message provided by the anchor in the response body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '500': - description: Error. The Platform will respond to the client application with the same response code and body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /customer: - get: - description: | - The request and response for this endpoint is identical to the - [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) - request and response defined in SEP-12. - - This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 - [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - - If the server does not have a customer registered for the parameters sent in the request, it should return the - fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - - This allows clients to check whether the customers information was accepted, rejected, or still needs more info. - If the server still needs more info, or the server needs updated information, it should return the fields required. - tags: - - Customers - x-seps: - - SEP-6 - - SEP-12 - - SEP-31 - summary: Retrieve Customer's Info - operationId: getCustomer - parameters: - - in: query - name: id - description: The ID of the customer as returned in the response of a previous PUT request. - schema: - type: string - - in: query - name: account - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - schema: - type: string - - in: query - name: memo - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - schema: - type: string - - in: query - name: memo_type - description: The type of memo used to identify a customer with a shared account. - schema: - type: string - enum: - - id - - hash - - text - - in: query - name: type - description: | - The type of action the customer is being KYCd for. See the - [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) - documented in SEP-12. - schema: - type: string - - in: query - name: transaction_id - description: | - The transaction id with which the customer's info is associated. When information from the customer depends on the - transaction (e.g., more information is required for larger amounts) - schema: - type: string - - in: query - name: lang - description: | - Defaults to `en`. Language code specified using ISO 639-1. Human readable descriptions, choices, and - messages should be in this language. - schema: - type: string - responses: - '200': - description: | - Valid request. Customer either already exists or the customer identified by the parameters is new and must - provide the field values described in the response body. Response bodies are identical to the schema defined - in [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). - content: - application/json: - schema: - $ref: '#/components/schemas/GetCustomerResponse' - examples: - SuccessKYC: - $ref: '#/components/examples/SuccessKYC' - '400': - description: Error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Not Found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - put: - tags: - - Customers - x-seps: - - SEP-6 - - SEP-12 - - SEP-24 - - SEP-31 - description: | - **The Anchor Platform does not persist any customer KYC data.** - - The request and response for this endpoint are identical to the - [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) - request and response defined in SEP-12. - - Client applications make requests with the following request body, which is forwarded to the anchor. Anchors - must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will - be forwarded to the anchor as with the `application/json` content type. Requests containing - binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - summary: Create or Update Customer Info - operationId: putCustomer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PutCustomerRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PutCustomerMultipartRequest' - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/PutCustomerResponse' - '400': - description: Invalid data. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Not Found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /customer/{id}: - delete: - tags: - - Customers - x-seps: - - SEP-12 - - SEP-31 - description: | - The request for this endpoint is identical to the - [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) - request defined in SEP-12. - - Delete the customer's data or queue the customers data for deletion. - summary: Delete Customer Data - operationId: delCustomer - parameters: - - in: path - name: id - schema: - type: string - required: true - responses: - '204': - description: Success. - '404': - description: Customer not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /event: - post: - tags: - - Events - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Receive an Event - operationId: postEvent - description: | - Receive a JSON object representing an event. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Event' - responses: - '200': - description: The event is successfully processed and ready to receive next event. The response body is empty. - '400': - description: The event is invalid or rejected. The response body contains the error message. -components: - schemas: - Error: - type: object - properties: - error: - type: string - id: - type: string - required: - - error - Amount: - type: object - required: - - amount - - asset - properties: - amount: - type: string - asset: - type: string - FeeResponse: - type: object - properties: - fee: - $ref: '#/components/schemas/Amount' - RateFeeDetailResponse: - type: object - properties: - name: - type: string - description: The name of the fee, for example `ACH fee`, `Brazilian conciliation fee`, `Service fee`, etc. - description: - type: string - description: A text describing the fee. - amount: - type: string - description: The amount of asset applied. If `fee.details` is provided, `sum(fee.details.amount)` should be equals `fee.total`. - required: - - name - - amount - RateFeeResponse: - type: object - description: An object describing the fees added on top of the rate provided via the `price` attribute. - properties: - total: - type: string - description: The total fee to be applied. - asset: - type: string - description: The asset the fee will be charged in. Must be represented in [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - details: - type: array - items: - $ref: '#/components/schemas/RateFeeDetailResponse' - required: - - total - - asset - RateResponse: - type: object - properties: - rate: - type: object - properties: - id: - type: string - description: ID of the firm quote. NOT USED when `type=indicative`. - expires_at: - type: string - format: date-time - description: Expiration for the quote. NOT USED when `type=indicative`. - price: - type: string - description: The conversion price offered by the anchor for one unit of `buy_asset` in terms of `sell_asset`, without including fees. In traditional finance, `buy_asset` would be referred to as the base asset and `sell_asset` as the counter asset. The formula `sell_amount - fee = price * buy_amount` must hold true ([ref](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#price-formulas)). - sell_amount: - type: string - description: The amount of `sell_asset` the anchor will exchange for `buy_asset`. It could be different from the `sell_amount` provided in the request, depending on how fees are applied by the Anchor. - buy_amount: - type: string - description: The amount of `buy_asset` the anchor will provide with `sell_asset`. It could be different from the `buy_amount` provided in the request, depending on how fees are applied by the Anchor. - fee: - $ref: '#/components/schemas/RateFeeResponse' - required: - - price - - sell_amount - - buy_amount - GetCustomerResponse: - type: object - required: - - status - properties: - id: - type: string - status: - type: string - enum: - - ACCEPTED - - PROCESSING - - NEEDS_INFO - - REJECTED - fields: - type: object - additionalProperties: - required: - - type - - description - properties: - type: - type: string - enum: - - string - - binary - - number - - date - description: - type: string - choices: - type: array - items: - type: string - optional: - type: boolean - provided_fields: - type: object - additionalProperties: - required: - - type - - description - properties: - type: - type: string - enum: - - string - - binary - - number - - date - description: - type: string - choices: - type: array - items: - type: string - optional: - type: boolean - status: - type: string - enum: - - ACCEPTED - - PROCESSING - - REJECTED - - VERIFICATION_REQUIRED - error: - type: string - message: - type: string - PutCustomerRequest: - type: object - properties: - id: - description: The ID of the customer as returned in the response of a previous PUT request. - type: string - account: - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - type: string - memo: - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - type: string - memo_type: - description: The type of memo used to identify a customer with a shared account. - type: string - enum: - - id - - hash - - text - type: - description: | - The type of action the customer is being KYCd for. - See the [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) documented in SEP-12 for more info. - For SEP-31 you can define your own types in the assets configuration. - For SEP-24 pre-defined value `sep24-customer` is used. - type: string - transaction_id: - description: | - The transaction id with which the customer's info is associated. When information from the customer depends on the - transaction (e.g., more information is required for larger amounts) - type: string - first_name: - type: string - last_name: - type: string - additional_name: - type: string - address_country_code: - type: string - state_or_province: - type: string - city: - type: string - postal_code: - type: string - address: - type: string - mobile_number: - type: string - email_address: - type: string - birth_date: - type: string - format: date - birth_place: - type: string - birth_country_code: - type: string - bank_name: - type: string - bank_account_number: - type: string - bank_account_type: - type: string - bank_number: - type: string - bank_phone_number: - type: string - bank_branch_number: - type: string - external_transfer_memo: - type: string - clabe_number: - type: string - cbu_alias: - type: string - mobile_money_number: - type: string - mobile_money_provider: - type: string - crypto_address: - type: string - crypto_memo: - description: Deprecated. Use `external_transfer_memo` instead. - type: string - tax_id: - type: string - tax_id_name: - type: string - occupation: - type: string - employer_name: - type: string - employer_address: - type: string - language_code: - type: string - id_type: - type: string - id_country_code: - type: string - id_issue_date: - type: string - format: date - id_expiration_date: - type: string - format: date - id_number: - type: string - ip_address: - type: string - sex: - type: string - referral_id: - type: string - mobile_number_verification: - type: string - email_address_verification: - type: string - PutCustomerMultipartRequest: - type: object - properties: - id: - description: The ID of the customer as returned in the response of a previous PUT request. - type: string - account: - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - type: string - memo: - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - type: string - memo_type: - description: The type of memo used to identify a customer with a shared account. - type: string - enum: - - id - - hash - - text - type: - description: | - The type of action the customer is being KYCd for. - See the [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) documented in SEP-12 for more info. - For SEP-31 you can define your own types in the assets configuration. - For SEP-24 pre-defined value `sep24-customer` is used. - type: string - first_name: - type: string - last_name: - type: string - additional_name: - type: string - address_country_code: - type: string - state_or_province: - type: string - city: - type: string - postal_code: - type: string - address: - type: string - mobile_number: - type: string - email_address: - type: string - birth_date: - type: string - format: date - birth_place: - type: string - birth_country_code: - type: string - bank_name: - type: string - bank_account_number: - type: string - bank_account_type: - type: string - bank_number: - type: string - bank_phone_number: - type: string - bank_branch_number: - type: string - external_transfer_memo: - type: string - clabe_number: - type: string - cbu_alias: - type: string - mobile_money_number: - type: string - mobile_money_provider: - type: string - crypto_address: - type: string - crypto_memo: - description: Deprecated. Use `external_transfer_memo` instead. - type: string - tax_id: - type: string - tax_id_name: - type: string - occupation: - type: string - employer_name: - type: string - employer_address: - type: string - language_code: - type: string - id_type: - type: string - id_country_code: - type: string - id_issue_date: - type: string - format: date - id_expiration_date: - type: string - format: date - id_number: - type: string - photo_id_front: - type: string - format: binary - photo_id_back: - type: string - format: binary - notary_approval_of_photo_id: - type: string - format: binary - ip_address: - type: string - photo_proof_residence: - type: string - format: binary - sex: - type: string - photo_proof_of_income: - type: string - format: binary - proof_of_liveness: - type: string - format: binary - referral_id: - type: string - mobile_number_verification: - type: string - email_address_verification: - type: string - PutCustomerResponse: - type: object - properties: - id: - type: string - StatusSEP24: - type: string - description: Possible status value for SEP-24 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - Refunds: - type: object - properties: - amount_refunded: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - payments: - type: array - items: - type: object - properties: - id: - type: string - id_type: - type: string - enum: - - stellar - - external - amount: - $ref: '#/components/schemas/Amount' - fee: - $ref: '#/components/schemas/Amount' - requested_at: - type: string - format: date-time - refunded_at: - type: string - format: date-time - StellarTransaction: - type: object - required: - - id - - created_at - - envelope - - payments - properties: - id: - type: string - description: The ID of the transaction in the Stellar network. - memo: - type: string - description: The memo of the transaction in the Stellar network. - memo_type: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text - - hash - - id - created_at: - type: string - format: date-time - description: The time the transaction was registered in the Stellar network. - envelope: - type: string - description: The transaction envelope, containing all the transaction information. - payments: - type: array - items: - type: object - required: - - id - - payment_type - - source_account - - destination_account - - amount - properties: - id: - type: string - description: The ID of the payment in the Stellar Network. - payment_type: - type: string - description: The type of payment in the Stellar Network. - enum: - - payment - - path_payment - default: payment - source_account: - type: string - description: The account being debited in the Stellar Network. - destination_account: - type: string - description: The account being credited in the Stellar Network. - amount: - $ref: '#/components/schemas/Amount' - MemoType: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text id hash - TransactionSEP24: - type: object - required: - - id - - sep - - kind - - status - - amount_expected - - destination_account - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '24' - kind: - type: string - enum: - - deposit - - withdrawal - status: - $ref: '#/components/schemas/StatusSEP24' - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: if provided, this memo should be used for refund transactions - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - StatusSEP31: - type: string - description: Possible status value for SEP-31 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - StellarId: - type: object - description: | - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 Anchor, the `account` and `memo` fields should be used. - properties: - id: - type: string - description: The `id` of the customer registered through SEP-12. - account: - type: string - description: Either the Stellar account or Muxed account address of the on-chain entity. - memo: - type: string - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - TransactionSEP31: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '31' - kind: - type: string - enum: - - receive - status: - $ref: '#/components/schemas/StatusSEP31' - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - external_transaction_id: - type: string - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - Quote: - type: object - properties: - id: - type: string - sell_amount: - type: string - sell_asset: - type: string - buy_amount: - type: string - buy_asset: - type: string - expires_at: - type: string - format: date-time - price: - type: string - total_price: - type: string - creator: - $ref: '#/components/schemas/StellarId' - transaction_id: - type: string - created_at: - type: string - format: date-time - Customer: - type: object - properties: - id: - type: string - Event: - type: object - properties: - id: - type: string - type: - type: string - enum: - - transaction_created - - transaction_status_changed - - transaction_error - - quote_created - - customer_updated - description: | - The transaction event type. Can be one of the following: - - `transaction_created` - a transaction was created through the SEP endpoints. The payload is in the `transaction` field. - - `transaction_status_changed` - the status of a transaction has changed. The payload is in the `transaction` field. - - `transaction_error` - error processing the transaction. The payload is in the `transaction` field. - - `quote_created` - a quote was created via the SEP38 API. The payload is in the `quote` field. - timestamp: - type: string - format: date-time - payload: - type: object - properties: - transaction: - oneOf: - - $ref: '#/components/schemas/TransactionSEP24' - - $ref: '#/components/schemas/TransactionSEP31' - quote: - $ref: '#/components/schemas/Quote' - customer: - $ref: '#/components/schemas/Customer' - required: - - id - - type - - payload - - timestamp - examples: - SuccessKYC: - summary: The case when a customer has been successfully KYC'd and approved - value: - id: d1ce2f48-3ff1-495d-9240-7a50d806cfed - status: ACCEPTED - provided_fields: - first_name: - description: The customer's first name - type: string - status: ACCEPTED - last_name: - description: The customer's last name - type: string - status: ACCEPTED - email_address: - description: The customer's email address - type: string - status: ACCEPTED -x-tagGroups: - - name: Callbacks Server - tags: - - Unique Address - - Fees - - Rates - - Customers diff --git a/openapi/anchor-platform/versions/callbacks-3.0.0.yaml b/openapi/anchor-platform/versions/callbacks-3.0.0.yaml deleted file mode 100644 index dca0463215..0000000000 --- a/openapi/anchor-platform/versions/callbacks-3.0.0.yaml +++ /dev/null @@ -1,1215 +0,0 @@ -openapi: 3.1.0 -info: - version: 3.0.0 - description: | - The Synchronous Callbacks API specification for the Stellar Anchor Platform project. - - The Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The - anchor's responses to these requests affect the Platform responses to the client application. - title: Callbacks Server - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://callback.business-server.exampleanchor.com -tags: - - name: Unique Address - description: (optional) Provide a unique `stellar_address:memo` pair that will be used to correlate a Stellar payment 1-to-1 with a Platform resource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction. - - name: Rates - description: Requests containing data that can be used to provide exchange rates between on & off-chain assets. - - name: Customers - description: | - [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md) requests made from client - applications. -paths: - /rate: - get: - description: | - Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must - use exchange rates that are communicated to the client application requesting the transaction. When clients make - requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - - Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or - [firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the - client requests a firm rate. - - Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter - for this reason. - - Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, - either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either - `sell_asset` or `buy_asset` is a Stellar asset. - - - Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - - If the validation fails, the Platform will respond to the client application's request with a HTTP status - code of `502 Bad Gateway`. - - The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - - - if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. - - if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - - The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - tags: - - Rates - x-seps: - - SEP-31 - - SEP-38 - summary: Retrieve Rates - operationId: getRates - parameters: - - in: query - name: type - description: The type of rate requested. If `firm`, the response must include `rate.id` and `rate.expires_at`. - schema: - type: string - enum: - - indicative - - firm - required: true - - in: query - name: client_id - description: | - An identifier for the client application making the request. This ID can be used to offer different fees to different clients. - - Client IDs will be the Stellar public key the public key used to authenticate via SEP-10. Anchors must ensure - that the public key specified in the request matches a public key known to belong to the sending anchor. - - This parameter will only be specified if the client is authenticated via SEP-10. Anchors can define whether or not - authentication is required for fetching indicative rates. Firm rates always require authentication. - schema: - type: string - - in: query - name: sell_asset - description: | - The asset the client application will send to the anchor in exchange for `buy_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: buy_asset - description: | - The asset the that the anchor will send in exchange for `sell_asset` in - [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - schema: - type: string - required: true - - in: query - name: sell_amount - description: | - The amount of `sell_asset` the client application will send in exchange for `buy_asset`. Will not be used in - conjunction with `buy_amount`. - schema: - type: string - - in: query - name: buy_amount - description: | - The amount of `buy_asset` the anchor will send in exchange for `sell_asset`. Will not be used in conjunction - with `sell_amount`. - schema: - type: string - - in: query - name: country_code - description: | - The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the user's current address. - Anchors should expect this parameter to be provided if one of the assets of the buy/sell pair is fiat and it - is available in two or more countries. - schema: - type: string - - in: query - name: expire_after - description: | - The client's desired `expires_at` date and time for the quote that can be used if this is a firm quote. This should - be a [UTC ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) string. Anchors should return `400 Bad - Request` if an expiration date on or after the requested value cannot be provided. - schema: - type: string - - in: query - name: sell_delivery_method - description: | - The method the client or user will use to deliver `sell_asset` to the Anchor. This value may affect the - expiration and price provided. The values used for this parameter is defined in the application's configuration. - Will not be used in conjunction with `buy_delivery_method`. - schema: - type: string - - in: query - name: buy_delivery_method - description: | - The method the client or user wants used to receive `buy_asset` from the Anchor. This value may affect the - expiration and price provided. The values used for this parameter is defined in the application's configuration. - Will not be used in conjunction with `sell_delivery_method`. - schema: - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/RateResponse' - '422': - description: | - Unprocessable Entity. This status should be returned when the anchor understood the request but cannot - return a success response. - In these cases, the Platform will respond to the client application's request with a `400 Bad Request` - and include the error message provided by the anchor in the response body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '500': - description: Error. The Platform will respond to the client application with the same response code and body. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /customer: - get: - description: | - The request and response for this endpoint is identical to the - [`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) - request and response defined in SEP-12. - - This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 - [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - - If the server does not have a customer registered for the parameters sent in the request, it should return the - fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - - This allows clients to check whether the customers information was accepted, rejected, or still needs more info. - If the server still needs more info, or the server needs updated information, it should return the fields required. - tags: - - Customers - x-seps: - - SEP-6 - - SEP-12 - - SEP-31 - summary: Retrieve Customer's Info - operationId: getCustomer - parameters: - - in: query - name: id - description: The ID of the customer as returned in the response of a previous PUT request. - schema: - type: string - - in: query - name: account - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - schema: - type: string - - in: query - name: memo - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - schema: - type: string - - in: query - name: memo_type - description: The type of memo used to identify a customer with a shared account. - schema: - type: string - enum: - - id - - hash - - text - - in: query - name: type - description: | - The type of action the customer is being KYCd for. See the - [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) - documented in SEP-12. - schema: - type: string - - in: query - name: transaction_id - description: | - The transaction id with which the customer's info is associated. When information from the customer depends on the - transaction (e.g., more information is required for larger amounts) - schema: - type: string - - in: query - name: lang - description: | - Defaults to `en`. Language code specified using ISO 639-1. Human readable descriptions, choices, and - messages should be in this language. - schema: - type: string - responses: - '200': - description: | - Valid request. Customer either already exists or the customer identified by the parameters is new and must - provide the field values described in the response body. Response bodies are identical to the schema defined - in [SEP-12](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get). - content: - application/json: - schema: - $ref: '#/components/schemas/GetCustomerResponse' - examples: - SuccessKYC: - $ref: '#/components/examples/SuccessKYC' - '400': - description: Error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Not Found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - put: - tags: - - Customers - x-seps: - - SEP-6 - - SEP-12 - - SEP-24 - - SEP-31 - description: | - **The Anchor Platform does not persist any customer KYC data.** - - The request and response for this endpoint are identical to the - [`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) - request and response defined in SEP-12. - - Client applications make requests with the following request body, which is forwarded to the anchor. Anchors - must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will - be forwarded to the anchor as with the `application/json` content type. Requests containing - binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - summary: Create or Update Customer Info - operationId: putCustomer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PutCustomerRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PutCustomerMultipartRequest' - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/GetCustomerResponse' - '400': - description: Invalid data. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Not Found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /customer/{id}: - delete: - tags: - - Customers - x-seps: - - SEP-12 - - SEP-31 - description: | - The request for this endpoint is identical to the - [`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) - request defined in SEP-12. - - Delete the customer's data or queue the customers data for deletion. - summary: Delete Customer Data - operationId: delCustomer - parameters: - - in: path - name: id - schema: - type: string - required: true - responses: - '204': - description: Success. - '404': - description: Customer not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /event: - post: - tags: - - Events - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Receive an Event - operationId: postEvent - description: | - Receive a JSON object representing an event. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Event' - responses: - '200': - description: The event is successfully processed and ready to receive next event. The response body is empty. - '400': - description: The event is invalid or rejected. The response body contains the error message. -components: - schemas: - RateFeeDetailResponse: - type: object - properties: - name: - type: string - description: The name of the fee, for example `ACH fee`, `Brazilian conciliation fee`, `Service fee`, etc. - description: - type: string - description: A text describing the fee. - amount: - type: string - description: The amount of asset applied. If `fee.details` is provided, `sum(fee.details.amount)` should be equals `fee.total`. - required: - - name - - amount - RateFeeResponse: - type: object - description: An object describing the fees added on top of the rate provided via the `price` attribute. - properties: - total: - type: string - description: The total fee to be applied. - asset: - type: string - description: The asset the fee will be charged in. Must be represented in [Asset Identification Format](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#asset-identification-format). - details: - type: array - items: - $ref: '#/components/schemas/RateFeeDetailResponse' - required: - - total - - asset - RateResponse: - type: object - properties: - rate: - type: object - properties: - id: - type: string - description: ID of the firm quote. NOT USED when `type=indicative`. - expires_at: - type: string - format: date-time - description: Expiration for the quote. NOT USED when `type=indicative`. - price: - type: string - description: The conversion price offered by the anchor for one unit of `buy_asset` in terms of `sell_asset`, without including fees. In traditional finance, `buy_asset` would be referred to as the base asset and `sell_asset` as the counter asset. The formula `sell_amount - fee = price * buy_amount` must hold true ([ref](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#price-formulas)). - sell_amount: - type: string - description: The amount of `sell_asset` the anchor will exchange for `buy_asset`. It could be different from the `sell_amount` provided in the request, depending on how fees are applied by the Anchor. - buy_amount: - type: string - description: The amount of `buy_asset` the anchor will provide with `sell_asset`. It could be different from the `buy_amount` provided in the request, depending on how fees are applied by the Anchor. - fee: - $ref: '#/components/schemas/RateFeeResponse' - required: - - price - - sell_amount - - buy_amount - Error: - type: object - properties: - error: - type: string - id: - type: string - required: - - error - GetCustomerResponse: - type: object - required: - - status - properties: - id: - type: string - status: - type: string - enum: - - ACCEPTED - - PROCESSING - - NEEDS_INFO - - REJECTED - fields: - type: object - additionalProperties: - required: - - type - - description - properties: - type: - type: string - enum: - - string - - binary - - number - - date - description: - type: string - choices: - type: array - items: - type: string - optional: - type: boolean - provided_fields: - type: object - additionalProperties: - required: - - type - - description - properties: - type: - type: string - enum: - - string - - binary - - number - - date - description: - type: string - choices: - type: array - items: - type: string - optional: - type: boolean - status: - type: string - enum: - - ACCEPTED - - PROCESSING - - REJECTED - - VERIFICATION_REQUIRED - error: - type: string - message: - type: string - PutCustomerRequest: - type: object - properties: - id: - description: The ID of the customer as returned in the response of a previous PUT request. - type: string - account: - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - type: string - memo: - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - type: string - memo_type: - description: The type of memo used to identify a customer with a shared account. - type: string - enum: - - id - - hash - - text - type: - description: | - The type of action the customer is being KYCd for. - See the [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) documented in SEP-12 for more info. - For SEP-31 you can define your own types in the assets configuration. - For SEP-24 pre-defined value `sep24-customer` is used. - type: string - transaction_id: - description: | - The transaction id with which the customer's info is associated. When information from the customer depends on the - transaction (e.g., more information is required for larger amounts) - type: string - first_name: - type: string - last_name: - type: string - additional_name: - type: string - address_country_code: - type: string - state_or_province: - type: string - city: - type: string - postal_code: - type: string - address: - type: string - mobile_number: - type: string - email_address: - type: string - birth_date: - type: string - format: date - birth_place: - type: string - birth_country_code: - type: string - bank_name: - type: string - bank_account_number: - type: string - bank_account_type: - type: string - bank_number: - type: string - bank_phone_number: - type: string - bank_branch_number: - type: string - external_transfer_memo: - type: string - clabe_number: - type: string - cbu_alias: - type: string - mobile_money_number: - type: string - mobile_money_provider: - type: string - crypto_address: - type: string - crypto_memo: - description: Deprecated. Use `external_transfer_memo` instead. - type: string - tax_id: - type: string - tax_id_name: - type: string - occupation: - type: string - employer_name: - type: string - employer_address: - type: string - language_code: - type: string - id_type: - type: string - id_country_code: - type: string - id_issue_date: - type: string - format: date - id_expiration_date: - type: string - format: date - id_number: - type: string - ip_address: - type: string - sex: - type: string - referral_id: - type: string - mobile_number_verification: - type: string - email_address_verification: - type: string - PutCustomerMultipartRequest: - type: object - properties: - id: - description: The ID of the customer as returned in the response of a previous PUT request. - type: string - account: - description: The Stellar or Muxed Account authenticated with the Platform via SEP-10. - type: string - memo: - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - type: string - memo_type: - description: The type of memo used to identify a customer with a shared account. - type: string - enum: - - id - - hash - - text - type: - description: | - The type of action the customer is being KYCd for. - See the [Type Specification](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#type-specification) documented in SEP-12 for more info. - For SEP-31 you can define your own types in the assets configuration. - For SEP-24 pre-defined value `sep24-customer` is used. - type: string - first_name: - type: string - last_name: - type: string - additional_name: - type: string - address_country_code: - type: string - state_or_province: - type: string - city: - type: string - postal_code: - type: string - address: - type: string - mobile_number: - type: string - email_address: - type: string - birth_date: - type: string - format: date - birth_place: - type: string - birth_country_code: - type: string - bank_name: - type: string - bank_account_number: - type: string - bank_account_type: - type: string - bank_number: - type: string - bank_phone_number: - type: string - bank_branch_number: - type: string - external_transfer_memo: - type: string - clabe_number: - type: string - cbu_alias: - type: string - mobile_money_number: - type: string - mobile_money_provider: - type: string - crypto_address: - type: string - crypto_memo: - description: Deprecated. Use `external_transfer_memo` instead. - type: string - tax_id: - type: string - tax_id_name: - type: string - occupation: - type: string - employer_name: - type: string - employer_address: - type: string - language_code: - type: string - id_type: - type: string - id_country_code: - type: string - id_issue_date: - type: string - format: date - id_expiration_date: - type: string - format: date - id_number: - type: string - photo_id_front: - type: string - format: binary - photo_id_back: - type: string - format: binary - notary_approval_of_photo_id: - type: string - format: binary - ip_address: - type: string - photo_proof_residence: - type: string - format: binary - sex: - type: string - photo_proof_of_income: - type: string - format: binary - proof_of_liveness: - type: string - format: binary - referral_id: - type: string - mobile_number_verification: - type: string - email_address_verification: - type: string - StatusSEP24: - type: string - description: Possible status value for SEP-24 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - Amount: - type: object - required: - - amount - - asset - properties: - amount: - type: string - asset: - type: string - FeeDescription: - type: object - required: - - name - - amount - properties: - name: - type: string - amount: - type: string - description: - type: string - FeeDetails: - type: object - required: - - total - - asset - properties: - total: - type: string - asset: - type: string - details: - type: array - items: - $ref: '#/components/schemas/FeeDescription' - Refunds: - type: object - properties: - amount_refunded: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - payments: - type: array - items: - type: object - properties: - id: - type: string - id_type: - type: string - enum: - - stellar - - external - amount: - $ref: '#/components/schemas/Amount' - fee: - $ref: '#/components/schemas/Amount' - requested_at: - type: string - format: date-time - refunded_at: - type: string - format: date-time - StellarTransaction: - type: object - required: - - id - - created_at - - envelope - - payments - properties: - id: - type: string - description: The ID of the transaction in the Stellar network. - memo: - type: string - description: The memo of the transaction in the Stellar network. - memo_type: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text - - hash - - id - created_at: - type: string - format: date-time - description: The time the transaction was registered in the Stellar network. - envelope: - type: string - description: The transaction envelope, containing all the transaction information. - payments: - type: array - items: - type: object - required: - - id - - payment_type - - source_account - - destination_account - - amount - properties: - id: - type: string - description: The ID of the payment in the Stellar Network. - payment_type: - type: string - description: The type of payment in the Stellar Network. - enum: - - payment - - path_payment - default: payment - source_account: - type: string - description: The account being debited in the Stellar Network. - destination_account: - type: string - description: The account being credited in the Stellar Network. - amount: - $ref: '#/components/schemas/Amount' - MemoType: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text id hash - StellarId: - type: object - description: | - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - properties: - id: - type: string - description: The `id` of the customer registered through SEP-12. - account: - type: string - description: Either the Stellar account or Muxed account address of the on-chain entity. - memo: - type: string - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - TransactionSEP24: - type: object - required: - - id - - sep - - kind - - status - - amount_expected - - destination_account - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '24' - kind: - type: string - enum: - - deposit - - withdrawal - status: - $ref: '#/components/schemas/StatusSEP24' - type: - type: string - description: This field is always empty for SEP-24 transactions. - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - fee_details: - $ref: '#/components/schemas/FeeDetails' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - user_action_required_by: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: If provided, this memo should be used for refund transactions. - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The user that initiated the transaction is both the sender and receiver. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - StatusSEP31: - type: string - description: Possible status value for SEP-31 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - TransactionSEP31: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '31' - kind: - type: string - enum: - - receive - status: - $ref: '#/components/schemas/StatusSEP31' - type: - type: string - description: This field is always empty for SEP-31 transactions. - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - fee_details: - $ref: '#/components/schemas/FeeDetails' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - user_action_required_by: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: if provided, this memo should be used for refund transactions. - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - Quote: - type: object - properties: - id: - type: string - sell_amount: - type: string - sell_asset: - type: string - buy_amount: - type: string - buy_asset: - type: string - expires_at: - type: string - format: date-time - price: - type: string - total_price: - type: string - creator: - $ref: '#/components/schemas/StellarId' - transaction_id: - type: string - created_at: - type: string - format: date-time - Customer: - type: object - properties: - id: - type: string - Event: - type: object - properties: - id: - type: string - type: - type: string - enum: - - transaction_created - - transaction_status_changed - - quote_created - - customer_updated - description: | - The transaction event type. Can be one of the following: - - `transaction_created` - a transaction was created through the SEP endpoints. The payload is in the `transaction` field. - - `transaction_status_changed` - the status of a transaction has changed. The payload is in the `transaction` field. - - `quote_created` - a quote was created via the SEP38 API. The payload is in the `quote` field. - timestamp: - type: string - format: date-time - payload: - type: object - properties: - transaction: - oneOf: - - $ref: '#/components/schemas/TransactionSEP24' - - $ref: '#/components/schemas/TransactionSEP31' - quote: - $ref: '#/components/schemas/Quote' - customer: - $ref: '#/components/schemas/Customer' - required: - - id - - type - - payload - - timestamp - examples: - SuccessKYC: - summary: The case when a customer has been successfully KYC'd and approved - value: - id: d1ce2f48-3ff1-495d-9240-7a50d806cfed - status: ACCEPTED - provided_fields: - first_name: - description: The customer's first name - type: string - status: ACCEPTED - last_name: - description: The customer's last name - type: string - status: ACCEPTED - email_address: - description: The customer's email address - type: string - status: ACCEPTED -x-tagGroups: - - name: Callbacks Server - tags: - - Unique Address - - Rates - - Customers diff --git a/openapi/anchor-platform/versions/custody-2.8.4.yaml b/openapi/anchor-platform/versions/custody-2.8.4.yaml deleted file mode 100644 index f949b7e655..0000000000 --- a/openapi/anchor-platform/versions/custody-2.8.4.yaml +++ /dev/null @@ -1,279 +0,0 @@ -openapi: 3.1.0 -info: - version: 2.8.4 - title: Custody Server - description: | - The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the events service, payments to your accounts will trigger a HTTP callback made to your business server. - - If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the Platform API. - - Currently the only supported provider is Fireblocks. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://custody-server.exampleanchor.com -tags: - - name: Custody Transactions - description: Custody Server creates custody transaction record in DB. - - name: Payments - description: Custody Server calls the configured custody service to send payment. - - name: Refunds - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - name: Custody Unique Address - description: Custody Server calls the configured custody service to generate deposit address and memo. -paths: - /transactions: - post: - description: Custody Server creates custody transaction record in DB. - summary: Create Custody Transaction - operationId: createCustodyTransaction - tags: - - Custody Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - id: - description: SEP transaction ID. - type: string - memo: - description: Memo value, that is used to identify inbound or outbound payments. - type: string - memoType: - description: Type of memo, that is used to identify inbound or outbound payments. - type: string - enum: - - id - - hash - - text - protocol: - description: Protocol of SEP transaction. - type: string - enum: - - '6' - - '24' - - '31' - fromAccount: - description: Source Stellar account. - type: string - toAccount: - description: Destination Stellar account. - type: string - amount: - description: Amount of the asset, that is sent/received. - type: string - amountFee: - description: Fee of SEP transaction. - type: string - asset: - description: Asset, that is sent/received. - type: string - kind: - description: Kind of the SEP transaction. - type: string - enum: - - deposit - - withdrawal - - receive - responses: - '200': - description: Success. - content: - application/json: - schema: - type: object - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/payments: - post: - description: Custody Server calls the configured custody service to send payment. - summary: Send Payment - operationId: sendPayment - tags: - - Payments - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/refunds: - post: - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - summary: Send Refund - operationId: sendRefund - tags: - - Refunds - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - memo: - description: Memo value, that will be added to the refund payment. - type: string - memoType: - description: Type of memo, that will be added to the refund payment. - type: string - amount: - description: Amount, that will be refunded. - type: string - amountFee: - description: Fee of the refund. - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /assets/:asset/addresses: - post: - description: | - Custody Server calls the configured custody service to generate deposit address and memo. - - Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - summary: Generate Unique Address - operationId: generateUniqueAddress - tags: - - Custody Unique Address - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateUniqueAddressResponse' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' -components: - schemas: - CustodyError: - type: object - required: - - error - properties: - error: - type: string - SendPaymentResponse: - type: object - properties: - id: - type: string - description: External TX ID from custody service. - GenerateUniqueAddressResponse: - type: object - properties: - address: - description: Deposit address to which the client should send funds. - type: string - memo: - description: Memo value, that should be added to payment by the client. - type: string - memoType: - description: Type of memo, that should be added to payment by the client. - type: string - enum: - - id - - hash - - text diff --git a/openapi/anchor-platform/versions/custody-3.0.0.yaml b/openapi/anchor-platform/versions/custody-3.0.0.yaml deleted file mode 100644 index 969c197304..0000000000 --- a/openapi/anchor-platform/versions/custody-3.0.0.yaml +++ /dev/null @@ -1,279 +0,0 @@ -openapi: 3.1.0 -info: - version: 3.0.0 - title: Custody Server - description: | - The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the events service, payments to your accounts will trigger a HTTP callback made to your business server. - - If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the Platform API. - - Currently the only supported provider is Fireblocks. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://custody-server.exampleanchor.com -tags: - - name: Custody Transactions - description: Custody Server creates custody transaction record in DB. - - name: Payments - description: Custody Server calls the configured custody service to send payment. - - name: Refunds - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - name: Custody Unique Address - description: Custody Server calls the configured custody service to generate deposit address and memo. -paths: - /transactions: - post: - description: Custody Server creates custody transaction record in DB. - summary: Create Custody Transaction - operationId: createCustodyTransaction - tags: - - Custody Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - id: - description: SEP transaction ID. - type: string - memo: - description: Memo value, that is used to identify inbound or outbound payments. - type: string - memoType: - description: Type of memo, that is used to identify inbound or outbound payments. - type: string - enum: - - id - - hash - - text - protocol: - description: Protocol of SEP transaction. - type: string - enum: - - '6' - - '24' - - '31' - fromAccount: - description: Source Stellar account. - type: string - toAccount: - description: Destination Stellar account. - type: string - amount: - description: Amount of the asset, that is sent/received. - type: string - amountFee: - description: Fee of SEP transaction. - type: string - asset: - description: Asset, that is sent/received. - type: string - kind: - description: Kind of the SEP transaction. - type: string - enum: - - deposit - - withdrawal - - receive - responses: - '200': - description: Success. - content: - application/json: - schema: - type: object - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/payments: - post: - description: Custody Server calls the configured custody service to send payment. - summary: Send Payment - operationId: sendPayment - tags: - - Payments - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /transactions/:id/refunds: - post: - description: Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - summary: Send Refund - operationId: sendRefund - tags: - - Refunds - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - properties: - memo: - description: Memo value, that will be added to the refund payment. - type: string - memoType: - description: Type of memo, that will be added to the refund payment. - type: string - amount: - description: Amount, that will be refunded. - type: string - amountFee: - description: Fee of the refund. - type: string - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/SendPaymentResponse' - '400': - description: Invalid Request. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '404': - description: Custody Transaction is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '429': - description: Custody Service rate limit is exceeded. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - '503': - description: Custody Service is unavailable. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' - /assets/:asset/addresses: - post: - description: | - Custody Server calls the configured custody service to generate deposit address and memo. - - Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - summary: Generate Unique Address - operationId: generateUniqueAddress - tags: - - Custody Unique Address - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - requestBody: - content: - application/json: - schema: - type: object - responses: - '200': - description: Success. - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateUniqueAddressResponse' - '500': - description: Internal Server Error. - content: - application/json: - schema: - $ref: '#/components/schemas/CustodyError' -components: - schemas: - CustodyError: - type: object - required: - - error - properties: - error: - type: string - SendPaymentResponse: - type: object - properties: - id: - type: string - description: External TX ID from custody service. - GenerateUniqueAddressResponse: - type: object - properties: - address: - description: Deposit address to which the client should send funds. - type: string - memo: - description: Memo value, that should be added to payment by the client. - type: string - memoType: - description: Type of memo, that should be added to payment by the client. - type: string - enum: - - id - - hash - - text diff --git a/openapi/anchor-platform/versions/platform-2.8.4.yaml b/openapi/anchor-platform/versions/platform-2.8.4.yaml deleted file mode 100644 index 2e906e49a4..0000000000 --- a/openapi/anchor-platform/versions/platform-2.8.4.yaml +++ /dev/null @@ -1,596 +0,0 @@ -openapi: 3.1.0 -info: - version: 2.8.4 - title: Platform Server - description: | - The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its API. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://platform-server.exampleanchor.com -tags: - - name: Transactions - description: Transactions initiated by client applications via SEP APIs -paths: - /transactions: - get: - tags: - - Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Retrieve a List of Transactions - operationId: getTransactions - description: Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - parameters: - - in: query - name: sep - required: true - schema: - type: string - enum: - - '6' - - '24' - - '31' - description: Lookup transactions belonging to this SEP. - - in: query - name: order_by - schema: - type: string - enum: - - created_at - - transfer_received_at - default: created_at - description: |- - Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value. - I.e. when timestamps for 2 or more transactions is identical, they will be sorted by id. - - in: query - name: order - schema: - type: string - enum: - - asc - - desc - default: asc - description: |- - Specifies order. Note, that when the field is null, all transactions with null value will be last, regardless of soring order (NULLS LAST). - For example, transfer time may not be specified for some transactions, resulting into `transfer_received_at` being null. If so, transactions with non-null values will be sorted and returned first, followed by all transactions with null timestamps. - - in: query - name: statuses - schema: - type: array - items: - $ref: '#/components/schemas/StatusSEPAll' - description: Filters transactions for specified array of statuses. If not provided, filtering is disabled (default behavior) - - in: query - name: page_size - schema: - type: integer - default: 20 - description: Size of a single search page. Must be positive. - - in: query - name: page_number - schema: - type: integer - default: 0 - description: Page number to use for continuous search. Page count beings at 0. - responses: - '200': - description: Transaction found. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/TransactionListSEP6' - - $ref: '#/components/schemas/TransactionListSEP24' - - $ref: '#/components/schemas/TransactionListSEP31' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Transaction not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /transactions/{id}: - get: - tags: - - Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Retrieve a Transaction - operationId: getTransaction - description: Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - parameters: - - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Transaction found. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/TransactionSEP6' - - $ref: '#/components/schemas/TransactionSEP24' - - $ref: '#/components/schemas/TransactionSEP31' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Transaction not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -components: - schemas: - StatusSEPAll: - type: string - description: Possible status values for all transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - StatusSEP6: - type: string - description: Possible status value for SEP-6 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_customer_info_update - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - Amount: - type: object - required: - - amount - - asset - properties: - amount: - type: string - asset: - type: string - Refunds: - type: object - properties: - amount_refunded: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - payments: - type: array - items: - type: object - properties: - id: - type: string - id_type: - type: string - enum: - - stellar - - external - amount: - $ref: '#/components/schemas/Amount' - fee: - $ref: '#/components/schemas/Amount' - requested_at: - type: string - format: date-time - refunded_at: - type: string - format: date-time - StellarTransaction: - type: object - required: - - id - - created_at - - envelope - - payments - properties: - id: - type: string - description: The ID of the transaction in the Stellar network. - memo: - type: string - description: The memo of the transaction in the Stellar network. - memo_type: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text - - hash - - id - created_at: - type: string - format: date-time - description: The time the transaction was registered in the Stellar network. - envelope: - type: string - description: The transaction envelope, containing all the transaction information. - payments: - type: array - items: - type: object - required: - - id - - payment_type - - source_account - - destination_account - - amount - properties: - id: - type: string - description: The ID of the payment in the Stellar Network. - payment_type: - type: string - description: The type of payment in the Stellar Network. - enum: - - payment - - path_payment - default: payment - source_account: - type: string - description: The account being debited in the Stellar Network. - destination_account: - type: string - description: The account being credited in the Stellar Network. - amount: - $ref: '#/components/schemas/Amount' - MemoType: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text id hash - StellarId: - type: object - description: | - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 Anchor, the `account` and `memo` fields should be used. - properties: - id: - type: string - description: The `id` of the customer registered through SEP-12. - account: - type: string - description: Either the Stellar account or Muxed account address of the on-chain entity. - memo: - type: string - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - TransactionSEP6: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '6' - kind: - type: string - enum: - - deposit - - deposit-exchange - - withdrawal - - withdrawal-exchange - status: - $ref: '#/components/schemas/StatusSEP6' - type: - type: string - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: if provided, this memo should be used for refund transactions - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - TransactionListSEP6: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP6' - StatusSEP24: - type: string - description: Possible status value for SEP-24 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - TransactionSEP24: - type: object - required: - - id - - sep - - kind - - status - - amount_expected - - destination_account - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '24' - kind: - type: string - enum: - - deposit - - withdrawal - status: - $ref: '#/components/schemas/StatusSEP24' - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: if provided, this memo should be used for refund transactions - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - TransactionListSEP24: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP24' - StatusSEP31: - type: string - description: Possible status value for SEP-31 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - TransactionSEP31: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '31' - kind: - type: string - enum: - - receive - status: - $ref: '#/components/schemas/StatusSEP31' - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - external_transaction_id: - type: string - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - TransactionListSEP31: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP31' - Error: - type: object - properties: - error: - type: string - id: - type: string - required: - - error diff --git a/openapi/anchor-platform/versions/platform-3.0.0.yaml b/openapi/anchor-platform/versions/platform-3.0.0.yaml deleted file mode 100644 index 6be6b8dd2f..0000000000 --- a/openapi/anchor-platform/versions/platform-3.0.0.yaml +++ /dev/null @@ -1,664 +0,0 @@ -openapi: 3.1.0 -info: - version: 3.0.0 - title: Platform Server - description: | - The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its API. - license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html -servers: - - url: https://platform-server.exampleanchor.com -tags: - - name: Transactions - description: Transactions initiated by client applications via SEP APIs -paths: - /transactions: - get: - tags: - - Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Retrieve a List of Transactions - operationId: getTransactions - description: Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - parameters: - - in: query - name: sep - required: true - schema: - type: string - enum: - - '6' - - '24' - - '31' - description: Lookup transactions belonging to this SEP. - - in: query - name: order_by - schema: - type: string - enum: - - created_at - - transfer_received_at - - user_action_required_by - default: created_at - description: |- - Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value. - I.e. when timestamps for 2 or more transactions is identical, they will be sorted by id. - - in: query - name: order - schema: - type: string - enum: - - asc - - desc - default: asc - description: |- - Specifies order. Note, that when the field is null, all transactions with null value will be last, regardless of soring order (NULLS LAST). - For example, transfer time may not be specified for some transactions, resulting into `transfer_received_at` being null. If so, transactions with non-null values will be sorted and returned first, followed by all transactions with null timestamps. - - in: query - name: statuses - schema: - type: array - items: - $ref: '#/components/schemas/StatusSEPAll' - description: Filters transactions for specified array of statuses. If not provided, filtering is disabled (default behavior) - - in: query - name: page_size - schema: - type: integer - default: 20 - description: Size of a single search page. Must be positive. - - in: query - name: page_number - schema: - type: integer - default: 0 - description: Page number to use for continuous search. Page count beings at 0. - responses: - '200': - description: Transaction found. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/TransactionListSEP6' - - $ref: '#/components/schemas/TransactionListSEP24' - - $ref: '#/components/schemas/TransactionListSEP31' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Transaction not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /transactions/{id}: - get: - tags: - - Transactions - x-seps: - - SEP-6 - - SEP-24 - - SEP-31 - summary: Retrieve a Transaction - operationId: getTransaction - description: Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - parameters: - - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Transaction found. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/TransactionSEP6' - - $ref: '#/components/schemas/TransactionSEP24' - - $ref: '#/components/schemas/TransactionSEP31' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Transaction not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -components: - schemas: - StatusSEPAll: - type: string - description: Possible status values for all transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - StatusSEP6: - type: string - description: Possible status value for SEP-6 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_customer_info_update - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - Amount: - type: object - required: - - amount - - asset - properties: - amount: - type: string - asset: - type: string - FeeDescription: - type: object - required: - - name - - amount - properties: - name: - type: string - amount: - type: string - description: - type: string - FeeDetails: - type: object - required: - - total - - asset - properties: - total: - type: string - asset: - type: string - details: - type: array - items: - $ref: '#/components/schemas/FeeDescription' - Refunds: - type: object - properties: - amount_refunded: - $ref: '#/components/schemas/Amount' - amount_fee: - $ref: '#/components/schemas/Amount' - payments: - type: array - items: - type: object - properties: - id: - type: string - id_type: - type: string - enum: - - stellar - - external - amount: - $ref: '#/components/schemas/Amount' - fee: - $ref: '#/components/schemas/Amount' - requested_at: - type: string - format: date-time - refunded_at: - type: string - format: date-time - StellarTransaction: - type: object - required: - - id - - created_at - - envelope - - payments - properties: - id: - type: string - description: The ID of the transaction in the Stellar network. - memo: - type: string - description: The memo of the transaction in the Stellar network. - memo_type: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text - - hash - - id - created_at: - type: string - format: date-time - description: The time the transaction was registered in the Stellar network. - envelope: - type: string - description: The transaction envelope, containing all the transaction information. - payments: - type: array - items: - type: object - required: - - id - - payment_type - - source_account - - destination_account - - amount - properties: - id: - type: string - description: The ID of the payment in the Stellar Network. - payment_type: - type: string - description: The type of payment in the Stellar Network. - enum: - - payment - - path_payment - default: payment - source_account: - type: string - description: The account being debited in the Stellar Network. - destination_account: - type: string - description: The account being credited in the Stellar Network. - amount: - $ref: '#/components/schemas/Amount' - MemoType: - type: string - description: The memo type of the transaction in the Stellar network. Should be present if memo is not null. - enum: - - text id hash - StellarId: - type: object - description: | - StellarId's are objects that identify end-users and SEP-31 Sending Anchors, but not SEP-31 Receiving Anchors. - - For a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. - - For a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. - - For a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used. - properties: - id: - type: string - description: The `id` of the customer registered through SEP-12. - account: - type: string - description: Either the Stellar account or Muxed account address of the on-chain entity. - memo: - type: string - description: The memo value identifying a customer with a shared account, where the shared account is `account`. - TransactionSEP6: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '6' - kind: - type: string - enum: - - deposit - - deposit-exchange - - withdrawal - - withdrawal-exchange - status: - $ref: '#/components/schemas/StatusSEP6' - type: - type: string - description: The method the user used to deposit or withdraw offchain funds. - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - fee_details: - $ref: '#/components/schemas/FeeDetails' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - user_action_required_by: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - type: string - description: If provided, this memo should be used for refund transactions. - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The user that initiated the transaction is both the sender and receiver. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - TransactionListSEP6: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP6' - StatusSEP24: - type: string - description: Possible status value for SEP-24 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_user_transfer_start - - pending_user_transfer_complete - - pending_anchor - - pending_trust - - pending_user - - no_market - - too_small - - too_large - TransactionSEP24: - type: object - required: - - id - - sep - - kind - - status - - amount_expected - - destination_account - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '24' - kind: - type: string - enum: - - deposit - - withdrawal - status: - $ref: '#/components/schemas/StatusSEP24' - type: - type: string - description: This field is always empty for SEP-24 transactions. - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - fee_details: - $ref: '#/components/schemas/FeeDetails' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - user_action_required_by: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: If provided, this memo should be used for refund transactions. - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The user that initiated the transaction is both the sender and receiver. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - TransactionListSEP24: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP24' - StatusSEP31: - type: string - description: Possible status value for SEP-31 transactions - enum: - - incomplete - - completed - - refunded - - expired - - error - - pending_stellar - - pending_external - - pending_sender - - pending_receiver - - pending_transaction_info_update - - pending_customer_info_update - TransactionSEP31: - type: object - required: - - id - - sep - - kind - - status - - started_at - properties: - id: - type: string - sep: - type: string - enum: - - '31' - kind: - type: string - enum: - - receive - status: - $ref: '#/components/schemas/StatusSEP31' - type: - type: string - description: This field is always empty for SEP-31 transactions. - amount_expected: - $ref: '#/components/schemas/Amount' - amount_in: - $ref: '#/components/schemas/Amount' - amount_out: - $ref: '#/components/schemas/Amount' - fee_details: - $ref: '#/components/schemas/FeeDetails' - quote_id: - type: string - started_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - completed_at: - type: string - format: date-time - transfer_received_at: - type: string - format: date-time - user_action_required_by: - type: string - format: date-time - message: - type: string - refunds: - $ref: '#/components/schemas/Refunds' - stellar_transactions: - type: array - items: - $ref: '#/components/schemas/StellarTransaction' - source_account: - type: string - destination_account: - type: string - external_transaction_id: - type: string - memo: - type: string - memo_type: - $ref: '#/components/schemas/MemoType' - refund_memo: - description: if provided, this memo should be used for refund transactions. - type: string - refund_memo_type: - $ref: '#/components/schemas/MemoType' - client_domain: - type: string - client_name: - type: string - customers: - type: object - description: | - The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12), - this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer. - properties: - sender: - $ref: '#/components/schemas/StellarId' - receiver: - $ref: '#/components/schemas/StellarId' - creator: - $ref: '#/components/schemas/StellarId' - TransactionListSEP31: - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/TransactionSEP31' - Error: - type: object - properties: - error: - type: string - id: - type: string - required: - - error diff --git a/openapi/horizon/bundled.yml b/openapi/horizon/bundled.yml index 489347c29c..09fdd524ef 100644 --- a/openapi/horizon/bundled.yml +++ b/openapi/horizon/bundled.yml @@ -8,7 +8,7 @@ info: Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](https://developers.stellar.org/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. - This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). + This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). Before we begin, it's worth reiterating the sentiment echoed in the [Core Node](https://developers.stellar.org/network/core-node) documentation: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead manages its own, pared-down version of Stellar Core optimized for its own subset of needs (we'll refer to this as a "Captive Core" instance). termsOfService: https://stellar.org/terms-of-service diff --git a/openapi/horizon/main.yml b/openapi/horizon/main.yml index c3d7f74643..47f74dda81 100644 --- a/openapi/horizon/main.yml +++ b/openapi/horizon/main.yml @@ -8,7 +8,7 @@ info: Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](https://developers.stellar.org/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. - This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). + This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/stellar-horizon/blob/main/DEVELOPING.md). Before we begin, it's worth reiterating the sentiment echoed in the [Core Node](https://developers.stellar.org/network/core-node) documentation: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead manages its own, pared-down version of Stellar Core optimized for its own subset of needs (we'll refer to this as a "Captive Core" instance). termsOfService: https://stellar.org/terms-of-service diff --git a/openapi/stellar-disbursement-platform/bundled.yaml b/openapi/stellar-disbursement-platform/bundled.yaml index b6db507441..6c1705c040 100644 --- a/openapi/stellar-disbursement-platform/bundled.yaml +++ b/openapi/stellar-disbursement-platform/bundled.yaml @@ -170,11 +170,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -262,11 +257,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -338,11 +328,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer x-codegen-request-body-name: body /reset-password: post: @@ -385,11 +370,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer x-codegen-request-body-name: body /disbursements: get: @@ -427,7 +407,7 @@ paths: type: string - name: status in: query - description: Exact match on the status of the disbursement. + description: Comma-separated list of disbursement statuses to filter by. required: false style: form explode: true @@ -478,7 +458,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -768,7 +748,7 @@ paths: tags: - Disbursements summary: List All Disbursement Receivers - description: Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination. + description: Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination and sorting. operationId: ListAllDisbursementReceivers parameters: - name: id @@ -787,6 +767,7 @@ paths: explode: true schema: type: number + default: 1 - name: page_limit in: query description: The number of records to return per page. @@ -795,6 +776,31 @@ paths: explode: true schema: type: number + default: 20 + - name: sort + in: query + description: Field used to sort receivers + required: false + style: form + explode: true + schema: + type: string + default: updated_at + enum: + - updated_at + - created_at + - name: direction + in: query + description: Direction for sorting receivers. + required: false + style: form + explode: true + schema: + type: string + default: desc + enum: + - asc + - desc responses: '200': description: A list of Disbursement Receivers @@ -1133,7 +1139,7 @@ paths: type: string - name: status in: query - description: Exact match on the status of the disbursement. + description: Comma-separated list of disbursement statuses to filter by. required: false style: form explode: true @@ -1178,7 +1184,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1206,6 +1212,25 @@ paths: description: Exports a CSV file of payments. operationId: exportPaymentsCSV parameters: + - name: q + in: query + description: Search payments by ID, external_payment_id, receiver wallet address, or disbursement name. + required: false + style: form + explode: true + schema: + type: string + - name: type + in: query + description: Type of payments + required: false + style: form + explode: true + schema: + type: string + enum: + - DIRECT + - DISBURSEMENT - name: status in: query description: Exact match on the status of the payment. @@ -1250,8 +1275,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1261,7 +1287,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1332,8 +1358,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1343,7 +1370,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1368,7 +1395,7 @@ paths: tags: - Payments summary: List All Payments - description: Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information. + description: Returns all individual payments matching the request criteria. This endpoint supports pagination, and filtering on payment status, type, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information. operationId: ListAllPayments parameters: - name: page @@ -1380,6 +1407,14 @@ paths: schema: type: number default: 1 + - name: q + in: query + description: Search payments by ID, external_payment_id, receiver wallet address, or disbursement name. + required: false + style: form + explode: true + schema: + type: string - name: type in: query description: Type of payments @@ -1389,8 +1424,8 @@ paths: schema: type: string enum: - - direct - - disbursement + - DIRECT + - DISBURSEMENT - name: page_limit in: query description: Define how many results will be returned in the response. @@ -1415,6 +1450,7 @@ paths: - PAUSED - SUCCESS - FAILED + - CANCELED example: DRAFT - name: receiver_id in: query @@ -1451,8 +1487,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1462,7 +1499,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1532,7 +1569,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DirectPayment' + $ref: '#/components/schemas/Payment' '400': description: Bad Request $ref: '#/components/responses/BadRequestResponse' @@ -1637,6 +1674,128 @@ paths: message: Payment not found security: - BearerAuth: [] + /payments/retry: + patch: + tags: + - Payments + summary: Retry Payments + description: Retries failed payments by ID. + operationId: RetryPayments + requestBody: + content: + application/json: + schema: + type: object + required: + - payment_ids + properties: + payment_ids: + type: array + items: + type: string + example: + payment_ids: + - 9f687f8f-1f8f-4c8a-8e0f-1e67ed7c1330 + - 6c2b9f20-53fd-4f1b-b7e2-9a2b1eb1d7c0 + required: true + responses: + '200': + description: Payments retried successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: Payments retried successfully + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] + /payments/{id}/status: + patch: + tags: + - Payments + summary: Update Payment Status + description: Cancels a payment by setting its status to `CANCELED`. + operationId: UpdatePaymentStatus + parameters: + - name: id + in: path + description: ID of the `Payment`. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - status + properties: + status: + type: string + enum: + - CANCELED + example: + status: CANCELED + required: true + responses: + '200': + description: Payment updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: Payment canceled + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + '404': + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /receivers/verification-types: + get: + tags: + - Receivers + summary: List Verification Types + description: Returns the supported receiver verification types. + operationId: ListReceiverVerificationTypes + responses: + '200': + description: A list of verification types + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VerificationField' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] /receivers: get: tags: @@ -1711,8 +1870,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1722,7 +1882,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1942,11 +2102,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -2025,6 +2180,145 @@ paths: security: - BearerAuth: [] x-codegen-request-body-name: body + /receivers/{receiver_id}/wallets/{receiver_wallet_id}: + patch: + tags: + - Receivers + summary: Update Receiver Wallet + description: Updates a receiver wallet's Stellar address and memo for user-managed wallets. + operationId: UpdateReceiverWallet + parameters: + - name: receiver_id + in: path + description: ID of the `Receiver`. + required: true + style: simple + explode: false + schema: + type: string + - name: receiver_wallet_id + in: path + description: ID of the receiver wallet. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - stellar_address + properties: + stellar_address: + type: string + description: Stellar account or contract address for the receiver wallet. + stellar_memo: + type: string + description: Optional memo for the Stellar address. + example: + stellar_address: GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL + stellar_memo: '12345' + required: true + responses: + '200': + description: Receiver wallet updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ReceiverWallet' + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + '404': + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /receivers/wallets/{receiver_wallet_id}/status: + patch: + tags: + - Receivers + summary: Update Receiver Wallet Status + description: Updates a receiver wallet's status. Only `READY` is supported. + operationId: UpdateReceiverWalletStatus + parameters: + - name: receiver_wallet_id + in: path + description: ID of the receiver wallet. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - status + properties: + status: + type: string + enum: + - READY + example: + status: READY + required: true + responses: + '200': + description: Receiver wallet status updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + '404': + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /registration-contact-types: + get: + tags: + - Disbursements + summary: List Registration Contact Types + description: Returns the supported registration contact types for disbursement instructions. + operationId: ListRegistrationContactTypes + responses: + '200': + description: A list of registration contact types + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RegistrationContactType' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] /statistics: get: tags: @@ -2067,7 +2361,7 @@ paths: message: Not authorized security: - BearerAuth: [] - /statistics/disbursements/{id}: + /statistics/{id}: get: tags: - Statistics @@ -2131,99 +2425,55 @@ paths: error: Forbidden security: - BearerAuth: [] - /wallet-registration/start: + /sep24-interactive-deposit/info: get: tags: - Registration - summary: Start Wallet Registration - description: This is the endpoint the browser reaches with the first token so that the receiver can confirm their verification information through a webflow. Requires a valid SEP-24 token in the request. - operationId: StartWalletRegistration - parameters: - - name: token - in: query - description: The SEP-24 token used for authentication - required: true - style: form - explode: true - schema: - type: string - - name: transaction_id - in: query - description: The transaction id associated with the SEP-24 token - required: true - style: form - explode: true - schema: - type: string + summary: Get Receiver Registration Info + description: Returns the registration context for the receiver, including organization details and reCAPTCHA configuration. + operationId: GetReceiverRegistrationInfo responses: '200': - description: Token is valid and the webpage will be loaded normally. - content: - text/html: - schema: - type: string - description: HTML page content - '400': - description: Bad Request + description: Registration context content: - text/html: + application/json: schema: type: object properties: - error: + privacy_policy_link: type: string - description: Details about the error - extras: - type: object - properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer - '401': - description: Unauthorized - content: - text/html: - schema: - type: object - properties: - error: + organization_name: + type: string + organization_logo: + type: string + truncated_contact_info: + type: string + is_registered: + type: boolean + is_recaptcha_disabled: + type: boolean + recaptcha_site_key: type: string - extras: - type: object - properties: - status: - type: number - message: - type: string - example: - error: Not authorized - extras: - status: 401 - message: Not authorized - application/json: example: - error: Not authorized - extras: - status: 401 - message: Not authorized - /wallet-registration/otp: + privacy_policy_link: https://example.com/privacy + organization_name: Stellar Aid + organization_logo: https://example.com/logo.png + truncated_contact_info: '******1234' + is_registered: false + is_recaptcha_disabled: false + recaptcha_site_key: 6Lc...site_key + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP24Auth: [] + /sep24-interactive-deposit/otp: post: tags: - Registration summary: Send One-Time Passcode description: This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header. operationId: SendOneTimePasscode - parameters: - - name: Authorization - in: header - description: 'SEP-24 token for authorization (Format: ''Bearer {token}'')' - required: true - style: simple - explode: false - schema: - type: string requestBody: description: Object containing phone number content: @@ -2241,7 +2491,7 @@ paths: description: Email to which the OTP will be sent. Either `phone_number` or `email` is required. recaptcha_token: type: string - description: Token for reCAPTCHA validation + description: Token for reCAPTCHA validation (required unless reCAPTCHA is disabled). required: true responses: '200': @@ -2249,7 +2499,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MessageResponse' + type: object + properties: + message: + type: string + verification_field: + $ref: '#/components/schemas/VerificationField' + example: + message: if your phone number is registered, you'll receive an OTP + verification_field: DATE_OF_BIRTH '400': description: Bad Request content: @@ -2263,11 +2521,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -2294,39 +2547,16 @@ paths: extras: status: 401 message: Not authorized - '429': - description: An OTP was sent to the given user recently and hasn't expired yet. Only after expired it will be sent to the user again. - content: - application/json: - schema: - type: object - properties: - error: - type: string - extras: - type: object - properties: - code: - type: string - details: - type: string + security: + - SEP24Auth: [] x-codegen-request-body-name: body - /wallet-registration/verification: + /sep24-interactive-deposit/verification: post: tags: - Registration summary: Verify Receiver Registration description: This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request. operationId: VerifyReceiverRegistration - parameters: - - name: Authorization - in: header - description: 'SEP-24 token for authorization (Format: ''Bearer {token}'')' - required: true - style: simple - explode: false - schema: - type: string requestBody: description: Verification data including phone_number/email, OTP, verification value, and reCAPTCHA token content: @@ -2358,11 +2588,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -2389,7 +2614,56 @@ paths: extras: status: 401 message: Not authorized + security: + - SEP24Auth: [] x-codegen-request-body-name: body + /wallet-registration/start: + get: + tags: + - Registration + summary: Start Wallet Registration + description: Serves the SEP-24 interactive registration UI. + operationId: StartWalletRegistration + parameters: + - name: token + in: query + description: SEP-24 token for authorization. + required: true + style: form + explode: true + schema: + type: string + - name: transaction_id + in: query + description: SEP-24 transaction ID. + required: true + style: form + explode: true + schema: + type: string + - name: lang + in: query + description: Optional language override for the webview. + required: false + style: form + explode: true + schema: + type: string + responses: + '200': + description: HTML webview for receiver registration. + content: + text/html: + schema: + type: string + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP24QueryAuth: [] /.well-known/stellar.toml: get: tags: @@ -2403,11 +2677,11 @@ paths: content: text/toml: example: | - ACCOUNTS=["GBC2HVWFIFN7WJHFORVBCDKJORXXXXXXXXXXXXXXXXXXXXXXXX", "GDA34JZ26FZY64XCSY46CUNSHLX762LHJXQXXXXXXXXXXXXXXXXXXXXXXXX"] SIGNING_KEY="GDA34JZ26FZY64XCSY46XXXXXXXXXXXXXXXXXXXXXXXX" NETWORK_PASSPHRASE="Test SDF Network ; September 2015" HORIZON_URL="https://horizon-testnet.stellar.org" WEB_AUTH_ENDPOINT="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/auth" TRANSFER_SERVER_SEP0024="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep24" + ACCOUNTS=["GBC2HVWFIFN7WJHFORVBCDKJORXXXXXXXXXXXXXXXXXXXXXXXX", "GDA34JZ26FZY64XCSY46CUNSHLX762LHJXQXXXXXXXXXXXXXXXXXXXXXXXX"] SIGNING_KEY="GDA34JZ26FZY64XCSY46XXXXXXXXXXXXXXXXXXXXXXXX" NETWORK_PASSPHRASE="Test SDF Network ; September 2015" HORIZON_URL="https://horizon-testnet.stellar.org" WEB_AUTH_ENDPOINT="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep10/auth" TRANSFER_SERVER_SEP0024="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep24" [[DOCUMENTATION]] ORG_NAME="Stellar Aid" [[CURRENCIES]] code = "EUROC" issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" is_asset_anchored = true anchor_asset_type = "fiat" status = "live" desc = "EUROC" [[CURRENCIES]] code = "USDC" issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" is_asset_anchored = true anchor_asset_type = "fiat" status = "live" desc = "USDC" - /WEB_AUTH_ENDPOINT: + /sep10/auth: get: tags: - Registration @@ -2417,15 +2691,23 @@ paths: parameters: - name: account in: query - description: The Client Account, which can be a stellar account (G...) or muxed account (M...) that the Client wishes to authenticate with the Server.. + description: The client account (G...) that the client wishes to authenticate with the server. required: true style: form explode: true schema: type: string - - name: memo + - name: memo + in: query + description: The memo to attach to the challenge transaction. Only permitted if a Stellar account (G...) is used. The memo must be of type id. Other memo types are not supported. + required: false + style: form + explode: true + schema: + type: string + - name: home_domain in: query - description: The memo to attach to the challenge transaction. Only permitted if a Stellar account (G...) is used. The memo must be of type id. Other memo types are not supported. + description: Home domain for SEP-10. Defaults to the server base domain if omitted. required: false style: form explode: true @@ -2433,8 +2715,8 @@ paths: type: string - name: client_domain in: query - description: a Client Domain. Need to be supplied by all Clients/Wallets. - required: true + description: Client domain for wallet attribution. Required when SEP-10 client attribution is enabled (default). + required: false style: form explode: true schema: @@ -2458,27 +2740,8 @@ paths: transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAfheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3Ag== network_passphrase: Test SDF Network ; September 2015 '400': - description: If some information was missing or invalid. - content: - application/json: - schema: - type: object - properties: - error: - type: string - extras: - type: object - properties: - account: - type: string - example: - error: Bad request. - extras: - account: account cannot be empty - example: - error: Bad request. - extras: - account: account cannot be empty + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' post: tags: - Registration @@ -2487,7 +2750,15 @@ paths: operationId: ProvideSignedChallengeTransaction requestBody: content: - '*/*': + application/json: + schema: + type: object + properties: + transaction: + type: string + example: + transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAvheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3AsiYk3UAAABArIrkvqmA0V9lIZcVyCUdja6CiwkPwsV8BfI4CZOyR1Oq7ysvNJWwY0G42dpxN9OP1qz4dum8apG2hqvxVWjkDQ== + application/x-www-form-urlencoded: schema: type: object properties: @@ -2495,7 +2766,7 @@ paths: type: string example: transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAvheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3AsiYk3UAAABArIrkvqmA0V9lIZcVyCUdja6CiwkPwsV8BfI4CZOyR1Oq7ysvNJWwY0G42dpxN9OP1qz4dum8apG2hqvxVWjkDQ== - required: false + required: true responses: '200': description: SEP-10 handshake was successful. @@ -2510,21 +2781,60 @@ paths: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJHQTZVSVhYUEVXWUZJTE5VSVdBQzM3WTRRUEVaTVFWREpIREtWV0ZaSjJLQ1dVQklVNUlYWk5EQSIsImp0aSI6IjE0NGQzNjdiY2IwZTcyY2FiZmRiZGU2MGVhZTBhZDczM2NjNjVkMmE2NTg3MDgzZGFiM2Q2MTZmODg1MTkwMjQiLCJpc3MiOiJodHRwczovL2ZsYXBweS1iaXJkLWRhcHAuZmlyZWJhc2VhcHAuY29tLyIsImlhdCI6MTUzNDI1Nzk5NCwiZXhwIjoxNTM0MzQ0Mzk0fQ.8nbB83Z6vGBgC1X9r3N6oQCFTBzDiITAfCJasRft0z0 example: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJHQTZVSVhYUEVXWUZJTE5VSVdBQzM3WTRRUEVaTVFWREpIREtWV0ZaSjJLQ1dVQklVNUlYWk5EQSIsImp0aSI6IjE0NGQzNjdiY2IwZTcyY2FiZmRiZGU2MGVhZTBhZDczM2NjNjVkMmE2NTg3MDgzZGFiM2Q2MTZmODg1MTkwMjQiLCJpc3MiOiJodHRwczovL2ZsYXBweS1iaXJkLWRhcHAuZmlyZWJhc2VhcHAuY29tLyIsImlhdCI6MTUzNDI1Nzk5NCwiZXhwIjoxNTM0MzQ0Mzk0fQ.8nbB83Z6vGBgC1X9r3N6oQCFTBzDiITAfCJasRft0z0 - '401': - description: Unauthorized + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + x-codegen-request-body-name: body + /sep24/info: + get: + tags: + - Registration + summary: SEP-24 Info + description: Returns supported assets and feature flags for SEP-24 registration deposits. + operationId: GetSEP24Info + responses: + '200': + description: SEP-24 info response content: application/json: schema: type: object properties: - error: - type: string - example: - error: The provided transaction is not valid - example: - error: The provided transaction is not valid - x-codegen-request-body-name: body - /TRANSFER_SERVER_SEP0024/transactions/deposit/interactive: + deposit: + type: object + additionalProperties: + type: object + properties: + enabled: + type: boolean + min_amount: + type: number + max_amount: + type: number + withdraw: + type: object + additionalProperties: + type: object + properties: + enabled: + type: boolean + min_amount: + type: number + max_amount: + type: number + fee: + type: object + properties: + enabled: + type: boolean + features: + type: object + properties: + account_creation: + type: boolean + claimable_balances: + type: boolean + /sep24/transactions/deposit/interactive: post: tags: - Registration @@ -2537,11 +2847,58 @@ paths: externalDocs: description: Find more info here url: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-2 + requestBody: + content: + application/json: + schema: + type: object + required: + - asset_code + properties: + asset_code: + type: string + description: Stellar asset code for the deposit. + account: + type: string + description: Stellar account for the deposit; defaults to the SEP-10 subject. + lang: + type: string + description: Language for the interactive flow. + claimable_balance_supported: + type: string + description: Indicates if claimable balances are supported. + example: + asset_code: USDC + account: GACW7NONV43MZIFHCOKCQJAKSJSISSICFVUJ2C6EZIW5773OU3HD64VI + lang: en + application/x-www-form-urlencoded: + schema: + type: object + required: + - asset_code + properties: + asset_code: + type: string + description: Stellar asset code for the deposit. + account: + type: string + description: Stellar account for the deposit; defaults to the SEP-10 subject. + lang: + type: string + description: Language for the interactive flow. + claimable_balance_supported: + type: string + description: Indicates if claimable balances are supported. + example: + asset_code: USDC + account: GACW7NONV43MZIFHCOKCQJAKSJSISSICFVUJ2C6EZIW5773OU3HD64VI + lang: en + required: false responses: '200': description: An anchor requires the user to fill out information on a webpage hosted by the anchor. content: - '*/*': + application/json: schema: type: object properties: @@ -2557,6 +2914,14 @@ paths: type: string description: The anchor's internal ID for this deposit / withdrawal request. The wallet will use this ID to query the /transaction endpoint to check status of the request. example: 82fhs729f63dh0v4 + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP10Auth: [] /profile: get: tags: @@ -2577,7 +2942,7 @@ paths: tags: - Profile summary: Update User Profile - description: 'Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request.' + description: 'Updates the profile details of the logged in user. Note: all fields are optional but at least one should be sent in the request.' operationId: UpdateUserProfile requestBody: content: @@ -2591,13 +2956,10 @@ paths: type: string email: type: string - password: - type: string example: first_name: FirstName last_name: LastName email: email@email.com - password: mysecret required: false responses: '200': @@ -2649,6 +3011,50 @@ paths: error: Forbidden security: - BearerAuth: [] + /profile/reset-password: + patch: + tags: + - Profile + summary: Reset Password + description: Updates the password for the logged in user. + operationId: ResetUserPassword + requestBody: + content: + application/json: + schema: + type: object + required: + - current_password + - new_password + properties: + current_password: + type: string + new_password: + type: string + example: + current_password: currentPassword123! + new_password: newPassword123! + required: true + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: user password updated successfully + '400': + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] x-codegen-request-body-name: body /organization: get: @@ -2823,11 +3229,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer security: - BearerAuth: [] x-codegen-request-body-name: body @@ -3010,11 +3411,44 @@ paths: /wallets: get: tags: - - Organization - Wallets summary: Get All Wallets - description: Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets. + description: Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. By default, soft-deleted wallets are excluded from the response. Use the `include_deleted` parameter to include them. operationId: GetAllWallets + parameters: + - name: include_deleted + in: query + description: When set to `true`, includes soft-deleted wallets in the response. When `false` or omitted, only non-deleted wallets are returned. + required: false + style: form + explode: true + schema: + type: boolean + default: false + - name: enabled + in: query + description: Filter wallets by enabled/disabled status. + required: false + style: form + explode: true + schema: + type: boolean + - name: user_managed + in: query + description: Filter by user-managed wallets. + required: false + style: form + explode: true + schema: + type: boolean + - name: supported_assets + in: query + description: Comma-separated list of asset codes or IDs to filter wallets by supported assets (max 20). + required: false + style: form + explode: true + schema: + type: string responses: '200': description: A list of wallets @@ -3024,6 +3458,9 @@ paths: type: array items: $ref: '#/components/schemas/Wallet' + '400': + description: Bad request - validation errors + $ref: '#/components/responses/BadRequestResponse' '401': description: Unauthorized content: @@ -3067,7 +3504,6 @@ paths: - BearerAuth: [] post: tags: - - Organization - Wallets summary: Create Wallet description: Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains. @@ -3110,7 +3546,6 @@ paths: /wallets/{id}: patch: tags: - - Organization - Wallets summary: Update Wallet description: 'This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement.' @@ -3129,28 +3564,59 @@ paths: content: application/json: schema: - required: - - enabled - type: object - properties: - enabled: - type: boolean - description: The enabled status of the wallet - example: true + $ref: '#/components/schemas/UpdateWalletRequest' required: true responses: '200': description: Wallet updated successfully content: - '*/*': + application/json: schema: - $ref: '#/components/schemas/MessageResponse' + $ref: '#/components/schemas/Wallet' '400': description: Bad request, usually caused by the `enabled` field missing from the request body. $ref: '#/components/responses/BadRequestResponse' + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + '404': + description: Wallet not found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + delete: + tags: + - Wallets + summary: Delete Wallet + description: Soft deletes a wallet provider. + operationId: DeleteWallet + parameters: + - name: id + in: path + description: ID of the wallet to delete + required: true + style: simple + explode: false + schema: + type: string + responses: + '204': + description: Wallet deleted successfully + content: {} + '401': + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + '403': + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' '404': description: Wallet not found $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] /users: get: tags: @@ -3820,11 +4286,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer '401': description: Unauthorized content: @@ -4346,8 +4807,21 @@ components: type: string description: The name of the disbursement example: disbursement-june-29 + receiver_registration_message_template: + type: string + description: 'The custom template used to send invitations to receivers. The `default` message isn''t returned. In the message''s content it''s possible to add the following template variables: `{{.OrganizationName}}` which is the Organization Name configured and `{{.RegistrationLink}}` which is the link generated by SDP to send to the receiver (in case this is not present in the message, it''s automatically appended at the end).' + example: You have a payment waiting for you from {{.OrganizationName}}. Click {{.RegistrationLink}} to register. + registration_contact_type: + $ref: '#/components/schemas/RegistrationContactType' status: $ref: '#/components/schemas/DisbursementStatus' + verification_field: + $ref: '#/components/schemas/VerificationField' + status_history: + $ref: '#/components/schemas/DisbursementStatusHistory' + file_name: + type: string + example: disbursement-feb-03-2023.csv created_at: type: string description: The creation timestamp of the disbursement @@ -4605,12 +5079,22 @@ components: $ref: '#/components/schemas/PaymentStatus' status_history: $ref: '#/components/schemas/PaymentStatusHistory' + type: + type: string + description: The type of the payment. + enum: + - DISBURSEMENT + - DIRECT disbursement: $ref: '#/components/schemas/DisbursementLite' asset: $ref: '#/components/schemas/Asset' receiver_wallet: $ref: '#/components/schemas/ReceiverWalletLite' + external_payment_id: + type: string + description: Optional external payment identifier provided by the client. + example: payment-001 created_at: type: string format: date-time @@ -4867,14 +5351,33 @@ components: stellar_address: type: string example: GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL + stellar_memo: + type: string + stellar_memo_type: + type: string + sep24_transaction_id: + type: string created_at: type: string example: '2023-02-03T10:45:51.000Z' updated_at: type: string example: '2023-02-03T10:45:51.000Z' + invitation_sent_at: + type: string + example: '2023-02-09T10:45:51.000Z' status: $ref: '#/components/schemas/ReceiversWalletStatus' + status_history: + type: array + items: + $ref: '#/components/schemas/ReceiversWalletStatusHistoryEntry' + otp_confirmed_at: + type: string + format: date-time + example: '2023-02-10T10:45:51Z' + otp_confirmed_with: + type: string ReceiverWalletsCounters: type: object properties: @@ -5012,6 +5515,18 @@ components: homepage: type: string example: https://vibrantapp.com + sep_10_client_domain: + type: string + example: api-dev.vibrantapp.com + deep_link_schema: + type: string + example: https://vibrantapp.com/sdp-dev + enabled: + type: boolean + example: true + user_managed: + type: boolean + example: false ReceiverRegistrationRequest: type: object properties: @@ -5590,6 +6105,8 @@ components: required: - amount - asset + - receiver + - wallet properties: amount: type: string @@ -5605,16 +6122,18 @@ components: enum: - native - classic + - contract + - fiat description: Asset type (use either id or type) code: type: string - description: Asset code + description: Asset code (required for classic and fiat assets) issuer: type: string description: Asset issuer address (required for classic assets) contract_id: type: string - description: Contract ID + description: Contract ID (required for contract assets) description: Asset reference - specify either id or type with required fields receiver: type: object @@ -5630,7 +6149,7 @@ components: description: Receiver phone number wallet_address: type: string - description: Receiver wallet address + description: Receiver wallet address (Stellar account or contract) description: Receiver reference - specify exactly one identifier wallet: type: object @@ -5640,7 +6159,7 @@ components: description: Wallet ID address: type: string - description: Wallet address + description: Wallet address (Stellar account or contract) description: Wallet reference - specify either id or address external_payment_id: type: string @@ -5827,7 +6346,7 @@ components: - type assets_ids: type: array - description: + description: | Legacy: Array of asset IDs (cannot be used with assets field) items: type: string @@ -5893,7 +6412,7 @@ components: UnauthorizedResponse: description: Unauthorized content: - '*/*': + application/json: schema: type: object properties: @@ -5906,12 +6425,6 @@ components: type: number message: type: string - example: - error: Not authorized - extras: - status: 401 - message: Not authorized - application/json: example: error: Not authorized extras: @@ -5920,21 +6433,18 @@ components: ForbiddenResponse: description: Forbidden content: - '*/*': + application/json: schema: type: object properties: error: type: string - example: - error: Forbidden - application/json: example: error: Forbidden BadRequestResponse: description: Bad Request content: - '*/*': + application/json: schema: type: object properties: @@ -5944,15 +6454,10 @@ components: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer NotFoundResponse: description: Not Found content: - '*/*': + application/json: schema: type: object properties: @@ -5965,7 +6470,6 @@ components: type: number message: type: string - application/json: example: error: Not found extras: @@ -5974,7 +6478,22 @@ components: securitySchemes: BearerAuth: type: apiKey - description: JWT used for authentication, signed with an ES256 private key. + description: Authorization header containing an SDP JWT (ES256) or an SDP_ API key. + name: Authorization + in: header + SEP10Auth: + type: apiKey + description: Authorization header containing a SEP-10 JWT (Bearer {token}). name: Authorization in: header + SEP24Auth: + type: apiKey + description: Authorization header containing a SEP-24 JWT (Bearer {token}). + name: Authorization + in: header + SEP24QueryAuth: + type: apiKey + description: Query parameter containing a SEP-24 JWT. + name: token + in: query x-original-swagger-version: '2.0' diff --git a/openapi/stellar-disbursement-platform/main.yaml b/openapi/stellar-disbursement-platform/main.yaml index 2bf31a52e2..535647fa42 100644 --- a/openapi/stellar-disbursement-platform/main.yaml +++ b/openapi/stellar-disbursement-platform/main.yaml @@ -168,11 +168,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -262,11 +257,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -339,11 +329,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer x-codegen-request-body-name: body /reset-password: post: @@ -387,11 +372,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer x-codegen-request-body-name: body /disbursements: get: @@ -431,7 +411,7 @@ paths: type: string - name: status in: query - description: Exact match on the status of the disbursement. + description: Comma-separated list of disbursement statuses to filter by. required: false style: form explode: true @@ -482,7 +462,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -774,7 +754,7 @@ paths: - Disbursements summary: List All Disbursement Receivers description: Fetches a list of receivers within a specific disbursement using - the disbursement `id `. This endpoint supports pagination. + the disbursement `id `. This endpoint supports pagination and sorting. operationId: ListAllDisbursementReceivers parameters: - name: id @@ -793,6 +773,7 @@ paths: explode: true schema: type: number + default: 1.0 - name: page_limit in: query description: The number of records to return per page. @@ -801,6 +782,31 @@ paths: explode: true schema: type: number + default: 20.0 + - name: sort + in: query + description: Field used to sort receivers + required: false + style: form + explode: true + schema: + type: string + default: updated_at + enum: + - updated_at + - created_at + - name: direction + in: query + description: Direction for sorting receivers. + required: false + style: form + explode: true + schema: + type: string + default: desc + enum: + - asc + - desc responses: "200": description: A list of Disbursement Receivers @@ -1146,7 +1152,7 @@ paths: type: string - name: status in: query - description: Exact match on the status of the disbursement. + description: Comma-separated list of disbursement statuses to filter by. required: false style: form explode: true @@ -1191,7 +1197,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1219,6 +1225,25 @@ paths: description: Exports a CSV file of payments. operationId: exportPaymentsCSV parameters: + - name: q + in: query + description: "Search payments by ID, external_payment_id, receiver wallet address, or disbursement name." + required: false + style: form + explode: true + schema: + type: string + - name: type + in: query + description: Type of payments + required: false + style: form + explode: true + schema: + type: string + enum: + - DIRECT + - DISBURSEMENT - name: status in: query description: Exact match on the status of the payment. @@ -1263,8 +1288,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1274,7 +1300,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1345,8 +1371,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1356,7 +1383,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1381,7 +1408,7 @@ paths: tags: - Payments summary: List All Payments - description: "Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information." + description: "Returns all individual payments matching the request criteria. This endpoint supports pagination, and filtering on payment status, type, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information." operationId: ListAllPayments parameters: - name: page @@ -1393,6 +1420,14 @@ paths: schema: type: number default: 1.0 + - name: q + in: query + description: "Search payments by ID, external_payment_id, receiver wallet address, or disbursement name." + required: false + style: form + explode: true + schema: + type: string - name: type in: query description: Type of payments @@ -1402,8 +1437,8 @@ paths: schema: type: string enum: - - direct - - disbursement + - DIRECT + - DISBURSEMENT - name: page_limit in: query description: Define how many results will be returned in the response. @@ -1428,6 +1463,7 @@ paths: - PAUSED - SUCCESS - FAILED + - CANCELED example: DRAFT - name: receiver_id in: query @@ -1464,8 +1500,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1475,7 +1512,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1545,7 +1582,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DirectPayment' + $ref: '#/components/schemas/Payment' "400": description: Bad Request $ref: '#/components/responses/BadRequestResponse' @@ -1650,6 +1687,128 @@ paths: message: Payment not found security: - BearerAuth: [] + /payments/retry: + patch: + tags: + - Payments + summary: Retry Payments + description: Retries failed payments by ID. + operationId: RetryPayments + requestBody: + content: + application/json: + schema: + type: object + required: + - payment_ids + properties: + payment_ids: + type: array + items: + type: string + example: + payment_ids: + - 9f687f8f-1f8f-4c8a-8e0f-1e67ed7c1330 + - 6c2b9f20-53fd-4f1b-b7e2-9a2b1eb1d7c0 + required: true + responses: + "200": + description: Payments retried successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: Payments retried successfully + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] + /payments/{id}/status: + patch: + tags: + - Payments + summary: Update Payment Status + description: Cancels a payment by setting its status to `CANCELED`. + operationId: UpdatePaymentStatus + parameters: + - name: id + in: path + description: ID of the `Payment`. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - status + properties: + status: + type: string + enum: + - CANCELED + example: + status: CANCELED + required: true + responses: + "200": + description: Payment updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: Payment canceled + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + "404": + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /receivers/verification-types: + get: + tags: + - Receivers + summary: List Verification Types + description: Returns the supported receiver verification types. + operationId: ListReceiverVerificationTypes + responses: + "200": + description: A list of verification types + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VerificationField' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] /receivers: get: tags: @@ -1724,8 +1883,9 @@ paths: explode: true schema: type: string - default: created_at + default: updated_at enum: + - updated_at - created_at - name: direction in: query @@ -1735,7 +1895,7 @@ paths: explode: true schema: type: string - default: asc + default: desc enum: - asc - desc @@ -1955,11 +2115,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -2038,6 +2193,145 @@ paths: security: - BearerAuth: [] x-codegen-request-body-name: body + /receivers/{receiver_id}/wallets/{receiver_wallet_id}: + patch: + tags: + - Receivers + summary: Update Receiver Wallet + description: Updates a receiver wallet's Stellar address and memo for user-managed wallets. + operationId: UpdateReceiverWallet + parameters: + - name: receiver_id + in: path + description: ID of the `Receiver`. + required: true + style: simple + explode: false + schema: + type: string + - name: receiver_wallet_id + in: path + description: ID of the receiver wallet. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - stellar_address + properties: + stellar_address: + type: string + description: Stellar account or contract address for the receiver wallet. + stellar_memo: + type: string + description: Optional memo for the Stellar address. + example: + stellar_address: GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL + stellar_memo: "12345" + required: true + responses: + "200": + description: Receiver wallet updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ReceiverWallet' + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + "404": + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /receivers/wallets/{receiver_wallet_id}/status: + patch: + tags: + - Receivers + summary: Update Receiver Wallet Status + description: Updates a receiver wallet's status. Only `READY` is supported. + operationId: UpdateReceiverWalletStatus + parameters: + - name: receiver_wallet_id + in: path + description: ID of the receiver wallet. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - status + properties: + status: + type: string + enum: + - READY + example: + status: READY + required: true + responses: + "200": + description: Receiver wallet status updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + "404": + description: Not Found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + /registration-contact-types: + get: + tags: + - Disbursements + summary: List Registration Contact Types + description: Returns the supported registration contact types for disbursement instructions. + operationId: ListRegistrationContactTypes + responses: + "200": + description: A list of registration contact types + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RegistrationContactType' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + security: + - BearerAuth: [] /statistics: get: tags: @@ -2080,7 +2374,7 @@ paths: message: Not authorized security: - BearerAuth: [] - /statistics/disbursements/{id}: + /statistics/{id}: get: tags: - Statistics @@ -2144,86 +2438,49 @@ paths: error: Forbidden security: - BearerAuth: [] - /wallet-registration/start: + /sep24-interactive-deposit/info: get: tags: - Registration - summary: Start Wallet Registration - description: This is the endpoint the browser reaches with the first token so - that the receiver can confirm their verification information through a webflow. - Requires a valid SEP-24 token in the request. - operationId: StartWalletRegistration - parameters: - - name: token - in: query - description: The SEP-24 token used for authentication - required: true - style: form - explode: true - schema: - type: string - - name: transaction_id - in: query - description: The transaction id associated with the SEP-24 token - required: true - style: form - explode: true - schema: - type: string + summary: Get Receiver Registration Info + description: Returns the registration context for the receiver, including organization details and reCAPTCHA configuration. + operationId: GetReceiverRegistrationInfo responses: "200": - description: Token is valid and the webpage will be loaded normally. - content: - text/html: - schema: - type: string - description: HTML page content - "401": - description: Unauthorized + description: Registration context content: - text/html: - schema: - type: object - properties: - error: - type: string - extras: - type: object - properties: - status: - type: number - message: - type: string - example: - error: Not authorized - extras: - status: 401 - message: Not authorized application/json: - example: - error: Not authorized - extras: - status: 401 - message: Not authorized - "400": - description: Bad Request - content: - text/html: schema: type: object properties: - error: + privacy_policy_link: type: string - description: Details about the error - extras: - type: object - properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer - /wallet-registration/otp: + organization_name: + type: string + organization_logo: + type: string + truncated_contact_info: + type: string + is_registered: + type: boolean + is_recaptcha_disabled: + type: boolean + recaptcha_site_key: + type: string + example: + privacy_policy_link: https://example.com/privacy + organization_name: Stellar Aid + organization_logo: https://example.com/logo.png + truncated_contact_info: "******1234" + is_registered: false + is_recaptcha_disabled: false + recaptcha_site_key: 6Lc...site_key + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP24Auth: [] + /sep24-interactive-deposit/otp: post: tags: - Registration @@ -2233,15 +2490,6 @@ paths: the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header. operationId: SendOneTimePasscode - parameters: - - name: Authorization - in: header - description: "SEP-24 token for authorization (Format: 'Bearer {token}')" - required: true - style: simple - explode: false - schema: - type: string requestBody: description: Object containing phone number content: @@ -2259,7 +2507,7 @@ paths: description: Email to which the OTP will be sent. Either `phone_number` or `email` is required. recaptcha_token: type: string - description: Token for reCAPTCHA validation + description: Token for reCAPTCHA validation (required unless reCAPTCHA is disabled). required: true responses: "200": @@ -2267,7 +2515,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MessageResponse' + type: object + properties: + message: + type: string + verification_field: + $ref: '#/components/schemas/VerificationField' + example: + message: if your phone number is registered, you'll receive an OTP + verification_field: DATE_OF_BIRTH "400": description: Bad Request content: @@ -2281,11 +2537,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -2312,25 +2563,10 @@ paths: extras: status: 401 message: Not authorized - "429": - description: An OTP was sent to the given user recently and hasn't expired - yet. Only after expired it will be sent to the user again. - content: - application/json: - schema: - type: object - properties: - error: - type: string - extras: - type: object - properties: - code: - type: string - details: - type: string + security: + - SEP24Auth: [] x-codegen-request-body-name: body - /wallet-registration/verification: + /sep24-interactive-deposit/verification: post: tags: - Registration @@ -2339,15 +2575,6 @@ paths: the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request. operationId: VerifyReceiverRegistration - parameters: - - name: Authorization - in: header - description: "SEP-24 token for authorization (Format: 'Bearer {token}')" - required: true - style: simple - explode: false - schema: - type: string requestBody: description: "Verification data including phone_number/email, OTP, verification value, and reCAPTCHA token" content: @@ -2379,11 +2606,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -2410,7 +2632,56 @@ paths: extras: status: 401 message: Not authorized + security: + - SEP24Auth: [] x-codegen-request-body-name: body + /wallet-registration/start: + get: + tags: + - Registration + summary: Start Wallet Registration + description: Serves the SEP-24 interactive registration UI. + operationId: StartWalletRegistration + parameters: + - name: token + in: query + description: SEP-24 token for authorization. + required: true + style: form + explode: true + schema: + type: string + - name: transaction_id + in: query + description: SEP-24 transaction ID. + required: true + style: form + explode: true + schema: + type: string + - name: lang + in: query + description: Optional language override for the webview. + required: false + style: form + explode: true + schema: + type: string + responses: + "200": + description: HTML webview for receiver registration. + content: + text/html: + schema: + type: string + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP24QueryAuth: [] /.well-known/stellar.toml: get: tags: @@ -2424,11 +2695,11 @@ paths: content: text/toml: example: | - ACCOUNTS=["GBC2HVWFIFN7WJHFORVBCDKJORXXXXXXXXXXXXXXXXXXXXXXXX", "GDA34JZ26FZY64XCSY46CUNSHLX762LHJXQXXXXXXXXXXXXXXXXXXXXXXXX"] SIGNING_KEY="GDA34JZ26FZY64XCSY46XXXXXXXXXXXXXXXXXXXXXXXX" NETWORK_PASSPHRASE="Test SDF Network ; September 2015" HORIZON_URL="https://horizon-testnet.stellar.org" WEB_AUTH_ENDPOINT="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/auth" TRANSFER_SERVER_SEP0024="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep24" + ACCOUNTS=["GBC2HVWFIFN7WJHFORVBCDKJORXXXXXXXXXXXXXXXXXXXXXXXX", "GDA34JZ26FZY64XCSY46CUNSHLX762LHJXQXXXXXXXXXXXXXXXXXXXXXXXX"] SIGNING_KEY="GDA34JZ26FZY64XCSY46XXXXXXXXXXXXXXXXXXXXXXXX" NETWORK_PASSPHRASE="Test SDF Network ; September 2015" HORIZON_URL="https://horizon-testnet.stellar.org" WEB_AUTH_ENDPOINT="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep10/auth" TRANSFER_SERVER_SEP0024="https://ap-stellar-disbursement-platform-backend-dev.stellar.org/sep24" [[DOCUMENTATION]] ORG_NAME="Stellar Aid" [[CURRENCIES]] code = "EUROC" issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" is_asset_anchored = true anchor_asset_type = "fiat" status = "live" desc = "EUROC" [[CURRENCIES]] code = "USDC" issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" is_asset_anchored = true anchor_asset_type = "fiat" status = "live" desc = "USDC" - /WEB_AUTH_ENDPOINT: + /sep10/auth: get: tags: - Registration @@ -2438,7 +2709,7 @@ paths: parameters: - name: account in: query - description: "The Client Account, which can be a stellar account (G...) or muxed account (M...) that the Client wishes to authenticate with the Server.." + description: The client account (G...) that the client wishes to authenticate with the server. required: true style: form explode: true @@ -2454,10 +2725,18 @@ paths: explode: true schema: type: string + - name: home_domain + in: query + description: Home domain for SEP-10. Defaults to the server base domain if omitted. + required: false + style: form + explode: true + schema: + type: string - name: client_domain in: query - description: a Client Domain. Need to be supplied by all Clients/Wallets. - required: true + description: Client domain for wallet attribution. Required when SEP-10 client attribution is enabled (default). + required: false style: form explode: true schema: @@ -2481,27 +2760,8 @@ paths: transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAfheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3Ag== network_passphrase: Test SDF Network ; September 2015 "400": - description: If some information was missing or invalid. - content: - application/json: - schema: - type: object - properties: - error: - type: string - extras: - type: object - properties: - account: - type: string - example: - error: Bad request. - extras: - account: account cannot be empty - example: - error: Bad request. - extras: - account: account cannot be empty + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' post: tags: - Registration @@ -2510,7 +2770,15 @@ paths: operationId: ProvideSignedChallengeTransaction requestBody: content: - '*/*': + application/json: + schema: + type: object + properties: + transaction: + type: string + example: + transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAvheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3AsiYk3UAAABArIrkvqmA0V9lIZcVyCUdja6CiwkPwsV8BfI4CZOyR1Oq7ysvNJWwY0G42dpxN9OP1qz4dum8apG2hqvxVWjkDQ== + application/x-www-form-urlencoded: schema: type: object properties: @@ -2518,7 +2786,7 @@ paths: type: string example: transaction: AAAAAgAAAADIiRu2BrqqeOcP28PWCkD4D5Rjjsqh71HwvqFX+F4VXAAAAGQAAAAAAAAAAAAAAAEAAAAAXzrUcQAAAABfOtf1AAAAAAAAAAEAAAABAAAAAEEB8rhqNa70RYjaNnF1ARE2CbL50iR9HPXST/fImJN1AAAACgAAADB0aGlzaXNhdGVzdC5zYW5kYm94LmFuY2hvci5hbmNob3Jkb21haW4uY29tIGF1dGgAAAABAAAAQGdGOFlIQm1zaGpEWEY0L0VJUFZucGVlRkxVTDY2V0tKMVBPYXZuUVVBNjBoL09XaC91M2Vvdk54WFJtSTAvQ2UAAAAAAAAAAvheFVwAAABAheKE1HjGnUCNwPbX8mz7CqotShKbA+xM2Hbjl6X0TBpEprVOUVjA6lqMJ1j62vrxn1mF3eJzsLa9s9hRofG3AsiYk3UAAABArIrkvqmA0V9lIZcVyCUdja6CiwkPwsV8BfI4CZOyR1Oq7ysvNJWwY0G42dpxN9OP1qz4dum8apG2hqvxVWjkDQ== - required: false + required: true responses: "200": description: SEP-10 handshake was successful. @@ -2533,21 +2801,60 @@ paths: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJHQTZVSVhYUEVXWUZJTE5VSVdBQzM3WTRRUEVaTVFWREpIREtWV0ZaSjJLQ1dVQklVNUlYWk5EQSIsImp0aSI6IjE0NGQzNjdiY2IwZTcyY2FiZmRiZGU2MGVhZTBhZDczM2NjNjVkMmE2NTg3MDgzZGFiM2Q2MTZmODg1MTkwMjQiLCJpc3MiOiJodHRwczovL2ZsYXBweS1iaXJkLWRhcHAuZmlyZWJhc2VhcHAuY29tLyIsImlhdCI6MTUzNDI1Nzk5NCwiZXhwIjoxNTM0MzQ0Mzk0fQ.8nbB83Z6vGBgC1X9r3N6oQCFTBzDiITAfCJasRft0z0 example: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJHQTZVSVhYUEVXWUZJTE5VSVdBQzM3WTRRUEVaTVFWREpIREtWV0ZaSjJLQ1dVQklVNUlYWk5EQSIsImp0aSI6IjE0NGQzNjdiY2IwZTcyY2FiZmRiZGU2MGVhZTBhZDczM2NjNjVkMmE2NTg3MDgzZGFiM2Q2MTZmODg1MTkwMjQiLCJpc3MiOiJodHRwczovL2ZsYXBweS1iaXJkLWRhcHAuZmlyZWJhc2VhcHAuY29tLyIsImlhdCI6MTUzNDI1Nzk5NCwiZXhwIjoxNTM0MzQ0Mzk0fQ.8nbB83Z6vGBgC1X9r3N6oQCFTBzDiITAfCJasRft0z0 - "401": - description: Unauthorized + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + x-codegen-request-body-name: body + /sep24/info: + get: + tags: + - Registration + summary: SEP-24 Info + description: Returns supported assets and feature flags for SEP-24 registration deposits. + operationId: GetSEP24Info + responses: + "200": + description: SEP-24 info response content: application/json: schema: type: object properties: - error: - type: string - example: - error: The provided transaction is not valid - example: - error: The provided transaction is not valid - x-codegen-request-body-name: body - /TRANSFER_SERVER_SEP0024/transactions/deposit/interactive: + deposit: + type: object + additionalProperties: + type: object + properties: + enabled: + type: boolean + min_amount: + type: number + max_amount: + type: number + withdraw: + type: object + additionalProperties: + type: object + properties: + enabled: + type: boolean + min_amount: + type: number + max_amount: + type: number + fee: + type: object + properties: + enabled: + type: boolean + features: + type: object + properties: + account_creation: + type: boolean + claimable_balances: + type: boolean + /sep24/transactions/deposit/interactive: post: tags: - Registration @@ -2560,12 +2867,59 @@ paths: externalDocs: description: Find more info here url: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-2 + requestBody: + content: + application/json: + schema: + type: object + required: + - asset_code + properties: + asset_code: + type: string + description: Stellar asset code for the deposit. + account: + type: string + description: Stellar account for the deposit; defaults to the SEP-10 subject. + lang: + type: string + description: Language for the interactive flow. + claimable_balance_supported: + type: string + description: Indicates if claimable balances are supported. + example: + asset_code: USDC + account: GACW7NONV43MZIFHCOKCQJAKSJSISSICFVUJ2C6EZIW5773OU3HD64VI + lang: en + application/x-www-form-urlencoded: + schema: + type: object + required: + - asset_code + properties: + asset_code: + type: string + description: Stellar asset code for the deposit. + account: + type: string + description: Stellar account for the deposit; defaults to the SEP-10 subject. + lang: + type: string + description: Language for the interactive flow. + claimable_balance_supported: + type: string + description: Indicates if claimable balances are supported. + example: + asset_code: USDC + account: GACW7NONV43MZIFHCOKCQJAKSJSISSICFVUJ2C6EZIW5773OU3HD64VI + lang: en + required: false responses: "200": description: An anchor requires the user to fill out information on a webpage hosted by the anchor. content: - '*/*': + application/json: schema: type: object properties: @@ -2584,6 +2938,14 @@ paths: request. The wallet will use this ID to query the /transaction endpoint to check status of the request. example: 82fhs729f63dh0v4 + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + security: + - SEP10Auth: [] /profile: get: tags: @@ -2605,7 +2967,7 @@ paths: tags: - Profile summary: Update User Profile - description: "Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request." + description: "Updates the profile details of the logged in user. Note: all fields are optional but at least one should be sent in the request." operationId: UpdateUserProfile requestBody: content: @@ -2619,13 +2981,10 @@ paths: type: string email: type: string - password: - type: string example: first_name: FirstName last_name: LastName email: email@email.com - password: mysecret required: false responses: "200": @@ -2674,7 +3033,51 @@ paths: example: error: Forbidden example: - error: Forbidden + error: Forbidden + security: + - BearerAuth: [] + /profile/reset-password: + patch: + tags: + - Profile + summary: Reset Password + description: Updates the password for the logged in user. + operationId: ResetUserPassword + requestBody: + content: + application/json: + schema: + type: object + required: + - current_password + - new_password + properties: + current_password: + type: string + new_password: + type: string + example: + current_password: currentPassword123! + new_password: newPassword123! + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponse' + example: + message: user password updated successfully + "400": + description: Bad Request + $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' security: - BearerAuth: [] x-codegen-request-body-name: body @@ -2854,11 +3257,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer security: - BearerAuth: [] x-codegen-request-body-name: body @@ -3041,11 +3439,44 @@ paths: /wallets: get: tags: - - Organization - Wallets summary: Get All Wallets - description: Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets. + description: Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. By default, soft-deleted wallets are excluded from the response. Use the `include_deleted` parameter to include them. operationId: GetAllWallets + parameters: + - name: include_deleted + in: query + description: When set to `true`, includes soft-deleted wallets in the response. When `false` or omitted, only non-deleted wallets are returned. + required: false + style: form + explode: true + schema: + type: boolean + default: false + - name: enabled + in: query + description: Filter wallets by enabled/disabled status. + required: false + style: form + explode: true + schema: + type: boolean + - name: user_managed + in: query + description: Filter by user-managed wallets. + required: false + style: form + explode: true + schema: + type: boolean + - name: supported_assets + in: query + description: Comma-separated list of asset codes or IDs to filter wallets by supported assets (max 20). + required: false + style: form + explode: true + schema: + type: string responses: "200": description: A list of wallets @@ -3055,6 +3486,9 @@ paths: type: array items: $ref: '#/components/schemas/Wallet' + "400": + description: Bad request - validation errors + $ref: '#/components/responses/BadRequestResponse' "401": description: Unauthorized content: @@ -3098,7 +3532,6 @@ paths: - BearerAuth: [] post: tags: - - Organization - Wallets summary: Create Wallet description: Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains. @@ -3138,11 +3571,10 @@ paths: type: object security: - BearerAuth: [] - + /wallets/{id}: patch: tags: - - Organization - Wallets summary: Update Wallet description: "This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement." @@ -3161,29 +3593,60 @@ paths: content: application/json: schema: - required: - - enabled - type: object - properties: - enabled: - type: boolean - description: The enabled status of the wallet - example: true + $ref: '#/components/schemas/UpdateWalletRequest' required: true responses: "200": description: Wallet updated successfully content: - '*/*': + application/json: schema: - $ref: '#/components/schemas/MessageResponse' + $ref: '#/components/schemas/Wallet' "400": description: "Bad request, usually caused by the `enabled` field missing from the request body." $ref: '#/components/responses/BadRequestResponse' + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' + "404": + description: Wallet not found + $ref: '#/components/responses/NotFoundResponse' + security: + - BearerAuth: [] + delete: + tags: + - Wallets + summary: Delete Wallet + description: Soft deletes a wallet provider. + operationId: DeleteWallet + parameters: + - name: id + in: path + description: ID of the wallet to delete + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: Wallet deleted successfully + content: {} + "401": + description: Unauthorized + $ref: '#/components/responses/UnauthorizedResponse' + "403": + description: Forbidden + $ref: '#/components/responses/ForbiddenResponse' "404": description: Wallet not found $ref: '#/components/responses/NotFoundResponse' - + security: + - BearerAuth: [] + /users: get: tags: @@ -3856,11 +4319,6 @@ paths: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer "401": description: Unauthorized content: @@ -4380,8 +4838,21 @@ components: type: string description: The name of the disbursement example: disbursement-june-29 + receiver_registration_message_template: + type: string + description: "The custom template used to send invitations to receivers. The `default` message isn't returned. In the message's content it's possible to add the following template variables: `{{.OrganizationName}}` which is the Organization Name configured and `{{.RegistrationLink}}` which is the link generated by SDP to send to the receiver (in case this is not present in the message, it's automatically appended at the end)." + example: "You have a payment waiting for you from {{.OrganizationName}}. Click {{.RegistrationLink}} to register." + registration_contact_type: + $ref: '#/components/schemas/RegistrationContactType' status: $ref: '#/components/schemas/DisbursementStatus' + verification_field: + $ref: '#/components/schemas/VerificationField' + status_history: + $ref: '#/components/schemas/DisbursementStatusHistory' + file_name: + type: string + example: disbursement-feb-03-2023.csv created_at: type: string description: The creation timestamp of the disbursement @@ -4640,12 +5111,22 @@ components: $ref: '#/components/schemas/PaymentStatus' status_history: $ref: '#/components/schemas/PaymentStatusHistory' + type: + type: string + description: The type of the payment. + enum: + - DISBURSEMENT + - DIRECT disbursement: $ref: '#/components/schemas/DisbursementLite' asset: $ref: '#/components/schemas/Asset' receiver_wallet: $ref: '#/components/schemas/ReceiverWalletLite' + external_payment_id: + type: string + description: Optional external payment identifier provided by the client. + example: payment-001 created_at: type: string format: date-time @@ -4904,14 +5385,33 @@ components: stellar_address: type: string example: GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL + stellar_memo: + type: string + stellar_memo_type: + type: string + sep24_transaction_id: + type: string created_at: type: string example: 2023-02-03T10:45:51.000Z updated_at: type: string example: 2023-02-03T10:45:51.000Z + invitation_sent_at: + type: string + example: 2023-02-09T10:45:51.000Z status: $ref: '#/components/schemas/ReceiversWalletStatus' + status_history: + type: array + items: + $ref: '#/components/schemas/ReceiversWalletStatusHistoryEntry' + otp_confirmed_at: + type: string + format: date-time + example: 2023-02-10T10:45:51Z + otp_confirmed_with: + type: string ReceiverWalletsCounters: type: object properties: @@ -5049,6 +5549,18 @@ components: homepage: type: string example: https://vibrantapp.com + sep_10_client_domain: + type: string + example: api-dev.vibrantapp.com + deep_link_schema: + type: string + example: https://vibrantapp.com/sdp-dev + enabled: + type: boolean + example: true + user_managed: + type: boolean + example: false ReceiverRegistrationRequest: type: object properties: @@ -5463,7 +5975,7 @@ components: - payment_rail - currency - address - + APIKey: type: object properties: @@ -5640,6 +6152,8 @@ components: required: - amount - asset + - receiver + - wallet properties: amount: type: string @@ -5655,16 +6169,18 @@ components: enum: - native - classic + - contract + - fiat description: Asset type (use either id or type) code: type: string - description: Asset code + description: Asset code (required for classic and fiat assets) issuer: type: string description: Asset issuer address (required for classic assets) contract_id: type: string - description: Contract ID + description: Contract ID (required for contract assets) description: Asset reference - specify either id or type with required fields receiver: type: object @@ -5680,7 +6196,7 @@ components: description: Receiver phone number wallet_address: type: string - description: Receiver wallet address + description: Receiver wallet address (Stellar account or contract) description: Receiver reference - specify exactly one identifier wallet: type: object @@ -5690,7 +6206,7 @@ components: description: Wallet ID address: type: string - description: Wallet address + description: Wallet address (Stellar account or contract) description: Wallet reference - specify either id or address external_payment_id: type: string @@ -5880,7 +6396,7 @@ components: - type assets_ids: type: array - description: + description: | Legacy: Array of asset IDs (cannot be used with assets field) items: type: string @@ -5947,7 +6463,7 @@ components: UnauthorizedResponse: description: Unauthorized content: - '*/*': + application/json: schema: type: object properties: @@ -5960,12 +6476,6 @@ components: type: number message: type: string - example: - error: Not authorized - extras: - status: 401 - message: Not authorized - application/json: example: error: Not authorized extras: @@ -5974,21 +6484,18 @@ components: ForbiddenResponse: description: Forbidden content: - '*/*': + application/json: schema: type: object properties: error: type: string - example: - error: Forbidden - application/json: example: error: Forbidden BadRequestResponse: description: Bad Request content: - '*/*': + application/json: schema: type: object properties: @@ -5998,15 +6505,10 @@ components: extras: type: object properties: {} - example: - error: Invalid input - extras: - field_foo: field_foo is required - field_bar: field_bar needs to be an integer NotFoundResponse: description: Not Found content: - '*/*': + application/json: schema: type: object properties: @@ -6019,7 +6521,6 @@ components: type: number message: type: string - application/json: example: error: Not found extras: @@ -6028,7 +6529,22 @@ components: securitySchemes: BearerAuth: type: apiKey - description: "JWT used for authentication, signed with an ES256 private key." + description: "Authorization header containing an SDP JWT (ES256) or an SDP_ API key." + name: Authorization + in: header + SEP10Auth: + type: apiKey + description: "Authorization header containing a SEP-10 JWT (Bearer {token})." name: Authorization in: header + SEP24Auth: + type: apiKey + description: "Authorization header containing a SEP-24 JWT (Bearer {token})." + name: Authorization + in: header + SEP24QueryAuth: + type: apiKey + description: "Query parameter containing a SEP-24 JWT." + name: token + in: query x-original-swagger-version: "2.0" diff --git a/openrpc/scripts/build.mjs b/openrpc/scripts/build.mjs index d26f130521..445aa9224b 100644 --- a/openrpc/scripts/build.mjs +++ b/openrpc/scripts/build.mjs @@ -153,7 +153,7 @@ const services = { }, }, 'anchor-platform': { - saveDir: "platforms/anchor-platform/api-reference/platform/rpc", + saveDir: "docs/platforms/anchor-platform/api-reference/platform/rpc", starterFile: { openrpc: "1.2.6", info: { diff --git a/openrpc/scripts/validate.mjs b/openrpc/scripts/validate.mjs index 6d22b6115a..de2df53792 100644 --- a/openrpc/scripts/validate.mjs +++ b/openrpc/scripts/validate.mjs @@ -30,5 +30,5 @@ async function buildAndValidate(filename) { await Promise.all([ buildAndValidate("openrpc/stellar-rpc.openrpc.json"), - buildAndValidate("platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json") + buildAndValidate("docs/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json") ]) diff --git a/openrpc/src/anchor-platform/schemas/platform_transaction.json b/openrpc/src/anchor-platform/schemas/platform_transaction.json index 71db1eed5a..bec07132ed 100644 --- a/openrpc/src/anchor-platform/schemas/platform_transaction.json +++ b/openrpc/src/anchor-platform/schemas/platform_transaction.json @@ -92,10 +92,6 @@ "description": "The domain of the client.", "type": "string" }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, "request_client_ip_address": { "description": "The IP address of the client requesting the transaction.", "type": "string" @@ -119,4 +115,4 @@ } } } -} \ No newline at end of file +} diff --git a/openrpc/src/stellar-rpc/contentDescriptors/AuthMode.json b/openrpc/src/stellar-rpc/contentDescriptors/AuthMode.json new file mode 100644 index 0000000000..98cad1acac --- /dev/null +++ b/openrpc/src/stellar-rpc/contentDescriptors/AuthMode.json @@ -0,0 +1,11 @@ +{ + "AuthMode": { + "name": "authMode", + "summary": "selects the authorization mode for simulation", + "required": false, + "description": "Specifies the authorization mode to use when simulating the transaction. The options are 'enforce' (default, enforces all authorization checks), 'record' (records authorization without enforcement), and 'record_allow_nonroot' (records authorization while allowing non-root invocations).", + "schema": { + "$ref": "#/components/schemas/AuthMode" + } + } +} diff --git a/openrpc/src/stellar-rpc/examplePairingObjects/EventsPairs.json b/openrpc/src/stellar-rpc/examplePairingObjects/EventsPairs.json index 56b0dac95f..246a1ec6e5 100644 --- a/openrpc/src/stellar-rpc/examplePairingObjects/EventsPairs.json +++ b/openrpc/src/stellar-rpc/examplePairingObjects/EventsPairs.json @@ -1,7 +1,7 @@ { "NativeTransferEventsExample": { "name": "Native XLM Transfer Events", - "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens, and limiting the number of returned events to 2.", + "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens and limiting the number of returned events to 2.", "params": [ { "$ref": "#/components/examples/StartLedger" }, { "$ref": "#/components/examples/NativeTransfersFilter" }, diff --git a/openrpc/src/stellar-rpc/examples/Events.json b/openrpc/src/stellar-rpc/examples/Events.json index 57aeab5c97..3f0c4211cc 100644 --- a/openrpc/src/stellar-rpc/examples/Events.json +++ b/openrpc/src/stellar-rpc/examples/Events.json @@ -10,7 +10,7 @@ "type": "contract", "contractIds": [ "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC" ], "topics": [ - [ "AAAADwAAAAh0cmFuc2Zlcg==", "*", "*", "*" ] + [ "AAAADwAAAAh0cmFuc2Zlcg==", "*", "*", "**" ] ] } ] diff --git a/openrpc/src/stellar-rpc/methods/getEvents.json b/openrpc/src/stellar-rpc/methods/getEvents.json index 269aac4c19..681570794f 100644 --- a/openrpc/src/stellar-rpc/methods/getEvents.json +++ b/openrpc/src/stellar-rpc/methods/getEvents.json @@ -49,4 +49,3 @@ { "$ref": "#/components/examplePairingObjects/AnyEventsExample" } ] } - diff --git a/openrpc/src/stellar-rpc/methods/getLatestLedger.json b/openrpc/src/stellar-rpc/methods/getLatestLedger.json index 48dea5c171..5e61de4113 100644 --- a/openrpc/src/stellar-rpc/methods/getLatestLedger.json +++ b/openrpc/src/stellar-rpc/methods/getLatestLedger.json @@ -8,18 +8,30 @@ "paramStructure": "by-name", "params": [], "result": { - "name": "getLatestLedgerResult", + "name": "getLatestLedgerResponse", "schema": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/LedgerHash" }, - "protocolVersion": { - "$ref": "#/components/schemas/ProtocolVersion" - }, "sequence": { "$ref": "#/components/schemas/LatestLedger" + }, + "closeTime": { + "title": "closeTime", + "description": "The timestamp at which the latest ledger was closed.", + "type": "string" + }, + "headerXdr": { + "title": "headerXdr", + "type": "string", + "description": "The [LedgerHeader](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger.x#L74) structure for this ledger (base64-encoded string)." + }, + "metadataXdr": { + "title": "metadataXdr", + "type": "string", + "description": "The [LedgerCloseMeta](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger.x#L539) union for this ledger (base64-encoded string)." } } } @@ -32,9 +44,11 @@ "result": { "name": "getLatestLedgerResult", "value": { - "id": "c73c5eac58a441d4eb733c35253ae85f783e018f7be5ef974258fed067aabb36", - "protocolVersion": 20, - "sequence": 2539605 + "id": "9f3308826b666c11df41693b17eddbb68aea9758be0f67fd5df81f6cf5c48984", + "sequence": 2002985, + "closeTime": "1765223032", + "headerXdr": "AAAAGBVaCGp9GqWZ+BfZOSqt5v/BLzNfuU6wBi3yuCItkCuXmW1RIVSNlHOOxENRa/PRaBpTfW/WXzvkBZkt8YjYxrMAAAAAaTcqeAAAAAAAAAABAAAAANVyadliUPdJbQeb4ug1Ejbv/+jTnC4Gv6uxQh8X/GccAAAAQPp6I5umxPf7dRVo+OHtpgHPcswph8eesf6xFlUUvxtm/AbcgDKF0BPyg7gHuzy9RvnCv5GPkDi/Q6NP5TcqlwZ69ncQ7zxy/qBWkTHZZbEYW4Q8mJt/jHnh1mJgosKVrcBn6psOiLJw02fxji7a/TMHzMYWixkIDOZWBmEsh+kNAB6QKQ3gtrOnZAAAAAABGeTS66QAAAAAAAAAAAAAVzwAAABkAExLQAAAAMjuMwFH65no9K3paxrP75vCHgw88lYhOPg2dmCUGZ5Ibdyeuy2VtFMaA/QlqPOVi+ft3NBSB4Tg4uQQrPAIqtdLm7DKjY28EwWkjJrBh1wu9oAd1DlPuUT28v7MxoO2ODeLkjDUqJCR9uLj3apU0+rlkVaMBK0QREEXiAUPVL81iAAAAAA=", + "metadataXdr": "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" } } } diff --git a/openrpc/src/stellar-rpc/methods/simulateTransaction.json b/openrpc/src/stellar-rpc/methods/simulateTransaction.json index 440443af32..0a5df24f09 100644 --- a/openrpc/src/stellar-rpc/methods/simulateTransaction.json +++ b/openrpc/src/stellar-rpc/methods/simulateTransaction.json @@ -15,6 +15,9 @@ }, { "$ref": "#/components/contentDescriptors/Format" + }, + { + "$ref": "#/components/contentDescriptors/AuthMode" } ], "result": { diff --git a/openrpc/src/stellar-rpc/schemas/AuthMode.json b/openrpc/src/stellar-rpc/schemas/AuthMode.json new file mode 100644 index 0000000000..088c26ee53 --- /dev/null +++ b/openrpc/src/stellar-rpc/schemas/AuthMode.json @@ -0,0 +1,8 @@ +{ + "AuthMode": { + "title": "authMode", + "type": "string", + "enum": ["enforce", "record", "record_allow_nonroot"], + "description": "Specifies the authorization mode to use when simulating the transaction. 'enforce' (default) enforces authorization checks, 'record' records authorization without enforcing, and 'record_allow_nonroot' records authorization while allowing non-root invocations." + } +} diff --git a/openrpc/src/stellar-rpc/schemas/EventFilters.json b/openrpc/src/stellar-rpc/schemas/EventFilters.json index cd06f2325f..1cbb71ad33 100644 --- a/openrpc/src/stellar-rpc/schemas/EventFilters.json +++ b/openrpc/src/stellar-rpc/schemas/EventFilters.json @@ -30,7 +30,7 @@ "TopicFilters": { "title": "topics", "type": "array", - "description": "List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request.", + "description": "A list of topic filters. Each filter is itself an array of one to four `SegmentMatcher` elements (see below). If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters.", "maxItems": 5, "items": { "$ref": "#/components/schemas/TopicFilter" @@ -39,7 +39,7 @@ "SegmentMatcher": { "title": "SegmentMatcher", "type": "string", - "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment.\n\n" + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment and does not count towards the 4-segment limit.\n\n" }, "TopicFilter": { "type": "array", diff --git a/package.json b/package.json index f78f1fd741..fe30131803 100644 --- a/package.json +++ b/package.json @@ -5,24 +5,24 @@ "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start", - "build": "docusaurus build --locale en", + "build": "docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", "serve": "docusaurus serve", - "api:clean": "docusaurus clean-api-docs -p openapi all && docusaurus clean-api-docs -p ap-apis all && docusaurus clean-api-docs -p sdp-apis all", + "api:clean": "docusaurus clean-api-docs all", "api:bundle": "yarn bundle-horizon && yarn bundle-anchor-platform && yarn bundle-stellar-disbursement-platform", "bundle-horizon": "redocly bundle horizon --output openapi/horizon/bundled.yml", - "bundle-anchor-platform": "redocly bundle ap-platform --output openapi/anchor-platform/bundled-platform.yaml && redocly bundle ap-callbacks --output openapi/anchor-platform/bundled-callbacks.yaml && redocly bundle ap-custody --output openapi/anchor-platform/bundled-custody.yaml", + "bundle-anchor-platform": "redocly bundle ap-platform --output openapi/anchor-platform/bundled-platform.yaml && redocly bundle ap-callbacks --output openapi/anchor-platform/bundled-callbacks.yaml", "bundle-stellar-disbursement-platform": "redocly bundle stellar-disbursement-platform --output openapi/stellar-disbursement-platform/bundled.yaml", - "api:gen": "docusaurus gen-api-docs -p openapi all && docusaurus gen-api-docs -p ap-apis all && docusaurus gen-api-docs -p sdp-apis all && rm docs/data/apis/horizon/api-reference/*.info.mdx && rm platforms/anchor-platform/api-reference/{callbacks,custody,platform/transactions}/*.info.mdx && rm platforms/stellar-disbursement-platform/api-reference/*.info.mdx", + "api:gen": "docusaurus gen-api-docs all && rm docs/data/apis/horizon/api-reference/*.info.mdx && rm docs/platforms/anchor-platform/api-reference/{callbacks,platform/transactions}/*.info.mdx && rm docs/platforms/stellar-disbursement-platform/api-reference/*.info.mdx", "api": "yarn api:clean && yarn api:bundle && yarn api:gen", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", - "format:mdx": "prettier --config .prettierrc.js --write \"{docs,src/pages,platforms,meeting-notes}/**/*.{md,mdx}\"", - "ci-format:mdx": "prettier --config .prettierrc.js --write --log-level silent \"{docs,src/pages,platforms,meeting-notes}/**/*.{md,mdx}\"", - "check:mdx": "prettier --config .prettierrc.js -c \"{docs,src/pages,platforms,meeting-notes}/**/*.{md,mdx}\"", - "ci:mdx": "prettier --config .prettierrc.js \"{docs,src/pages,platforms,meeting-notes}/**/*.{md,mdx}\" -l --no-editorconfig", + "format:mdx": "prettier --config .prettierrc.js --write \"{docs,src/pages,meeting-notes}/**/*.{md,mdx}\"", + "ci-format:mdx": "prettier --config .prettierrc.js --write --log-level silent \"{docs,src/pages,meeting-notes}/**/*.{md,mdx}\"", + "check:mdx": "prettier --config .prettierrc.js -c \"{docs,src/pages,meeting-notes}/**/*.{md,mdx}\"", + "ci:mdx": "prettier --config .prettierrc.js \"{docs,src/pages,meeting-notes}/**/*.{md,mdx}\" -l --no-editorconfig", "diff:mdx": "yarn ci-format:mdx && git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' ':(exclude)yarn.lock' | awk \"/diff --git/ {found=1} found {print}\"", "lint:fix": "eslint \"src/**/*.{js,jsx,ts,tsx}\" --fix", "lint": "eslint \"src/**/*.{js,jsx,ts,tsx}\"", @@ -30,41 +30,37 @@ "postinstall": "patch-package", "rpcspec:build": "node openrpc/scripts/build.mjs", "rpcspec:validate": "node openrpc/scripts/build.mjs && node openrpc/scripts/validate.mjs", - "stellar-cli:build": "node scripts/stellar_cli.mjs", + "stellar-cli:build": "node scripts/stellar_cli_plugins.mjs && node scripts/stellar_cli.mjs", "stellar-cli:fix-links": "./scripts/fix_cli_links.sh", "crowdin": "crowdin", "crowdin:fix": "node scripts/copyIgnoredFiles.mjs && ./scripts/fix_translations.sh", - "crowdin:sync": "docusaurus write-translations && crowdin upload --no-progress --delete-obsolete && crowdin download --no-progress", - "ap:versions:clean": "docusaurus clean-api-docs:version -p ap-apis ap_platform:all && docusaurus clean-api-docs:version -p ap-apis ap_callbacks:all && docusaurus clean-api-docs:version -p ap-apis ap_custody:all", - "ap:versions:gen": "docusaurus gen-api-docs:version -p ap-apis ap_platform:all && docusaurus gen-api-docs:version -p ap-apis ap_callbacks:all && docusaurus gen-api-docs:version -p ap-apis ap_custody:all && rm ap_versioned_docs/version-*/api-reference/{callbacks,custody,platform/transactions}/*.info.mdx", - "ap:versions:regen": "yarn ap:versions:clean && yarn ap:versions:gen", - "ap:versions:new": "docusaurus docs:version:ap $VERSION && node scripts/ap_new_version.mjs $VERSION" + "crowdin:sync": "docusaurus write-translations && crowdin upload --no-progress --delete-obsolete && crowdin download --no-progress" }, "dependencies": { - "@crowdin/cli": "4.11.0", - "@docusaurus/core": "3.8.1", - "@docusaurus/faster": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", - "@docusaurus/remark-plugin-npm2yarn": "3.8.1", - "@docusaurus/theme-mermaid": "3.8.1", + "@crowdin/cli": "^4.12.0", + "@docusaurus/core": "3.9.2", + "@docusaurus/faster": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@docusaurus/remark-plugin-npm2yarn": "3.9.2", + "@docusaurus/theme-mermaid": "3.9.2", "@mdx-js/react": "3.1.1", "@open-rpc/meta-schema": "^1.14.9", "@open-rpc/schema-utils-js": "^1.16.2", "@stellar/open-rpc-docs-react": "^0.2.1", "ajv": "^8.17.1", "clsx": "^2.1.1", - "docusaurus-plugin-openapi-docs": "4.3.7", + "docusaurus-plugin-openapi-docs": "4.5.1", "docusaurus-plugin-sass": "^0.2.6", "docusaurus-plugin-sentry": "^2.1.0", - "docusaurus-theme-openapi-docs": "4.3.7", - "js-yaml": "^4.1.0", - "patch-package": "^8.0.0", + "docusaurus-theme-openapi-docs": "4.5.1", + "js-yaml": "^4.1.1", + "patch-package": "^8.0.1", "prism-react-renderer": "^2.4.1", - "react": "^19.1.1", - "react-dom": "^19.1.1", + "react": "^19.2.3", + "react-dom": "^19.2.3", "rehype-katex": "^7.0.1", "remark-math": "^6.0.0", - "sass": "^1.93.0" + "sass": "^1.97.1" }, "browserslist": { "production": [ @@ -79,18 +75,19 @@ ] }, "devDependencies": { - "@docusaurus/eslint-plugin": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/tsconfig": "3.8.1", - "@docusaurus/types": "3.8.1", - "@eslint/eslintrc": "3.3.1", - "@eslint/js": "9.36.0", - "@redocly/cli": "1.34.5", + "@docusaurus/eslint-plugin": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "@eslint/eslintrc": "3.3.3", + "@eslint/js": "9.39.2", + "@redocly/cli": "2.14.1", "@stellar/prettier-config": "^1.2.0", - "eslint": "9.36.0", + "eslint": "9.39.2", + "glob":"^13.0.1", "husky": "^9.1.7", - "prettier": "3.6.2", - "typescript": "5.9.2" + "prettier": "3.7.4", + "typescript": "5.9.3" }, "engines": { "node": ">=22" diff --git a/patches/docusaurus-plugin-openapi-docs+4.3.7.patch b/patches/docusaurus-plugin-openapi-docs+4.3.7.patch deleted file mode 100644 index 9eb28ecd47..0000000000 --- a/patches/docusaurus-plugin-openapi-docs+4.3.7.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/node_modules/docusaurus-plugin-openapi-docs/lib/index.js b/node_modules/docusaurus-plugin-openapi-docs/lib/index.js -index 90a4d82..2d125dd 100644 ---- a/node_modules/docusaurus-plugin-openapi-docs/lib/index.js -+++ b/node_modules/docusaurus-plugin-openapi-docs/lib/index.js -@@ -244,9 +244,11 @@ custom_edit_url: null - .toString("base64")); - let infoBasePath = `${outputDir}/${item.infoId}`; - if (docRouteBasePath) { -- infoBasePath = `${docRouteBasePath}/${outputDir -- .split(docPath)[1] -- .replace(/^\/+/g, "")}/${item.infoId}`.replace(/^\/+/g, ""); -+ infoBasePath = outputDir.indexOf(docPath) > -1 -+ ? `${docRouteBasePath}/${outputDir -+ .split(docPath)[1] -+ .replace(/^\/+/g, "")}/${item.infoId}`.replace(/^\/+/g, "") -+ : infoBasePath; - } - if (item.infoId) - item.infoPath = infoBasePath; -@@ -473,7 +475,7 @@ custom_edit_url: null - let targetDocsPluginId; - if (pluginId) { - try { -- const pluginConfig = getPluginConfig(plugins, pluginId); -+ const pluginConfig = getPluginConfig(pluginInstances, pluginId); - targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {}; - targetDocsPluginId = pluginConfig.docsPluginId; - } -@@ -527,7 +529,7 @@ custom_edit_url: null - let targetDocsPluginId; - if (pluginId) { - try { -- const pluginConfig = getPluginConfig(plugins, pluginId); -+ const pluginConfig = getPluginConfig(pluginInstances, pluginId); - targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {}; - targetDocsPluginId = pluginConfig.docsPluginId; - } -@@ -604,7 +606,7 @@ custom_edit_url: null - let targetConfig; - if (pluginId) { - try { -- const pluginConfig = getPluginConfig(plugins, pluginId); -+ const pluginConfig = getPluginConfig(pluginInstances, pluginId); - targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {}; - } - catch { -@@ -653,7 +655,7 @@ custom_edit_url: null - let targetConfig; - if (pluginId) { - try { -- const pluginConfig = getPluginConfig(plugins, pluginId); -+ const pluginConfig = getPluginConfig(pluginInstances, pluginId); - targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {}; - } - catch { diff --git a/platforms/anchor-platform/CONTRIBUTING.md b/platforms/anchor-platform/CONTRIBUTING.md deleted file mode 100644 index 81cede6349..0000000000 --- a/platforms/anchor-platform/CONTRIBUTING.md +++ /dev/null @@ -1,341 +0,0 @@ ---- -draft: true ---- - -# Welcome to Anchor Platform Madness - -Hello, and welcome to the newly versioned home of the Anchor Platform -documentation! - -We're super glad to have you here, and hopefully this document will help you -understand how (and more importantly _where_) to make the needed changes to our -documentation. Let's start off with a bit of Docusaurus vocabulary, shall we? - -## TL;DR - -- For _unreleased_ versions of Anchor Platform: - - Add and edit docs in `/platforms/anchor-platform` - - Update and regenerate API docs in `/openapi/anchor-platform/main-*.yaml` -- For _released_ versions of Anchor Platform: - - Update and change docs in `/ap_versioned_docs` - - Update and regenerate API docs in `/openapi/anchor-platform/versions/*.yaml` - -Release a **new version** using the following yarn script: - -```bash -# replace `3.0.0` with the needed version -VERSION=3.0.0 yarn ap:versions:new -``` - -> _Note:_ I think the above yarn command is currently incompatible with Windows, -> though I could be wrong. - -Regenerate API docs for **already released** versions using the following yarn -script. This regenerates API docs for **all** the released versions, so you may -want to be judicious about which files you add to your commit. - -```bash -yarn ap:versions:regen -``` - -## Table of Contents - -- [TL;DR](#tldr) -- [More About Docusaurus than You Ever Wanted to Know](#more-about-docusaurus-than-you-ever-wanted-to-know) - - [Versions Nomenclature](#versions-nomenclature) - - [Plugins](#plugins) - - [Instances](#instances) - - [Links](#links) - - [Examples](#examples) -- [Directories to Know](#directories-to-know) - - [Directories You Already Know About](#directories-you-already-know-about) - - [New Shiny Directories](#new-shiny-directories) -- [Making New Versions](#making-new-versions) - - [Use Docusaurus to "Tag" a New Release](#use-docusaurus-to-tag-a-new-release) - - [Configure the OpenAPI plugin](#configure-the-openapi-plugin) - - [Copy the (bundled) OpenAPI Specfiles to the Versioned Directory](#copy-the-bundled-openapi-specfiles-to-the-versioned-directory) - - [Add Configuration to the OpenAPI Plugin Instance](#add-configuration-to-the-openapi-plugin-instance) -- [Updating Old Versions](#updating-old-versions) - - [Update Documentation Pages](#update-documentation-pages) - - [Update API Specification](#update-api-specification) - -## More About Docusaurus than You Ever Wanted to Know - -I know it can feel a bit mysterious, but here's some knowledge and context to -help your understanding of what's ahead. - -### Versions Nomenclature - -This is how Docusaurus defines these terms, so that's what I'll use in this -document, as well. - -- The **current version** refers to the version of the AP docs contained in the - `/platforms/anchor-platform` directory. This set of docs is available at the - `/platforms/anchor-platform/next` URL. This is the "under construction" set of - docs. - -- The **latest version** refers to the the most recently "released" set of AP - docs. These are located in `/ap_versioned_docs` (more on that later), and is - available at the `/platforms/anchor-platform` URL. This is the "stable" set of - docs. - -### Plugins - -There are two Docusaurus plugins at play here: - -1. `@docusaurus/plugin-content-docs` is the workhorse of Docusaurus. It handles - markdown rendering, routing, etc. When you think of updating `some-file.mdx`, - this is the plugin you're using. -2. `docusaurus-plugin-openapi-docs` is the plugin that is used to generate MDX - pages from the OpenAPI specfiles. This plugin is capable of versioning on its - own some some care and consideration must be taken in regards to its - configuration. - -Both of these plugin configurations have been broken out into a -`/config/anchorPlatform.config.ts` file, to ease management of them and -de-clutter somewhat the main `docusaurus.config.ts` file. - -### Instances - -This is where it gets a bit more "in the weeds," but I promise this part is -helpful to know. Both of the [plugins](#plugins) I mentioned above are really -just _instances_ of those two plugins. In fact each of those plugins is used -elsewhere in our docs site for Horizon, SDP, and just "regular" docs. It's not -_generally_ important to consider different plugin instances, but it _is_ -**quite relevant** when we discuss links. So... - -### Links - -Most often, **especially in versioned docs**, it's important to -[link to other docs by _relative_ file paths](https://docusaurus.io/docs/versioning#link-docs-by-file-paths). -This lets Docusaurus rewrite URLs when necessary at build-time. - -However, there's a **BIG EXCEPTION**! Docusaurus can only handle these links -when the source and target files are both process by the same _plugin instance_. -So, in practical terms: - -- If you are linking from **and** to MDX documents _within_ the same docs plugin - instance, use _relative file_ paths. -- If you are linking _across_ plugin instances, you **must** use _URL paths_. By - convention, we use _absolute_ paths for this, too, to make it a little more - obvious when this behavior is taking place. - -#### Examples - -This should help to make it a bit clearer. - -- I want to link _from_ the MDX document - `/platforms/anchor-platform/admin-guide/sep6/configuration.mdx` _to_ the MDX - document - `/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx`: - - We're in the same `/platforms/anchor-platform` plugin instance - - Use a **relative file** path - - Link to it - `[something like this](../../api-reference/platform/rpc/methods/notify_amounts_updated.mdx)` -- I want to link _from_ the MDX document `/docs/learn/fundamentals/anchors.mdx` - _to_ the MDX document - `/platforms/anchor-platform/admin-guide/getting-started.mdx` - - We're "crossing" between the `/docs` and `/platforms/anchor-platform` plugin - instances - - Use an **absolute URL** path - - Link to it - `[something like this](/platforms/anchor-platform/admin-guide/getting-started)` - (note that there is no `.mdx` extension) -- I want to link _from_ the MDX document - `/platforms/anchor-platform/custody/README.mdx` _to_ the MDX document - `/docs/tools/developer-tools/wallets.mdx` - - We're "crossing" between the `/platforms/anchor-platform` and `/docs` plugin - instances - - Use an **absolute URL** path - - Link to it `[something like this](/docs/tools/developer-tools/wallets)` - (note that there is no `.mdx` extension) -- Wildcard! I want to link _from_ the MDX document - `/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx` - _to_ the MDX document - `/platforms/stellar-disbursement-platform/admin-guide/60-anchor-platform-integration-points.mdx` - - We're "crossing" between the `/platforms/anchor-platform` and - `/platforms/stellar-disbursement-platform` plugin instances - - Use an **absolute URL** path - - Link to it - `[something like this](/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points)` - (note that there is no `.mdx` extension) - -> _Note:_ Replace the `/platforms/anchor-platform` plugin instance with the -> `/platforms/stellar-disbursement-platform` plugin instance in the above -> examples, and it all works pretty much identically. - -Read more about links [here](https://docusaurus.io/docs/markdown-features/links) -(especially toward the bottom of the page). - -## Directories to Know - -There are a few directories that _all_ feed into the end product that is our -versioned AP documentation. - -### Directories You Already Know About - -- `/platforms/anchor-platform` This is where you are now, and traditionally has - been the place to modify any of the markdown content that becomes our AP docs - pages. Not much has changed here, except it does require a shift in mindset. - **All the documentation and content located here should now be considered the - `current` (under construction) version of AP docs.** So, as we're building for - `v3.x` (and beyond, eventually), you'll want to be updating _content here_. - Readers will still be able to _view_ this content before it's "released," but - they'll be told it's the unreleased version. - - There is also a new directory here you should know about: - - `/platforms/anchor-platform/assets` Since it's likely that the various - images, diagrams, etc. will need to update/change from one version to - another, we're co-locating the relevant assets in this directory. This - allows them to be versioned as well. If you want to update a diagram or - image for an upcoming release, you should do so here. - -- `/openapi/anchor-platform` This is the same place you're probably already - familiar with. The files have recently been renamed, but for the most part you - want to modify `main-{platform,callbacks,custody}.yaml`, which will then be - "bundled up" later into the bundled file that contains everything in one file. - **The files in this directory should also be considered the `current` (under - construction) version of AP specification docs.** So, as we're building for - `v3.x` (and beyond, eventually), you'll want to be updating _specfiles here_. - - There is also a new directory here you should know about: - - `/openapi/anchor-platform/versions` This directory stores a copy of the - _bundled_ specfiles for each version that is released. The plugin we use to - generate the API documentation for these specfiles gets configured to use - _these_ versioned specifications for all non-`current` documentation. - -- `/openrpc/src/anchor-platform` Recently, we moved the RPC specification into - this directory so it can benefit from the same build processes and validation - checks as the `stellar-rpc` specification. Similar to the other directories - covered so far, any changes to these files should be considered to be on the - `current` (under construction) version of the documentation. There's not - (yet?) a great deal of tooling or ergonomics around updating the "old" - versions of these specifications. The `current` version of the spec is - generated at - `/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json`. - This means it _does_ get included in the versioning process, so any changes to - "old" versions will likely just need to be made in those versioned specfiles - for now (more on that in the next section). - -### New Shiny Directories - -- `/ap_versioned_sidebars` We can pretty well breeze right past this one. When - you make a new version of the docs, Docusaurus stores a copy of the sidebar at - that point in time. You shouldn't really need to bother yourself with anything - in here. - -- `/ap_versioned_docs` This is where the "released" sets of the AP docs live. - Each time a version is released, _everything_ from within the - `/platforms/anchor-platform` directory gets copied into a subdirectory here. - You'll notice we already have a version `v2.8.4` here. As we release `v3.x`, a - _new_ copy of the files will be placed here. The `latest` (stable) copy of AP - docs are drawn from within this directory. If you come across something to fix - or update in a released version of the docs, you'll need to update accordingly - here. - -## Making New Versions - -As noted in the [TL;DR](#tldr), this process is automated with the -`VERSION=3.0.0 yarn ap:versions:new` script. However, here's what's happening -under the hood of that script. - -### Use Docusaurus to "Tag" a New Release - -It's actually pretty simple! Use the Docusaurus CLI to make a new release: - -```bash -# `ap` is the ID of the AP `@docusaurus/plugin-content-docs` plugin instance -yarn docusaurus docs:version:ap 3.0.0 -``` - -That makes a new copy of the docs in `/ap_versioned_docs`, and it will pretty -well "work" to get the new version displayed on the site. Any future changes to -the 3.0.0 version of the docs should be made within the `/ap_versioned_docs` -directory. - -### Configure the OpenAPI plugin - -We'll also want to be able to modify/update/re-generate the API documentation if -the need arises. So, we'll need to configure that -`docusaurus-plugin-openapi-docs` plugin instance accordingly. - -#### Copy the (bundled) OpenAPI Specfiles to the Versioned Directory - -At the moment, it's just as simple as copying the files: - -```bash -cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-3.0.0.yaml -cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-3.0.0.yaml -cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-3.0.0.yaml -``` - -> Notice how we're copying the _bundled_ file, not the _main_ file. This makes -> sure the versioned file contains everything it needs. - -#### Add Configuration to the OpenAPI Plugin Instance - -> _Note_: These `versions` parts of the configuration are now generated -> dynamically, using a `makeVersions()` function, so these manual config steps -> shouldn't need to be done. You _may_ want to advance/adjust the -> `anchorPlatformNextVersion` string in the config file, when you release a new -> version of docs, though. - -In order to be able to use the plugin's CLI to update already-released versions, -we have to update the configuration in `/config/anchorPlatform.config.ts`. Make -a new entry in each of the specfiles' `versions` object, and copy the formatting -of the entries already there. For reference, here's what it currently looks like -for the "platform server" in `v2.8.4`: - -```typescript -ap_platform: { - specPath: "openapi/anchor-platform/bundled-platform.yaml", - outputDir: "platforms/anchor-platform/api-reference/platform/transactions", - hideSendButton: true, - template: "src/template.mustache", - version: "3.0.0", - label: "v3.0.0", - baseUrl: '/platforms/anchor-platform/next/api-reference/platform/transactions', - versions: { - "2.8.4": { - specPath: "openapi/anchor-platform/versions/platform-2.8.4.yaml", - outputDir: "ap_versioned_docs/version-2.8.4/api-reference/platform/transactions", - label: "v2.8.4", - baseUrl: "/platforms/anchor-platform/api-reference/platform/transactions" - } - } -} -``` - -## Updating Old Versions - -### Update Documentation Pages - -Let's say I find a misspelling in the `v2.8.4` Admin Guide documentation. Find -the relevant file in the `/ap_versioned_docs/version-2.8.4` directory, fix it -and commit. Content updates are pretty easy here. - -> _Note_ Since the RPC specification is treated similar to the MDX docs, use the -> same process to make updates to the RPC specfile. For `v2.8.4`, it's located -> here: -> `/ap_versioned_docs/version-2.8.4/api-reference/platform/rpc/anchor-platform.openrpc.json` - -### Update API Specification - -This is a little more involved, but not much. Find and change the relevant -part(s) of the -`/openapi/anchor-platform/versions/{platform, callbacks,custody}-2.8.4.yaml` -specfile. - -Then, regenerate the MDX pages: - -```bash -# `ap-apis` is the ID of the AP `docusaurus-plugin-openapi-docs` plugin instance -yarn docusaurus gen-api-docs:version -p ap-apis:2.8.4 -``` - -> _Note:_ You can use a yarn script to automatically regenerate API docs for -> **all** released versions: `yarn ap:versions:regen`. This does indeed -> regenerate all versions, so you may want to be choosy about which files you -> add to the commit. - -Commit the changes, and you're off to the races. diff --git a/platforms/anchor-platform/README.mdx b/platforms/anchor-platform/README.mdx deleted file mode 100644 index cd11d48259..0000000000 --- a/platforms/anchor-platform/README.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "The Anchor Platform: Build and Manage On/Off-Ramps on the Stellar Network" -sidebar_position: 10 -sidebar_label: Anchor Platform Introduction -description: "Learn how the Anchor Platform (AP) simplifies the process of building and managing a Stellar on and off-ramp. Learn about integrating with the AP or get API information." ---- - -# Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. - -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/platforms/anchor-platform/admin-guide/README.mdx b/platforms/anchor-platform/admin-guide/README.mdx deleted file mode 100644 index d955ccbfc7..0000000000 --- a/platforms/anchor-platform/admin-guide/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Admin Guide -sidebar_position: 10 ---- - -import DocCardList from "@theme/DocCardList"; - -All you need to know about setting up, running, and using the Anchor Platform. - - diff --git a/platforms/anchor-platform/admin-guide/architecture.mdx b/platforms/anchor-platform/admin-guide/architecture.mdx deleted file mode 100644 index d9abf6435c..0000000000 --- a/platforms/anchor-platform/admin-guide/architecture.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Architecture" -sidebar_position: 20 ---- - -## Architecture - -Before starting with the Anchor Platform, let's get familiar with the architecture. This section will describe the components involved and how they interact. - -### Fundamental Architecture - -The following architectural components are required for all deployments of the Anchor Platform. - -[![fundamental anchor platform architecture](../assets/anchor-platform-architecture-1.png)](../assets/anchor-platform-architecture-1.png) - -#### Client - -The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called [SEPs][seps] (Stellar Ecosystem Proposals). - -#### SEP Server - -The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair or the KYC status of a customer, it makes synchronous [callback][callback-api] requests to the business server and returns the information in a SEP-compliant format. - -:::note - -The SEP server will never store any sensitive information, such as KYC (PII), in the database. - -::: - -#### Business Server - -The business server is a service that you (the business) must implement to connect the Anchor Platform with your internal systems. The business server responds to callback requests sent by the SEP server, such as requests for a quote, receives events sent by event service, such as notification of a received payment to your Stellar account, and provides updates to the platform server when off-chain events occur, such as the initiation of a bank transfer to a customer. - -#### Platform Server - -The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its [API][platform-api]. - -#### Database - -The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. It is primary used to store transactions. - -### Complete Architecture - -In addition to the components described above, the Anchor Platform includes several other components that offer additional functionality. Your business can chose to which of the additional components to use, but the diagram below visualizes the architecture of the system if all components are utilized. - -[![complete anchor platform architecture](../assets/anchor-platform-architecture-2.png)](../assets/anchor-platform-architecture-2.png) - -#### Event Service - -The event service enables the Anchor Platform to send HTTP webhooks to registered clients and your business server when the state of transactions change, removing the need for clients and/or your business server to poll the Anchor Platform's APIs. It works by reading events from published to a Kafka topic by the other Anchor Platform components. [Read more][events] about using the event service. - -#### Custody Server - -The custody server connects to enterprise wallet providers, such as Fireblocks, to send and receive payments for transactions initiated via the Anchor Platform. This service is an alternative to the Stellar Observer for businesses who use one of the supported providers. In addition to the functionality offered by the Stellar Observer, the Custody Server can also facilitate outbound payments to client's Stellar accounts. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have an integration with your wallet provider, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was sent to or from your Stellar accounts via the [Platform API][platform-api]. - -Currently the only supported provider is Fireblocks. - -#### Stellar Observer - -The Stellar observer, an alternative to the custody server pictured above, monitors the Stellar blockchain using Horizon, automatically detects user payments sent to the business, and updates the corresponding transactions in the Anchor Platform's database. If you also use the [events] service, payments to your accounts will trigger a HTTP callback made to your business server. - -If you already have a solution for monitor payments to your Stellar accounts, such as an integration with your exchange, Horizon, or RPC, then this component is not required, although your business server will need to notify the Anchor Platform when a payment associated with an Anchor Platform transaction was made to your one of your Stellar accounts via the [Platform API][platform-api]. - -[seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../api-reference/platform/transactions/README.mdx -[callback-api]: ../api-reference/callbacks/README.mdx -[events]: ./events/README.mdx diff --git a/platforms/anchor-platform/admin-guide/component/observer/observer.mdx b/platforms/anchor-platform/admin-guide/component/observer/observer.mdx deleted file mode 100644 index 133ac576f2..0000000000 --- a/platforms/anchor-platform/admin-guide/component/observer/observer.mdx +++ /dev/null @@ -1,36 +0,0 @@ -Using the Payment Observer allows you to delegate this step to the Anchor Platform. To enable the Payment Observer, use the `--stellar-observer` flag in the command section of the [compose file](../../getting-started.mdx#configuration). - -The Payment Observer will track all transactions sent to the distribution account. When the transaction with the expected memo is detected in the network, the status will automatically change to `pending_anchor` and event will be the emitted (if Kafka is used). - -In order to update the transaction's statuses, the observer makes corresponding JSON-RPC requests to the platform. It should use the following URL. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -``` - - - -:::caution - -The Payment Observer won't validate the amounts. It's your responsibility to verify that the amount sent by the user is correct. - -::: - -:::info - -If you already have a system that monitors payments, make sure that the logic of the system matches the description below: - -First, wait for the transaction to be included in the ledger (using an SDK). This transaction must have the expected memo and destination address (distribution account). Once this transaction has been detected and verified, notify the user that the funds have been received using the [notify_onchain_funds_received](#funds-received-1) JSON-RPC request. - -::: - -:::tip - -The Fireblocks custody service will automatically track transactions and notify the user that the funds have been received. See the [Fireblocks custody service documentation][fireblocks] for more details. - -::: - -[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/platforms/anchor-platform/admin-guide/component/rpc/error.mdx b/platforms/anchor-platform/admin-guide/component/rpc/error.mdx deleted file mode 100644 index 27746e6f0e..0000000000 --- a/platforms/anchor-platform/admin-guide/component/rpc/error.mdx +++ /dev/null @@ -1,16 +0,0 @@ -
- -| Error code | Meaning | -| :--------- | :------------------------------------------- | -| -32600 | The JSON sent is not a valid Request object | -| -32601 | The method does not exist / is not available | -| -32602 | Invalid method parameter(s) | -| -32603 | Internal JSON-RPC error | - -
- -:::tip - -We will also reference a `$transaction_id` variable. This is an identification of transaction that is being returned from the Anchor Platform on an withdrawal or deposit start request. You can obtain the transaction ID by connecting the test wallet to your local Anchor Platform instance. - -::: diff --git a/platforms/anchor-platform/admin-guide/component/rpc/request.mdx b/platforms/anchor-platform/admin-guide/component/rpc/request.mdx deleted file mode 100644 index 9157143afc..0000000000 --- a/platforms/anchor-platform/admin-guide/component/rpc/request.mdx +++ /dev/null @@ -1,29 +0,0 @@ -The Request object must contain the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0" -- method - - string - - A String containing the name of the method to be invoked. List of available methods you can see in [JSON-RPC Methods][json-rpc-methods] -- params - - object - - A Structured value that holds the parameter values, corresponding to method call, to be used during the invocation of the method -- id - - string - - An identifier established by the client. The Server will reply with the same value in the Response object - - - -:::tip - -It's possible to provide multiple updates in a single JSON-RPC request (by placing multiple JSON-RPC request objects). When an update is done in this way, all updates will be done sequentially. - -Most importantly, each JSON-RPC request is not atomic. If one update fails, all previous updates WILL be applied and all subsequent updates WILL be processed and applied as well. - -::: diff --git a/platforms/anchor-platform/admin-guide/component/rpc/response.mdx b/platforms/anchor-platform/admin-guide/component/rpc/response.mdx deleted file mode 100644 index 02d8081034..0000000000 --- a/platforms/anchor-platform/admin-guide/component/rpc/response.mdx +++ /dev/null @@ -1,33 +0,0 @@ -The Response is expressed as a single JSON Object, with the following attributes: - - - -- ATTRIBUTE - - DATA TYPE - - DESCRIPTION -- jsonrpc - - string - - A String specifying the version of the JSON-RPC protocol. It's set to "2.0" -- result - - object - - A Structured value that holds the updated transaction details -- id - - string - - An identifier sent by the client -- error - - object - - A Structured value that holds the error details - - id - - string - - Unique id of the transaction for which an error occurred - - code - - number - - A number that indicates the error type that occurred. Please see a list of [error codes](#error-codes) below - - message - - string - - A String providing a short description of the error - - data - - string - - A primitive or structured value that contains additional information about the error - - diff --git a/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx b/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx deleted file mode 100644 index f00b8ee7f5..0000000000 --- a/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Before making JSON-RPC requests, let's first create a template for making a request to the Anchor Platform. - - - -```bash -# call-json-rpc.sh -#!/usr/bin/env bash - -curl localhost:8085 \ - -X POST \ - -H 'Content-Type: application/json' \ - --data "@$1" -``` - - - -This small script will make a JSON-RPC request to the Anchor Platform hosted on the default port (8085). JSON transaction data stored in the provided file will be used as body (requests must be an array). diff --git a/platforms/anchor-platform/admin-guide/component/security/api_key.mdx b/platforms/anchor-platform/admin-guide/component/security/api_key.mdx deleted file mode 100644 index cc5ce4d80c..0000000000 --- a/platforms/anchor-platform/admin-guide/component/security/api_key.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To enable API key authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=api_key -# Will be used as API key -SECRET_PLATFORM_API_AUTH_SECRET="your API key that business server will use" -``` - - - -Once enabled, all requests must include a valid `X-Api-Key` header, set to the configured API key. diff --git a/platforms/anchor-platform/admin-guide/component/security/jwt.mdx b/platforms/anchor-platform/admin-guide/component/security/jwt.mdx deleted file mode 100644 index e2160a7cea..0000000000 --- a/platforms/anchor-platform/admin-guide/component/security/jwt.mdx +++ /dev/null @@ -1,16 +0,0 @@ -To enable JWT authentication, modify your `dev.env` file: - - - -```bash -# dev.env -PLATFORM_API_AUTH_TYPE=jwt -# Will be used to sign the JWT token -SECRET_PLATFORM_API_AUTH_SECRET="your secret that business server will use" -``` - - - -Anchor Platform uses the HMAC SHA-256 (HS256) algorithm to sign JWT tokens. Ensure that `SECRET_PLATFORM_API_AUTH_SECRET` is at least 32 characters long for security. - -Once enabled, all requests must include a valid `Authorization` header with the format `Bearer `. diff --git a/platforms/anchor-platform/admin-guide/component/security/security.mdx b/platforms/anchor-platform/admin-guide/component/security/security.mdx deleted file mode 100644 index 76a3832c30..0000000000 --- a/platforms/anchor-platform/admin-guide/component/security/security.mdx +++ /dev/null @@ -1,11 +0,0 @@ -:::caution - -By default, the Platform API's endpoints such as `GET /transactions` and `GET /transactions/:id` are not protected, and are accessible by anyone who has access to the server, including wallet applications. - -::: - -:::info - -It's recommended to keep Platform server accessible only from the private network. However, you may want to add additional layer of protection via securing the API. - -::: diff --git a/platforms/anchor-platform/admin-guide/custody-services/README.mdx b/platforms/anchor-platform/admin-guide/custody-services/README.mdx deleted file mode 100644 index 5556776d58..0000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Custody Services -sidebar_position: 80 ---- - -import DocCardList from "@theme/DocCardList"; - -Using a custody service will allow you to use an outside service to store and manage your wallets. - - diff --git a/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx b/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx deleted file mode 100644 index 05483f0f6f..0000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Configuration -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Custody Server Configuration - -If you want to use an external custody service to store and manage your wallets, then you need to deploy one more service - the Custody Server. - -This service also needs the `STELLAR_ANCHOR_CONFIG` that was previously mentioned. By default, the `anchor-config-default-values.yaml` config file will be used. - -Also, now you don't need to deploy the Stellar Observer since the Custody Server will be responsible for its functionality. - -Update the configuration file of the Anchor Platform with the base URL and port. - - - -```yaml -custody_server: - # The listening port of the Custody Server. - # Default value: 8086 - port: 8086 - # The base URL of the Custody Server. - # Default value: http://localhost:8086 - base_url: http://localhost:8086 -``` - - - -Configure authentication type. - - - -```yaml -custody_server: - auth: - # Type of authentication that is used when the Anchor Platform communicates with the Custody Server. - # Supported values: [none, api_key, jwt] - # Default value: none - type: none -``` - - - -If you set the `api_key` or `jwt` authentication type, then you need to add an environment variable. - - - -```bash -# dev.env -SECRET_CUSTODY_SERVER_AUTH_SECRET="Custody Server auth secret" -``` - - - -Start the Custody Server using Gradle or Docker. - - - -```bash -./gradlew service-runner:bootRun --args=--custody-server -docker run stellar/anchor-platform:latest --custody-server -``` - - - -## Anchor Platform Configuration - -Update the configuration file of the Anchor Platform with the deposit info generator type for SEP-24 and SEP-31. Also, you need to configure a trustline check, if you use JSON-RPC. - - - -```yaml -sep24: - # Used to choose how the SEP-24 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, none] - # Default value: self - deposit_info_generator_type: custody -sep31: - # Used to choose how the SEP-31 deposit information (deposit address, memo and memo type) will be generated - # Supported value: [self, custody, api] - # Default value: self - deposit_info_generator_type: custody - ## Trustline check configuration. Used only when custody integration is enabled -custody: - trustline: - ## @param: checkCronExpression - ## @type: string - ## Cron expression which defines how often a trustline check job runs. By default, a job runs every minute - # - check_cron_expression: "0 * * * * *" - ## @param: checkDuration - ## @type: integer - ## Determines how long (in MINUTES) the trustline will be checked. By default - 1 hour (60 minutes) - # - check_duration: 60 - ## @param: checkTimeoutMessage - ## @type: string - ## The message that will be added to the SEP transaction after the duration check is exceeded - # - check_timeout_message: Trustline check timed out -``` - - - -:::info - -- `self` - memo and memo type are generated in the local code, and the distribution account is used for the deposit address. -- `custody` - memo and memo type are generated through Custody API, for example Fireblocks, as well as the deposit address. -- `none` - deposit address, memo, and memo type should be provided by the business in a PATCH/JSON-RPC request. -- `api` - memo and memo type are generated through calling the anchor's GET /unique_address endpoint. - -::: - -## Kotlin Reference Server Configuration - -Update the configuration file of the Kotlin Reference Server to enable custody integration. - - - -```yaml -app: - # Flag that indicates that the custody integration is enabled and the payment will be submitted using the Custody Server. - # Default value: false - custodyEnabled: true -``` - - diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx deleted file mode 100644 index 43e037461e..0000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Fireblocks -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Configure [Fireblocks](https://fireblocks.io) to act as a custody service that stores and manages your wallets. - - diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx deleted file mode 100644 index 0df4d0761d..0000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Configure Fireblocks workspace: - -1. [Configure API Co-Signer](https://support.fireblocks.io/hc/en-us/articles/4581830426268) -2. [Add API User](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-users) -3. [Configure Webhook URL](https://support.fireblocks.io/hc/en-us/articles/4408110107794-Configuring-Webhook-URLs) -4. [Enable One-Time Address feature](https://support.fireblocks.io/hc/en-us/articles/4409104568338) - -Update the configuration file of the Custody Server. - - - -```yaml -custody: - # Default value: none - type: fireblocks - fireblocks: - # The base URL of the Fireblocks API - # Default value: https://api.fireblocks.io - base_url: https://api.fireblocks.io - # ID of Fireblocks vault account that will be used for payments - vault_account_id: "vault_account_id" - # Fireblocks public key that is used to verify a webhook signature - public_key: "public_key" - # Mappings of fireblocks asset codes to stellar asset codes. For example: - # XLM_USDC_T_CEKS stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - # XLM_TEST stellar:native - # Codes should be separated with a space and each pair of codes should be on a new line - asset_mappings: "asset_mappings" - reconciliation: - # Cron expression which defines how often the transaction reconciliation job runs. - # By default, job runs every 15 minutes. - # Default value: 0 0/15 * * * * - cron_expression: "0 0/15 * * * *" - # Determines how many times the transaction reconciliation job will attempt to update the status of the - # transaction before marking it as failed. - # Default value: 10 - max_attempts: 10 - retry_config: - # Determines how many times the Fireblocks client will attempt to send a request before marking a call as failed. - # Default value: 3 - max_attempts: 3 - # Interval between Fireblocks client call attempts (in ms) - # Default value: 1000 - delay: 1000 -``` - - - -Add the environment variables. - - - -```bash -# dev.env -# API key, that will be added to JWT token claims. JWT token will be sent in requests to Fireblocks API -SECRET_CUSTODY_FIREBLOCKS_API_KEY="Fireblocks API key" -# Secret key, that is used to sign JWT token -SECRET_CUSTODY_FIREBLOCKS_SECRET_KEY="Fireblocks secret key" -``` - - diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx deleted file mode 100644 index 613d31bca2..0000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Example" -sidebar_position: 10 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -[comment]: # "Sequence diagram definitions are located in /static/definitions folder" -[comment]: # "To updated them, use https://sequencediagram.org" - -### SEP-24 deposit flow with webhook: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_webhook](../../../assets/sequence_diagram_sep24_deposit_webhook.png)](../../../assets/sequence_diagram_sep24_deposit_webhook.png) -
- -### SEP-24 deposit flow with reconciliation job: - -- request_offchain_funds -- notify_offchain_funds_received -- do_stellar_payment -- notify_onchain_funds_sent [![sequence_diagram_sep24_deposit_job](../../../assets/sequence_diagram_sep24_deposit_job.png)](../../../assets/sequence_diagram_sep24_deposit_job.png) -
- -### SEP-24 withdrawal flow with webhook: - -- do_stellar_payment -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_webhook](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png)](../../../assets/sequence_diagram_sep24_withdrawal_webhook.png) -
- -### SEP-24 withdrawal flow with reconciliation job: - -- request_onchain_funds -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep24_withdrawal_job](../../../assets/sequence_diagram_sep24_withdrawal_job.png)](../../../assets/sequence_diagram_sep24_withdrawal_job.png) -
- -### SEP-31 receive flow with webhook: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_webhook](../../../assets/sequence_diagram_sep31_receive_webhook.png)](../../../assets/sequence_diagram_sep31_receive_webhook.png) -
- -### SEP-31 receive flow with reconciliation job: - -- notify_onchain_funds_received -- notify_offchain_funds_sent [![sequence_diagram_sep31_receive_job](../../../assets/sequence_diagram_sep31_receive_job.png)](../../../assets/sequence_diagram_sep31_receive_job.png) diff --git a/platforms/anchor-platform/admin-guide/events/README.mdx b/platforms/anchor-platform/admin-guide/events/README.mdx deleted file mode 100644 index 43cc58bd93..0000000000 --- a/platforms/anchor-platform/admin-guide/events/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Event Handling -sidebar_position: 85 ---- - -import DocCardList from "@theme/DocCardList"; - -Receive transaction updates through HTTP webhook events. - - diff --git a/platforms/anchor-platform/admin-guide/events/delivery.mdx b/platforms/anchor-platform/admin-guide/events/delivery.mdx deleted file mode 100644 index cd6d3148e2..0000000000 --- a/platforms/anchor-platform/admin-guide/events/delivery.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Delivery Guarantees" -sidebar_position: 30 ---- - -## Delivery Guarantees - -Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the `TRANSACTION` topic, the events may be delivered out of order. - -:::caution - -Any transaction logic that depends on the order should use the transaction `status` and the `updated_at` fields to determine the order of the events. - -::: - -Next subsections will describe the delivery guarantees from the client and the business server perspective. - -### Client Delivery Guarantees - -For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client. - -### Business Server Delivery Guarantees - -The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server. - -:::note - -The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable. - -::: diff --git a/platforms/anchor-platform/admin-guide/events/getting-started.mdx b/platforms/anchor-platform/admin-guide/events/getting-started.mdx deleted file mode 100644 index 7547bbf70b..0000000000 --- a/platforms/anchor-platform/admin-guide/events/getting-started.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Getting Started -sidebar_position: 10 ---- - -Anchor Platform provides an event service that sends HTTP webhook notifications to: - -**Business Servers** - -- Transaction status changes -- Quote updates -- Customer KYC status changes - -Event schemas for business servers are defined in the [API reference](../../api-reference/callbacks/post-event.api.mdx). - -**Client Applications** - -- Transaction status changes affecting their users -- Customer KYC status changes affecting their users - -_Event schemas for client applications are defined in their respective SEPs:_ - -- [SEP-6 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#single-historical-transaction) -- [SEP-12 Customer Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#response) -- [SEP-24 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#single-historical-transaction) -- [SEP-31 Transaction Events](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-transaction) - -This eliminates the need for business servers and client applications to continuously poll the APIs for updates. diff --git a/platforms/anchor-platform/admin-guide/events/integration.mdx b/platforms/anchor-platform/admin-guide/events/integration.mdx deleted file mode 100644 index 98c919e72b..0000000000 --- a/platforms/anchor-platform/admin-guide/events/integration.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: "Integration" -sidebar_position: 20 ---- - -This guide will walk you through integrating with the event service to start receiving events. The event service currently only supports Apache Kafka as the backend message broker. - -It assumes familiarity with Kafka and will not cover how to set up a Kafka cluster. - -## Requirements - -Anchor Platform will send events to the `TRANSACTION` Kafka topic. The event service will consume events from this topic and send them to the appropriate endpoints. - -## Configuration - -First, the event service's Kafka producer need to be configured using the `event.queue` section of the configuration file or setting the environment variables. The following is the set of required environment variables needed to configure the event service's Kafka producer: - - - -```bash -# dev.env -EVENTS_ENABLED=true -EVENTS_QUEUE_TYPE=kafka -EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092 -``` - -```yaml -# dev.services.yaml -events: - enabled: true - queue: - type: kafka - kafka: - bootstrap_server: localhost:9092 -``` - - - -Anchor Platform allows a subset of the Kafka producer's client configuration to be set. See the [default values file][default-values-file] for more information what is available. For more information on the Kafka producer's client configuration, see the [Kafka documentation](https://kafka.apache.org/documentation/#producerconfigs). - -Next, the event processor needs to be configured in the `event_processor` section of the Anchor Platform Configuration file or setting the environment variables. - - - -```bash -# dev.env -EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true -EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true -``` - -```yaml -# dev.services.yaml -event_processor: - client_status_callback: - enabled: true - callback_api_request: - enabled: true -``` - - - -This will enable the event processor to start processing events from `TRANSACTION` topic. In this example, the event processor will send events to client and business server callback endpoints. - -## Receiving Events - -The event service can be used to send events to client and business server callback endpoints. The event service will send events to these endpoints as HTTP POST requests with the event data in the request body. - -### As a Client Application - -Client applications can receive updates about their users' transactions and customer information. The schema of the event data will depend on the type of event being sent. - -To receive events as a client application, you will need to expose callback URLs that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. The schema of the event data will depend on the type of event being sent. Anchor Platform allows unique endpoints to be configured by event type. - -Anchor Platform will only send events to clients listed in the client configuration. See the [client configuration documentation][clients-config] for more information. - -#### Callback Signing - -Anchor Platform signs the callback requests it sends to client applications. The signature is included in the `Signature` header of the request. The callback URL signature specification can be found in the corresponding SEP protocol specifications. - -- [SEP-0006](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md#url-callback-signature) -- [SEP-0012](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#callback-post-request) -- [SEP-0024](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#url-callback-signature) -- [SEP-0031](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#url-callback-signature) - -### As a Business Server - -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../api-reference/callbacks/post-event.api.mdx) for more information about the schema of the event data. - -To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. - -#### Configuration - -The event service's callback API can be configured using the `callback_api` section of the Anchor Platform configuration file or setting the environment variables. - -The following is an example of how to configure the event service's callback API with JWT authentication: - - - -```bash -# dev.env - -# note `/callback` will not be used for event callbacks -# instead events will be sent to `http://localhost:8081/event` -# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: jwt - jwt: - expiration_milliseconds: 30000 - http_header: Authorization -``` - - - -The following is an example of how to configure the event service's callback API with API key authentication: - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://localhost:8081/callback -CALLBACK_API_AUTH_TYPE=api_key -CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key -SECRET_CALLBACK_API_AUTH_SECRET="your API key" -``` - -```yaml -# dev.services.yaml -callback_api: - base_url: http://localhost:8081/callback - auth: - type: api_key - api_key: - http_header: X-Api-Key -``` - - - -This configures the event service's callback API that will be used to send events to client and business server callback endpoints. The following are the supported configuration options: - -- `base_url`: The base URL of the business server's callback endpoint. -- `secret`: The secret to be used when sending events to the business server's callback endpoint. This is used to sign the request body when JWT authentication is enabled and it is the API key when API key authentication is enabled. -- `auth`: The authentication method to be used when sending events to the business server's callback endpoint. The following are the supported authentication methods: - - `JWT`: The event service will send a JSON Web Token (JWT) in the `Authorization` header of the request. The following are the supported configuration options: - - `expiration_milliseconds`: The expiration time of the JWT in milliseconds. - - `http_header`: The header in which the JWT will be sent. - - `API_KEY`: The event service will send an API key in the `Authorization` header of the request. The following are the supported configuration options: - - `http_header`: The header in which the API key will be sent. - -[default-values-file]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[clients-config]: ../../admin-guide/sep10/README.mdx#config-with-client-attribution diff --git a/platforms/anchor-platform/admin-guide/getting-started.mdx b/platforms/anchor-platform/admin-guide/getting-started.mdx deleted file mode 100644 index abb067e567..0000000000 --- a/platforms/anchor-platform/admin-guide/getting-started.mdx +++ /dev/null @@ -1,435 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 30 ---- - -## Installation - -import { CodeExample } from "@site/src/components/CodeExample"; - -The easiest way to install the Anchor Platform is to pull the [docker image][anchor-platform-image]. - - - -```bash -docker pull stellar/anchor-platform:latest -``` - - - -## Set Up the Development Environment - -In this guide we'll use [docker compose][docker-compose] for simplicity, but you can run the Anchor Platform using other tools that support docker as well, such as [minikube] or a full-blown [kubernetes] cluster. - -Let's create a minimal compose file to get started. - - - -```yaml -# docker-compose.yml -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - ports: - - "8080:8080" - env_file: - - ./dev.env - volumes: - - ./config:/home - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - ports: - - "8085:8085" - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -The `--sep-server` option tells the Anchor Platform to make the API endpoints defined by the SEPs you've enabled via configuration available on port 8080. - -The `--platform-sever` option makes the Platform API available, which is the backend API your service(s) will use to communicate with the Anchor Platform. It will be available on port 8085 - -## Configuration - -For details of the Anchor Platform configurations, please refer to the [`anchor-config-default-values.yaml`](https://github.com/stellar/anchor-platform/blob/main/platform/src/main/resources/config/anchor-config-default-values.yaml) which also defines the default values of each configuration field. - -The Anchor Platform supports two approaches to modify the configuration values: - -- using environment variables -- using a YAML configuration file - -One or a combination of both approaches can be used. Nested variables in the YAML file are expressed using underscores or dots (`_`, `.`) when using environment variables. We'll demonstrate both approaches here, but use environment variables exclusively in subsequent sections. See the full set of configuration options in the Anchor Platform's [default values file][ap-default-values]. - -:::info - -The Anchor Platform does not allow application secrets in the YAML configuration file. Instead, application secrets, which all have the `SECRET_` prefix, must be specified in the environment. - -::: - -Lets create the environment file specified in our docker compose file. - - - -```bash -touch dev.env -``` - - - -And if you're using a YAML configuration file, lets create that too. - - - -```bash -mkdir config -touch config/dev.services.yaml -``` - - - -You'll need to inform the Anchor Platform where it can find your config file. So lets add an environment variable for that. - - - -```bash -# dev.env -STELLAR_ANCHOR_CONFIG=/home/dev.services.yaml -``` - - - -Specify the configuration schema version in your YAML file. - - - -```yaml -# dev.services.yaml -version: 1 -``` - - - -### Configure Horizon or Stellar RPC server connections. - -The Anchor Platform requires the connection to either the Horizon or RPC server to function properly. Either the Horizon or RPC must be configured. If SEP-45 is enabled or contract accounts are used for SEP transactions, the RPC server must be configured. - -#### Use RPC server: - -The list of RPC providers can be found [here](/docs/data/apis/rpc/providers). - - - -```bash -# dev.env STELLAR_NETWORK_TYPE=rpc -STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org -``` - - - -#### Use Horizon server: - - - -```bash -# dev.env STELLAR_NETWORK_TYPE=horizon -STELLAR_NETWORK_HORIZON_URL=https://horizon-testnet.stellar.org -``` - - - -### Changing Port of the Platform Server - -For example, let's change port of the platform server. - -Using environment variables, this is simply: - - - -```bash -# dev.env -PLATFORM_SERVER_PORT=8085 -``` - - - -Or if using YAML configuration: - - - -```yaml -# dev.services.yaml -platform_server: - port: 8085 -``` - - - -### Specify Your Service's Assets - -Lets add the assets your Anchor Platform deployment will utilize. This configuration is specified in a YAML file. If you're only using the Anchor Platform for hosting a SEP-1 stellar.toml file or for running SEP-10 Stellar Authentication, you can skip this step. - - - -```bash -touch config/dev.assets.yaml -``` - - - -In this guide we'll build anchor services for Circle's USDC on Stellar's test network. Update the above values based on the assets you'll be issuing. Make sure to specify the testnet `issuer` in your development file, and create your own `distribution_account` using a tool like [Stellar Lab][stellar-lab]. The `distribution_account` will be used by your clients as the destination account for payments to your service. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 -``` - - - -This file needs to be referenced in our configuration so the Anchor Platform can find it. - -Using environment variables: - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml -``` - - - -Using a YAML file: - - - -```yaml -# dev.services.yaml -assets: - type: file - value: /home/dev.assets.yaml -``` - - - -### Add Data Persistence - -The Anchor Platform supports [PostgreSQL][postgresql] and [Aurora PostgreSQL][aurora-postgresql] for use in production, but also supports [H2][h2] or [SQLite][sqlite] for use in development. For managing migrations, the Anchor Platform uses [Flyway][flyway]. The latest version of PostgreSQL supported by Flyway is PostgreSQL 14. - -Before we move forward, let's add a database to our development environment so the transactions we initiate persist after stopping the service. - -A database is only needed if using the Anchor Platform to facilitate transactions. - - - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env - volumes: - - ./init.sql:/docker-entrypoint-initdb.d/init.sql -``` - - - -Now let's update our environment so the platform server can connect to the database server. - - - -```bash -# dev.env -DATA_TYPE=postgres -DATA_SERVER=db -DATA_DATABASE=platform -DATA_FLYWAY_ENABLED=true - -SECRET_DATA_USERNAME=postgres -SECRET_DATA_PASSWORD=password - -POSTGRES_USER=postgres -POSTGRES_PASSWORD=password -``` - - - -If you're using YAML configuration instead, the `POSTGRES_` environment variables should always be in the environment, as they're for your database server, not the Anchor Platform. The secrets must also be specified in environment. - - - -```yaml -# dev.services.yaml -data: - type: postgres - server: db - database: platform - flyway_enabled: true -``` - - - -We have to create the `platform` database before the platform server can connect to it, so let's make a script to create our database. - - - -```bash -touch init.sql -``` - - - - - -```sql --- init.sql -CREATE DATABASE platform; -``` - - - -Try to run the platform server in addition to the database. - - - -```bash -docker compose up -``` - - - -You should see the logs reporting a successful connection to the postgres database. - -### Configure Platform API Authentication - -To facilitate cross-border payments or deposit & withdrawal transactions, your business will need to fetch and update transaction records from the Anchor Platform's internal API. Currently, the `--sep-server` option makes public SEP APIs, while internal Platform API available on the Platform server, started by `--platform-server` option. Business should make Platform Server accessible only in the internal network, however it's possible to add authentication for accessing the internal Platform API. - -Add the following environment variables. - - - -```bash -# dev.env -PLATFORM_API_BASE_URL=http://platform-server:8085 -PLATFORM_API_AUTH_TYPE=jwt -SECRET_PLATFORM_API_AUTH_SECRET=[your jwt encryption key] -``` - - - -When making requests to the Platform API, add a JWT signed by the secret defined in your environment to the `Authorization` header as a bearer token. - -`PLATFORM_API_BASE_URL` uses `platform` instead of `localhost` as the host because you'll be making requests to the Platform API within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -:::info - -The JWT secret must conform to the JWT JWA Specification (RFC 7518, Section 3.2) stating that keys used with HMAC-SHA algorithms MUST have a size >= 256 bits. - -::: - -### Passing JVM flags - -Anchor Platform uses JVM to run. Sometimes, it's desired to change JVM flags to run the service. To do so, set environmental variable `JVM_FLAGS` to appropriate value - -```bash -# dev.env -JVM_FLAGS="-Xms256m -Xmx2048m" -``` - -:::tip - -If you need to pass environment variable from your machine to container, you should use `environment` compose option to set variables instead. Here's an example of using keystore from your local machine in the container: - -```yaml -# docker-compose.yml -version: "3.8" -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - environment: - JVM_FLAGS: -Djavax.net.ssl.trustStore=/keystore.jks -Djavax.net.ssl.trustStorePassword=${KEYSTORE_PASSWORD} - volumes: - - ${KEYSTORE_LOCATION}:/keystore.jks -# ... -``` - -Where `KEYSTORE_LOCATION` is local keystore location and `KEYSTORE_PASSWORD` is local keystore password. - -::: - -### Sentry - -The Anchor Platform supports [Sentry](https://sentry.io/) for error tracking. To enable Sentry, add the following environment variables. - - - -```bash -# dev.env -SENTRY_DSN=[your sentry dsn] -SENTRY_RELEASE=[your release version] -SENTRY_ENVIRONMENT=[your environment] -SENTRY_DEBUG=[true|false] -SENTRY_AUTH_TOKEN=[your sentry auth token] -``` - - - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/platforms/anchor-platform/admin-guide/overview.mdx b/platforms/anchor-platform/admin-guide/overview.mdx deleted file mode 100644 index 39e5f356ac..0000000000 --- a/platforms/anchor-platform/admin-guide/overview.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Overview" -sidebar_position: 10 ---- - -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). - -The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. - -The Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. - -Below is a list of SEPs currently supported: - -- [SEP-1][sep-1]: [Stellar Info File][sep1-ap] -- [SEP-6][sep-6]: [Programmatic Deposit and Withdrawal][sep6-ap] -- [SEP-10][sep-10]: [Stellar Authentication][sep10-ap] -- [SEP-12][sep-12]: KYC API -- [SEP-24][sep-24]: [Hosted Deposit and Withdrawal][sep24-ap] -- [SEP-31][sep-31]: [Cross-Border Payments API][sep31-ap] -- [SEP-38][sep-38]: Anchor RFQ API -- [SEP-45][sep-45]: [Stellar Authentication for Contract Accounts][sep45-ap] - -The documentation for the Anchor Platform is a work in progress. Developers are welcome to dive into the code and existing documentation on the [GitHub repository][anchor-platform-github], or if you're looking to build an on & off-ramp service compatible with SEP-24, see our [getting started guide][sep24-ap]. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep-10]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md -[sep-12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md -[anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: ./sep1/README.mdx -[sep6-ap]: ./sep6/README.mdx -[sep10-ap]: ./sep10/README.mdx -[sep24-ap]: ./sep24/README.mdx -[sep31-ap]: ./sep31/README.mdx -[sep45-ap]: ./sep45/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep1/README.mdx b/platforms/anchor-platform/admin-guide/sep1/README.mdx deleted file mode 100644 index 95167efca8..0000000000 --- a/platforms/anchor-platform/admin-guide/sep1/README.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Stellar Info File (SEP-1) -sidebar_position: 40 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Let's enable applications to learn more about your service by hosting a `stellar.toml` file at a standardized URL path. This file allows applications to find information about your business, the assets your services utilize, as well as the root URL paths for these services. We can host this file using the Anchor Platform. - -Let's create a file called `dev.stellar.toml` file using the contents below as a starting point. For the full set of attributes, see the [SEP-1 specification][sep-1]. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -In your `dev.env` file, specify the following. - - - -```bash -# dev.env -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml -``` - - - -This will tell the Anchor Platform that it should host the file specified by `SEP1_TOML_VALUE` at `./well-known/stellar.toml`. - -Alternatively, your `stellar.toml` file could be hosted using a proper static file server like [nginx]. As long as your info file includes the appropriate URLs pointing to the Anchor Platform, this will work just fine. - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server diff --git a/platforms/anchor-platform/admin-guide/sep10/README.mdx b/platforms/anchor-platform/admin-guide/sep10/README.mdx deleted file mode 100644 index 9c49c7d8e4..0000000000 --- a/platforms/anchor-platform/admin-guide/sep10/README.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Stellar Authentication (SEP-10) -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Enable Stellar Authentication - -Stellar-based wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a Stellar account. Once authenticated, the wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - - - -```bash -# dev.env -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" -``` - - - -`SEP_10_HOME_DOMAIN` is the `home_domain` property used by [sep-10]. The configuration value must be equal to the host of the toml file. If you are hosting toml file via the Platform, (`SEP1_ENABLED` is set to `true`), toml file will be hosted on the SEP server. - -`SECRET_SEP10_SIGNING_SEED` is the private key to the public key you've specified as the `SIGNING_KEY` in your `stellar.toml` file. It will be used to sign authentication challenges presented to wallet applications, providing that you are in possession of the `SIGNING_KEY`. Wallets will check for this signature before signing and sending back the authentication challenge. - -`SECRET_SEP10_JWT_SECRET` is the encryption key that will be used to sign and verify the authentication tokens you issue to wallet applications after they or their users have proven control of their Stellar account. - -:::info - -By default, the Anchor Platform allows anyone with a Stellar account to authenticate with your services. If you'd like to only allow users of a particular wallet application to authenticate, or want to disallow specific users from authenticating, use the following environment variables. This is an optional feature and should only be added if it is a business requirement. - -::: - -## Config With Client Attribution - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - - - -```bash -# dev.env -SEP10_CLIENT_ATTRIBUTION_REQUIRED=true -``` - - - - - -```yaml -clients: - # Each item in the list may contain the following fields: - # - name: (required) the name of the client - # - type: (required) `custodial` or `noncustodial` - # - # If the type is `custodial`, - # - signing_keys: (required) the custodial SEP-10 signing key of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - # - allow_any_destination: (optional) default to false. If set to true, allows any destination for deposits. - # - destination_accounts: (optional) list of accounts allowed to be used for the deposit. - # If allows_any_destinations set to true, this configuration option is ignored. - # - # If the type is `noncustodial`, - # - domains: (required) the domains of the client. - # - callback_urls.sep6: (optional) the URL of the client's SEP-6 callback API endpoint. - # - callback_urls.sep24: (optional) the URL of the client's SEP-24 callback API endpoint. - # - callback_urls.sep31: (optional) the URL of the client's SEP-31 callback API endpoint. - # - callback_urls.sep12: (optional) the URL of the client's SEP-10 callback API endpoint. - - # custodial client - - name: custodial-client1 - type: custodial - signing_keys: "the signing key 1 of the client1","the signing key 2 of the client1" - callback_urls: - sep6: https://callback.custodial-client1.com/api/v1/anchor/callback/sep6 - sep12: https://callback.custodial-client1.com/api/v1/anchor/callback/sep12 - allow_any_destination: false - destination_accounts: destAccount1,destAccount2 - - name: custodial-client2 - type: custodial - signing_keys: "the signing key of the client2", - - # noncustodial client - - name: noncustodial-client1 - type: noncustodial - domains: noncustodial-client1.co,noncustodial-client1.com - callback_urls: - sep6: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep6 - sep12: https://callback.noncustodial-client1.co/api/v2/anchor/callback/sep12 - - name: noncustodial-client2 - type: noncustodial - domains: noncustodial-client2.com -``` - -```bash -# dev.env -# custodial client -CLIENTS[0]_NAME=custodial-client1 -CLIENTS[0]_TYPE=custodial -CLIENTS[0]_SIGNING_KEYS="the signing key 1 of the client1","the signing key 2 of the client1" -CLIENTS[0]_ALLOW_ANY_DESTINATION=false -CLIENTS[0]_DESTINATION_ACCOUNTS=destAccount1,destAccount2 -CLIENTS[1]_NAME=custodial-client2 -CLIENTS[1]_TYPE=custodial -CLIENTS[1]_SIGNING_KEYS="the signing key of the client2" - -# noncustodial client -CLIENTS[2]_NAME=noncustodial-client1 -CLIENTS[2]_TYPE=noncustodial -CLIENTS[2]_DOMAINS=noncustodial-client1.co,noncustodial-client1.com -CLIENTS[3]_NAME=noncustodial-client2 -CLIENTS[3]_TYPE=noncustodial -CLIENTS[3]_DOMAINS=noncustodial-client2.com -``` - - - -`SEP10_CLIENT_ATTRIBUTION_REQUIRED` informs the Anchor Platform whether it should allow users of noncustodial wallets to authenticate without the wallet also identifying itself. - -`CLIENTS` is the list of outside wallet servers or clients for the Anchor server to safely communicate with. - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-10 functionality is supported by your business. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -[sep1-ap]: ../sep1/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/README.mdx b/platforms/anchor-platform/admin-guide/sep24/README.mdx deleted file mode 100644 index 9a2d79c466..0000000000 --- a/platforms/anchor-platform/admin-guide/sep24/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hosted Deposits and Withdrawals (SEP-24) -sidebar_position: 60 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-24 allows for a means by which wallets and/or exchanges allow the user to directly interact with an on & off-ramp. - - diff --git a/platforms/anchor-platform/admin-guide/sep24/configuration.mdx b/platforms/anchor-platform/admin-guide/sep24/configuration.mdx deleted file mode 100644 index a0eb80c6eb..0000000000 --- a/platforms/anchor-platform/admin-guide/sep24/configuration.mdx +++ /dev/null @@ -1,213 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Next, let's modify `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-24 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" -WEB_AUTH_CONTRACT_ID = "Your web auth contract id" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -# Optionally, add support for XLM -[[CURRENCIES]] -code = "native" -status = "test" -is_asset_anchored = false -anchor_asset_type = "crypto" -desc = "XLM, the native token of the Stellar network." - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -## Enable Hosted Deposits & Withdrawals - -Now you're ready to enable hosted deposits and withdrawals via the SEP-24 API. Specify the following in your `dev.assets.yaml` file, and change the values depending on your preferences. This example asset file will enable support for Circle's USDC and a fiat USD. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash - - id: iso4217:USD - significant_decimals: 2 - # Optional support for XLM - - id: stellar:native - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 7 - sep24: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - SEPA - - SWIFT - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - bank_account - - cash -``` - - - -The information provided for the `assets` value closely maps to the information that will be exposed to the wallet application using the [`GET /info`][sep24-get-info] SEP-24 endpoint. The Anchor Platform also uses this information to validate requests made to your service. - -Add the following variables to your environment file. - - - -```bash -# dev.env -// Required -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://example.com -SEP24_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -// Optional -SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -`SEP24_INTERACTIVE_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they initiate transactions. Wallet applications will open this URL in a web view inside their app, handing over control of the user experience from the wallet to your business. This URL points to the web widget your business implements. It contains all business-defined logic. We'll dive further into this experience in subsequent sections. - -`SEP24_MORE_INFO_URL_BASE_URL` is the URL that the Anchor Platform will provide to wallet applications when they want to show information about a transaction initiated previously. This URL is most often used by wallets in their transaction history views, and your business can define what information to display about the transaction. - -`SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` are encryption keys that the Anchor Platform will use to generate short-lived tokens it will add to the URLs provided to the wallet. Your business server must also have these keys in its environment so it can verify the token's signature. - -`SEP24_INITIAL_USER_DEADLINE_SECONDS` is an optional param that defines the time in seconds a user has to act before the transaction moves to the next status. It determines the `user_action_required_by` field, which indicates the deadline. Check [JSON-RPC Methods][json-rpc-methods] for usage examples. - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret encryption key" - -SEP24_ENABLED=true -SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081 -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server" -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -[![demo wallet connected to the anchor platform](../../assets/anchor-platform-sep24-demo-wallet.png)](../../assets/anchor-platform-sep24-demo-wallet.png) - -Initiate a transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-24 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. However, when the demo wallet attempts to open the URL provided by the Anchor Platform, you'll get a not found page. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep24-demo-wallet-widget.png)](../../assets/anchor-platform-sep24-demo-wallet-widget.png) - -[sep-1]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep24-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#info -[anchor-platform-image]: https://hub.docker.com/r/stellar/anchor-platform -[docker-compose]: https://docs.docker.com/compose/ -[minikube]: https://minikube.sigs.k8s.io/docs/ -[kubernetes]: https://kubernetes.io/ -[nginx]: https://www.nginx.com/ -[ap-default-values]: https://github.com/stellar/java-stellar-anchor-sdk/blob/develop/platform/src/main/resources/config/anchor-config-default-values.yaml -[stellar-demo-wallet]: https://demo-wallet.stellar.org -[stellar-lab]: https://lab.stellar.org/ -[postgresql]: https://www.postgresql.org/ -[aurora-postgresql]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html -[h2]: https://www.h2database.com/html/main.html -[sqlite]: https://www.sqlite.org/index.html -[flyway]: https://documentation.red-gate.com/fd/redgate-flyway-documentation-138346877.html -[sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui -[sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: ../sep1/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/faq.mdx b/platforms/anchor-platform/admin-guide/sep24/faq.mdx deleted file mode 100644 index 5972a06cf9..0000000000 --- a/platforms/anchor-platform/admin-guide/sep24/faq.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FAQ" -sidebar_position: 50 ---- - -### How To Use JWTs? - -As part of the flow, once a user makes a request, i.e. an interactive withdrawal/deposit request, it will be processed by the Anchor Platform and forwarded to your service. The Anchor Platform will make a `GET` call to `?token=`. - -This JWT token will contain: - -1. `exp` is the expiration time of the token. You should check that the provided token has not expired. -2. `sub` is the account associated with this transaction. It can be used to identify the user account. Note that this value may be different from the account that will be used to receive/send funds. -3. `jti` is the hash of the transaction. -4. `data` is the extra payload that has been set by the user. It will always contain the Stellar `asset` wants to deposit or withdraw. If provided by the client, it will also contain the `amount` the user wants to transact, the `client_domain` of the wallet verified during SEP-10 authentication, and `client_name` (defined as 'name' in [clients] configuration if provided), and the `lang` (language) preference of the user. - -### How To Provide Fees? - -Currently, it's recommended to provide fees/exchange rates in the iFrame/web view of your application. - -[SEP-24] standard provides a `/fee` endpoint to allow businesses to set static fees for their transactions. However, it's not currently supported by the Anchor Platform. - -:::note - -/fee endpoint will be deprecated in the future. - -::: - -### How to identify the user account? - -You should use the `sub` field of the JWT token. For custodial wallets, this value will be in the format `account:memo`. Use the memo to identity the user. For noncustodial wallets, simply use the `sub` value itself, which will be equal to the user account. - -### How to identify the wallet? - -Utilize the `data.client_domain` attributes within the JWT token. In the presence of [clients] configuration, the JWT token will additionally incorporate the `data.client_name` field, enabling wallet identification. - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: ../sep10/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/integration.mdx b/platforms/anchor-platform/admin-guide/sep24/integration.mdx deleted file mode 100644 index 6caf77d254..0000000000 --- a/platforms/anchor-platform/admin-guide/sep24/integration.mdx +++ /dev/null @@ -1,1021 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Anchor Platform about events related to the transaction. - -In general, you'll want to provide updates for the following events: - -- Your business is processing the KYC information provided by the user -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by this RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-24 protocol document][sep-24] - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about quotes. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit Transaction Via JSON-RPC - -SEP-24 deposit flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -[![sep24 deposit flow](../../assets/sep24-deposit-flow-diagram.png)](../../assets/sep24-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Ready to Receive Funds - -The first step of the deposit flow after starting the deposit itself is collecting KYC. It's usually done in the web-app, but can also be optionally provided by the wallet application, using [SEP-9]. Once the necessary KYC is collected, a `request_offchain_funds` JSON-RPC request should be made. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to sent to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. - -Information abouts amounts (in/out/fee) is required if you want to move the transaction from the `incomplete` to the `pending_user_transfer_start` status. If transaction status is changed from `pending_anchor` to `pending_user_transfer_start`, you can skip defining the amounts. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::tip - -When the KYC process is long (for example, ID verification), it's advised to first set the transaction status to `pending_anchor` by using `notify_interactive_flow_completed` JSON-RPC request. This will indicate to the user that KYC is being processed. - -::: - -### Processing KYC Information - -:::tip - -This step is optional. Most businesses don't use it. You can skip it and go to the [next step](#funds-received). - -Using this status is recommended when KYC verification may need to be performed asynchronously. - -::: - -You **must** specify the `amount_x` fields. - - - -```json -// kyc-in-process.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_interactive_flow_completed", - "params": { - "transaction_id": "", - "message": "Interactive flow completed.", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh kyc-in-process.json -``` - - - -### Funds Received - -If offchain funds were received, you'll want to provide an updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds -- `external_transaction_id` is the ID of transaction on external network - -The amount fields are optional. If skipped, the values from previous JSON-RPC requests will be taken. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In a real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill a user request. After the transaction completion, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as Fireblocks. To make a payment via custody service, it's necessary to make the following JSON-RPC request: - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, it's necessary to make the following JSON-RPC request: - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Sending Refund Via Custody Service - -There is a possibility to send funds back to the user (refund). You can refund the whole sum(full refund) or do a set of partial refunds. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -It's similar to [Refund sent](#refund-sent), but it handles a case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. For example, to expire transaction business should change the transaction status to `expired`: - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### On-Hold Transaction - -In rare cases, you may want to pause current transaction and request more information from the user (after the transfer has been received). This could be used for compliance use cases. - - - -```json -// transaction-hold.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_on_hold", - "params": { - "transaction_id": "", - "message": "Transaction is on hold. Please contact customer support to resolve the hold." - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-hold.json -``` - - - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal Transaction Via JSON-RPC - -This diagram defines a sequence/rules of transaction's status transition for SEP-24 withdrawal flow. - -[![sep24 withdrawal flow](../../assets/sep24-withdrawal-flow-diagram.png)](../../assets/sep24-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the deposit flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similar to deposit, the next step is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the update will look differently. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `memo` Value of memo to attach to the transaction -- `memo_type` Type of memo that the anchor should attach to the transaction -- `destination_account` Destination account - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Processing KYC Information - -This step is optional, and it's similar to [Processing KYC Information](#processing-kyc-information) of the deposit flow. - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### On-Hold Transaction - -Works in the same manner as for the deposit flow. For more details, see [On-Hold Transaction](#on-hold-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md -[sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[event-handling]: ../events/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx b/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx deleted file mode 100644 index 9074408b30..0000000000 --- a/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Set Up a Production Server -sidebar_position: 60 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Once the test server is live and you have tested both deposit and withdraw flows, it's time to get started with the real deploy connected to real KYC and real banking rails providers. Before using any banking APIs, it's critical that you perform a full security audit on the system to make sure that there aren't any vulnerabilities. - -## Deploying a Secure Environment - -Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. - -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/networks#network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). - -You can copy your existing development configs to create a production configuration. - -First, you need to change your info file (`stellar.toml`): - - - -```toml -# stellar.toml -NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015" -``` - - - -Next, change your Anchor Platform configuration in `production.env` file: - -### For Horizon server connection: - - - -```bash -# production.env STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_HORIZON_URL="https://horizon.stellar.org" -``` - - - -### For Stellar RPC server connection: - - - -```bash -# production.env STELLAR_NETWORK_NETWORK="Public" -STELLAR_NETWORK_RPC_URL="https://mainnet.sorobanrpc.com" -``` - - - -## Connecting to Real KYC - -Most anchors need to collect [Know Your Customer](https://en.wikipedia.org/wiki/Know_your_customer) information to comply with local regulations before honoring deposits and withdrawals. The KYC flow usually consists of a simple form that gathers relevant information about the user such as name, email, address, age, and government-issued ID number. - -How you handle KYC is up to you: there are many services that provide KYC solutions through APIs and iFrames, and validate the input data and sync with governmental databases to verify requirements. Each jurisdiction has specific KYC requirements, and they differ from jurisdiction to jurisdiction, so it's best to find a country-specific KYC provider that meets your needs. - -Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. - -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. - -Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. - -## Pre-Filling the KYC Form - -Pre-filling the KYC form is a great way to reduce the friction of getting started using an anchor, and wallets usually provide a set of fields that are commonly used throughout the ecosystem. In summary, the anchor can render the KYC form with the user's values that were previously sent by the wallet in the `/transactions/deposit/interactive` and `/transactions/withdraw/interactive` endpoints. - -All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. - -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-jwts), send by the Anchor Platform - -## Connecting to Real Banking Rails - -Fiat-backed token issuers are expected to manage a full reserve. That means there's a 1:1 relationship between Stellar-network tokens and money in the bank. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) and to complete user withdrawals (generally through bank transfers). If you're an anchor honoring deposits and withdrawals of a token another organization issues, you'll follow a similar process. - -In order to fetch (and identify) a user transfer, issuers usually take one of two approaches: - -- API Polling: this option consists of fetching the bank's API, through a cron job, to check for the updated status of the list of transfers received by (and sent from) the issuer's bank account. Once the system confirms a new transaction and identifies that it relates to a specific deposit, it can send the digital funds to that user's account -- Webhook: not all banking rails support this option, but it's the leanest in terms of back-end logic. In this approach, the bank proactively hits an issuer's endpoint once it receives a new transfer, updating that information on the issuer's database. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds - -There are many ways to identify that a specific bank transfer relates to a specific deposit (and, consequently, to a user). Some banks (and countries) have transfer infrastructure that allows the creation of a single bank account per transfer; others require users to add an identification parameter to their transfers. Some banks provide the user ID number in the transaction information so issuers can match that with the information provided in the KYC form. - -Make sure to do a full security audit on your systems when banking rails connections are in place. Some banks provide a testing API that can be used for development and deployment to testnet or staging environments, which means you can test and audit the codebase before moving to a final production-ready bank integration. For better security, some anchors also prefer to add a manual final step before approving withdrawal transfers. In terms of UX, this manual approval is acceptable as long as the wait times align with user expectations, which usually means they aren't longer than a couple of hours. - -## Testing Edge Cases - -Once your application is fully functional, it's a good idea to test different scenarios and edge cases to make sure the system is behaving as expected. Here's a list of testing suggestions that should cover a large amount of the application's edge cases: - -### General Tests - -- Test the interactive flow usability -- Test the interface using different locale information, and check for translated content including error messages, responses, date formatting, and number formatting - -### KYC Tests - -- Check that KYC appears with a new wallet SK -- Check that KYC doesn't accept incorrectly formatted inputs, and that the error messages are comprehensible -- Check that you can use the same KYC information (email, phone number, username, etc) multiple times -- Check that you can go through KYC multiple times with the same Stellar SK. - -### Interactive Test - -- Check that the deposit flow goes through, and that the banking rails are working -- Check that you cannot make a withdrawal with a value higher than the current balance -- Check that the withdrawal flow goes through, and that the banking rails are working - -### Security Tests - -- Make sure platform endpoints are secured - -## Polishing and Internationalization - -Supporting two languages (English and the fiat currency country language) allows users to have a seamless experience while navigating through screens, and supports international institutions (like wallets) that need to test the product before starting new integrations. - -You can support multiple languages in your webapp by using the `Accept-Language` parameter from the http request headers to localize the content and allowing users to change that in a simple way (e.g. a flag icon on the top bar). If a specific wallet doesn't send the header parameter, we recommend showing the user a language selection screen in the beginning of the deposit and withdraw processes. Once a user chooses a language, you can store their selection so you only need to ask them once. In addition to localizing text, make sure to check number formatting, dates, etc. - -Having a group of beta testers is a great way to check if there are any edge cases that need polishing, and to confirm that the system is working well with a variety of user inputs. You can beta test using a soft launch stage before you start putting effort into marketing and distribution. Documenting the testing process with screenshots and videos is very helpful for future security audits, and gives new partners and potential users clarity and confidence in the product. - -## Connecting to Wallets - -All Anchor user interactions are done through a Wallet, so it's vital for Anchors to be connected to Wallets that have a good market penetration in the region where the business is most focused. Connecting to Wallets is a simple process, since both ends of that integration are already compliant with SEPs. - -Stellar.org maintains a [list of wallets](https://www.stellar.org/ecosystem/projects), many of which currently support SEP-24 Sending them a message with more information on an asset and an issuer account is a great way to start getting some real users to the Anchor. diff --git a/platforms/anchor-platform/admin-guide/sep31/README.mdx b/platforms/anchor-platform/admin-guide/sep31/README.mdx deleted file mode 100644 index 652a765150..0000000000 --- a/platforms/anchor-platform/admin-guide/sep31/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Cross-Border Payments (SEP-31) -sidebar_position: 70 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-31 allows for a means by which wallets and/or exchanges interact with Stellar's existing set of send-side services. - - diff --git a/platforms/anchor-platform/admin-guide/sep31/configuration.mdx b/platforms/anchor-platform/admin-guide/sep31/configuration.mdx deleted file mode 100644 index ad9f04a4f1..0000000000 --- a/platforms/anchor-platform/admin-guide/sep31/configuration.mdx +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Modify a Stellar Info File - -Let's start by modifying our `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-31 functionality is supported by your business, and they also need to know all currencies you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" - -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you'll need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your mainnet distribution accounts and signing key, as well as the mainnet issuing accounts of the assets your service utilizes. - -## Enable Cross Border Payments - -Now you're ready to enable cross-border payments the SEP-31 API. Specify the following in your `dev.assets.yaml` file. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH -``` - - - -The information provided in the `sep31` and `send` objects closely map to the information that will be exposed to the wallet application using the [`GET /info`][sep31-get-info] SEP-31 endpoint. The Anchor Platform also uses this information to validate requests made to your service. `sep31.fields.transaction` should be left empty and will be removed in a future release, but you can adjust the `send.min_amount` and `send.max_amount` values according to your service's limits. - -The `sep31.quotes_supported` and `sep31.quotes_required` determine whether or not sending organizations can and are required to request an FX rate using the [SEP-38 `POST /quote`][sep38-post-quote] endpoint. Almost all senders prefer this approach so that they can communicate the rate to their customers prior to proceeding. - -Add the following variable to your environment file. - - - -```bash -# dev.env -SEP31_ENABLED=true -``` - - - -Senders should now be able to discover, authenticate, and initiate transactions with your service! Run the following command to start the Anchor Platform. - - - -```bash -docker compose up -``` - - - -Check that your API is live. - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following. - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the Customer KYC API - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients determine what KYC information needs to be collected and send that information via a SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -See the [Anchor Platform KYC API specification][platform-api-kyc] for details on the endpoints that must be implemented on your business' server. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -KYC_SERVER = "http://localhost:8080/sep12" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP12_ENABLED=true -``` - - - -Finally, we have to define your business' customer types. Each type of customer requires different a set of KYC information. For example, you can offer your cross-border payments service in two distinct regulatory jurisdictions, so customers in different jurisdictions have different KYC requirements and would be represented using different types. - -:::info - -Currently, customer types must be mutually exclusive, meaning a customer cannot be more than one type. - -This limitation is in place because the Anchor Platform cannot validate whether a customer is approved for a specific type of transaction, such as one sending a large amount. It can only validate that a customer is approved for one of the customer types defined. This limitation will be removed in a future release. - -::: - -In this guide, we'll only have two types, a sending customer type and a receiving customer type. Currently, our customer types are defined in our assets configuration, but this will change in a future release. - - - -```yaml -# dev.assets.yaml -sep31: - sep12: - sender: - types: - sep31-sender: - description: customers sending to recipients - receiver: - types: - sep31-receiver: - description: customers receiving from senders -``` - - - -Let's ping the info endpoint again to verify. After `docker compose up`, run the following command: - - - -```bash -curl http://localhost:8080/sep31/info | jq -``` - - - -You should get the following: - - - -```json -{ - "receive": { - "USDC": { - "enabled": true, - "quotes_supported": true, - "quotes_required": true, - "min_amount": 0, - "max_amount": 10000, - "fields": { - "transaction": {} - } - } - } -} -``` - - - -## Enable the RFQ API - -Businesses need to provide their send-side counterparts with a [Rate][get-rates-api] API to check the exchange rates they're offering between the on-chain asset being used for settlement and the fiat asset being used to pay the recipient. If the rate is competitive, senders also need to be able to request a commitment to the rate currently being offered from business for a short period of time. - -The Anchor Platform provides the [SEP-38 RFQ API][sep38] to senders for this purpose. - -To make this API available to clients, lets add the service URL to our Stellar Info File. - - - -```toml -# dev.stellar.toml -DIRECT_PAYMENT_SERVER = "http://localhost:8080/sep31" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -QUOTE_SERVER = "http://localhost:8080/sep38" -``` - - - -Lets enable it in our environment too. - - - -```bash -# dev.env -SEP38_ENABLED=true -``` - - - -We also need to enable USDC to be used in this API, as well as add an off-chain asset it can be exchanged with. - - - -```yaml -# dev.assets.yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep31: - enabled: true - quotes_supported: true - quotes_required: true - receive: - min_amount: 0 - max_amount: 10000 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:BRL - country_codes: - - BR - - id: iso421:BRL - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - country_codes: - - BR - significant_decimals: 2 - buy_delivery_methods: - - name: PIX - description: Have BRL sent directly to your bank account. -``` - - - -Let's test that your RFQ API is live! Following `docker compose up`: - - - -```bash -curl http://localhost:8080/sep38/info | jq -``` - - - -You should get the following: - - - -```json -{ - "assets": [ - { - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - { - "asset": "iso4217:BRL", - "country_codes": ["BR"], - "buy_delivery_methods": [ - { - "name": "PIX", - "description": "Have BRL sent directly to your bank account." - } - ] - } - ] -} -``` - - - -## Configure Callback API Authentication - -Just as your business will need to make requests to the Anchor Platform, the Anchor Platform will need to make requests to your business. Let's add authentication to these requests as well. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://server:8081 -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -SECRET_CALLBACK_API_AUTH_SECRET= -``` - - - -`CALLBACK_API_BASE_URL` uses `server` instead of `localhost` as the host because the Anchor Platform will be making requests to your business server from within the local network created by docker compose. When configuring your service in a staging or production environment, make sure to update your service urls. - -We'll define the server that implements the endpoints defined in the Callback API in the following section. - -[sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: ../sep1/README.mdx -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/integration.mdx b/platforms/anchor-platform/admin-guide/sep31/integration.mdx deleted file mode 100644 index b4feef0b58..0000000000 --- a/platforms/anchor-platform/admin-guide/sep31/integration.mdx +++ /dev/null @@ -1,669 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Integrating with the Anchor Platform for facilitating cross-border payments involves implementing the following, at a minimum: - -- [`GET /customer`][get-customer] & [`PUT /customer`][put-customer] KYC API endpoints to request & collect customers' KYC data -- [`GET /rate`][get-rate] RFQ API endpoint to provide FX rates between the on & off-chain assets supported -- `GET /transactions` requests to fetch updates on the Anchor Platform's transactions' statuses (documentation coming soon) -- [`JSON-RPC`][json-rpc-methods] requests to update the Anchor Platform's transactions' statuses - -The following may also be required depending on your use case: - -- [`DELETE /customer`][delete-customer] if your business wants or is required to allow senders to request deletion of customer data - -## Create a Business Server - -First, lets create a business server and add it to our docker compose file. - - - -```yaml -version: "3.8" - -services: - sep-server: - image: stellar/anchor-platform:latest - command: --sep-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8080:8080" - depends_on: - - db - platform-server: - image: stellar/anchor-platform:latest - command: --platform-server - env_file: - - ./dev.env - volumes: - - ./config:/home - ports: - - "8085:8085" - depends_on: - - db - - server: - build: . - ports: - - "8081:8081" - env_file: - - ./dev.env - db: - image: postgres:14 - ports: - - "5432:5432" - env_file: - - ./dev.env -``` - - - -Next, create a simple web server using your preferred programming language and a `Dockerfile` that starts the server. `docker compose up` should successfully start all three services. - -This guide does not provide an example implementation of the endpoints, but you can find more information about the request and response schemas in the [Anchor Platform API Reference][ap-api], and the sections below will expand on concepts important to understand when implementing the endpoints. - -## Customer Callback Endpoints - -The Anchor Platform never stores your customers' PII, and instead acts as a proxy server between client applications and your business, forwarding requests and responses to the other party. Currently, requests and responses are almost identical to those defined in the [SEP-12 KYC API specification][sep12]. - -### Identifying Customers - -Customers can be identified using two approaches. - -The first approach uses a Stellar account and memo. When using the Anchor Platform for facilitating cross-border payments, the sending organization uses their own Stellar account, the one used to authenticate via [SEP-10 Stellar Authentication][ap-sep10], when registering customers with your business. Memos are used to distinguish unique customers originating from the same sending organization. - -The second approach uses customer IDs generated by your service. For example, if a sending organization is registering a customer, your business will receive a `PUT /customer` request like the following: - - - -```json -{ - "account": "GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47", - "memo": "780284017", - "type": "sep31-sender", - "first_name": "John", - "last_name": "Doe", - "email": "johndoe@example.com" -} -``` - - - -In this example, the `GDJ...X47` public key identifies the sending organization, and the `780284017` memo identifies the customer. Memos are usually 64-bit integers, but they can also be other data types, so they should be saved as strings. In response, your business should return a customer ID. - - - -```json -{ - "id": "fb5ddc93-1d5d-490d-ba5f-2c361cea41f7" -} -``` - - - -Your business server can use any identifer for customers as long as it is a string. - -Following the registration of a customer, the sending organization can use either approach when checking the customer's status. For example, you may get a `GET /customer` request like the following: - - - -``` -/customer?account=GDJUOFZGW5WYBK4GIETCSSM6MTTIJ4SUMCQITPTLUWMQ6B4UIX2IEX47&memo=780284017&type=sep31-sender -``` - - - -Or, the sending organziation could use the identifier you returned when they originally registered the customer. - - - -``` -/customer?id=fb5ddc93-1d5d-490d-ba5f-2c361cea41f7&type=sep31-sender -``` - - - -Your business will need to maintain a mapping between the account & memo used to originally register the customer and the ID you return in the response, as well as the KYC data provided. In future iterations of the Anchor Platform, we may maintain this mapping for your business so you only have to work with the IDs you generate. - -### Customer Types - -Your business likely requires different sets of KYC information depending on the type of customer. You can define the labels for each of these customer types in your `dev.assets.yaml` file, and your sending organizations will need to understand which label to use when registering or querying the status of customers. - -In `PUT /customer` requests, you should use the type passed to evaluate whether the sender has provided all of the required fields. In `GET /customer` requests, you should use the type to determine the customer's status. - -### Test with the Demo Wallet - -You can test your implementation with the [Stellar Demo Wallet][demo-wallet] following the steps below. - -1. Select "Generate keypair for new account" -2. Select "Create account" -3. Select "Add Asset" and enter the asset code and the Anchor Platform's home domain, `localhost:8080` -4. Select "Add trustline" -5. Fund your account with a balance of the asset -6. Select "SEP-31 Send" in the dropdown menu - -You should see the demo wallet find your service URLs, authenticate, and check which KYC fields it needs to collect. It should then present a form for you to enter the KYC details for the sender and reciever. - -[![demo wallet after initiating a transaction](../../assets/anchor-platform-sep31-demo-wallet-widget.png)](../../assets/anchor-platform-sep31-demo-wallet-widget.png) - -Once you've entered in the information requested, it will send that information to the Anchor Platform, which will send it to your business server. Once the demo wallet has the customers' IDs you generated, it will initiate a transaction which should fail. - -## Rate Callback Endpoint - -Once the sending organization has registered the customers involved in the transaction, it will need to request a quote, or FX rate, from your business. The Anchor Platform requests this information from your business server using the [`GET /rate` endpoint][get-rate]. - -### Firm vs. Indicative Quotes - -Requests for quotes will have a `type` parameter that is either [`indicative`][indicative] or [`firm`][firm]. If `type=firm`, your response must include the `id` & `expires_at` date-time field and reserve the liquidity needed to fulfil this quote until the quote expires. If `type=indicative`, do not return `id` or `expires_at` fields because the rate provided will not be used in a transaction. - -Note that the client may request that the quote expires after a specific date-time using the `expires_after` parameter. Your business must honor this request by returning an `expires_at` value that is at or after the requested date-time or reject the request with a 400 Bad Request response, which will be forwarded to the client. - -### Using the Client ID - -Requests may include a `client_id` parameter that identifies the sending organization requesting the rate. You can use this parameter to adhere to the commercial terms agreed upon with that sending organization, such as offering discounted rates. `client_id` may not be present for indicative requests, in which case your market price should be returned. Currently `client_id` will always be the Stellar public key the sending organization used to authenticate with the Anchor Platform. - -### Delivery Methods - -It is common for businesses' rates and fees to differ depending on the payment rails used to send funds to the recipient. If your delivery methods are configured in your `asset.yaml` file, clients will always provide the payment rail they want your business to use for firm quote requests. - -Because this endpoint is currently only used paying out remittances in off-chain assets, the `buy_delivery_method` will be used. If this endpoint is ever used in other transaction flows such as SEP-24 deposits, then `sell_delivery_method` may also be passed for business that support these types of transactions. - -## Fetching Transaction Status Updates - -To facilitate cross-border payments, you'll need to be able to detect when a sending organization has sent your business an on-chain payment and determine which transaction that payment was meant to fulfil. - -The easiest way to do that is to run the Stellar Observer, which will detect these payments and update the corresponding transaction record with information about the payment. Your business can then detect these updates by polling the `GET /transactions` Platform API endpoint. - -### Running the Stellar Observer - -The Stellar Observer monitors the Stellar ledger for payments made to your account(s) and updates the corresponding transaction records with on-chain payment information. To run the observer, add the following to your docker compose file. - - - -```yaml -services: - ... - observer: - image: stellar/anchor-platform:latest - command: --stellar-observer - env_file: - - ./dev.env - volumes: - - ./config:/home -``` - - - -### Polling for Received Payments - -The Stellar Observer makes JSON-RPC requests to the Platform API whenever it detects payments received for transactions initiated by sending organizations, thus updating the transaction's `transfer_received_at` date-time. - -Your business should periodically poll the `GET /transactions` Platform API endpoint to detect these updates. You can refer to the following example: - - - -```bash -curl http://localhost:8080/transactions?sep=31&order_by=transfer_received_at&order=desc -``` - - - -The response will include a list of cross-border payment transactions initiated by sending organizations. This list will be ordered according to the time a payment was received for that transaction. For each transaction returned, your business should check whether or not it has already detected the payment for that transaction. If it has, you have detected all payments made to your account(s). - -## Updating Transaction Via JSON-RPC - -SEP-31 flow diagram defines sequence/rules of the transaction's status transition and a set of JSON-RPC methods that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in the request. If the request doesn't contain required attributes, the Anchor Platform will return an error and won't change the status of the transaction. - -[![sep31 flow](../../assets/sep31-transition-diagram.png)](../../assets/sep31-transition-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest flow. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -You can create a [template][sep24-integration-make-json-rpc-request] for making a JSON-RPC requests to the Anchor Platform. - -This chapter also contains information about the format of [request][sep24-integration-rpc-request]/[response][sep24-integration-rpc-response] and [error codes][sep24-integration-error-codes] that might be returned by the Anchor Platform. - -### Ready to Receive Funds - -SEP-31 Transactions should initially be in the `pending_receiver` status. To request funds from the Sending Anchor, the Receiving Anchor should change the transaction status to `pending_sender` by making the following RPC request: - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -The transaction status will be changed to `pending_sender`. - -### Funds Received - -If the Sending Anchor has sent the funds, the Receiving Anchor should change the transaction status to `pending_receiver` by making the following JSON-RPC request: - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -The transaction status will be changed to `pending_receiver`. - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make a `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that payment has been submitted to external network, but it is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Verifying Customer Information - -In some cases, the Receiving Anchor might need to request an updated information from the Sending Anchor. For example, the bank tells the Receiving Anchor that the provided Receiving Client's name is incorrect or missing a middle initial. Since this information was sent via SEP-12, the transaction should go into the `pending_customer_info_update` status until the Sending Anchor makes another SEP-12 `PUT /customer` request to update. The Sending Anchor can check which fields need to be updated by making a SEP-12 `GET /customer` request including the id or account & memo parameters. The Receiving Anchor should respond with a `NEEDS_INFO` status and `last_name` included in the fields described. - -After the Sending Anchor makes a SEP-12 `PUT /customer` request, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep31-receiver" // or sep31-sender - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Do Stellar Refund - -Integration with the custody service allows you to do refund via custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -You can't do multiple refunds in the SEP-31 flow. For this reason, the total refund amount plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Refund Sent - -There is a possibility to send all funds back to the `Sending Anchor` (refund). You need to refund the whole sum(full refund). - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::note - -You can't do multiple refunds in SEP-31 flow. For this reason, the amount to refund plus the amount fee should equal `amount_in`. Otherwise, you will get an error. - -::: - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the details of the error. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to expire those transactions that have been abandoned by the user after some time. It's a good practice to clean up inactive transactions in the `incomplete` status. To do so, simply change the transaction's status to `expired`. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -The transaction status can be changed from `error/expired` to `pending-anchor`. After recovery, you can refund the received assets or proceed with the processing of the transaction. To recover the transaction, it's necessary to make the following JSON-RPC request: - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -### Configuration - -You can enable these types of transactions by updating your `assets.yaml` file configuration: - - - -```yaml -items: - - ... - sep31: - quotes_required: false -``` - - - -[ap-api]: ../../README.mdx -[ap-sep10]: ../sep10/README.mdx -[sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md -[demo-wallet]: https://demo-wallet.stellar.org -[indicative]: https://www.investopedia.com/terms/i/indicativequote.asp -[firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-customer]: ../../api-reference/callbacks/get-customer.api.mdx -[put-customer]: ../../api-reference/callbacks/put-customer.api.mdx -[get-rate]: ../../api-reference/callbacks/get-rates.api.mdx -[put-customer-callback]: ../../api-reference/callbacks/put-customer.api.mdx -[delete-customer]: ../../api-reference/callbacks/del-customer.api.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx -[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests -[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request -[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response -[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/platforms/anchor-platform/admin-guide/sep45/README.mdx b/platforms/anchor-platform/admin-guide/sep45/README.mdx deleted file mode 100644 index dd32fb872f..0000000000 --- a/platforms/anchor-platform/admin-guide/sep45/README.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Stellar Authentication for Contract Accounts (SEP-45) -sidebar_position: 55 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -## Overview - -Stellar smart wallet applications create authenticated sessions with Stellar anchors by proving they, or their users, have sufficient control over a contract account. Once authenticated, the smart wallet application uses a session token provided by the anchor in subsequent requests to the anchor's standardized services. - -This is similar to how SEP-10 works, but with a few differences: - -- The challenge is a list of Soroban authorization entries for an invocation of a SEP-45 contract that must be signed by the contract account's signers. -- The wallet is responsible for simulating the transaction and ensuring it is not malicious. -- The anchor verifies the signed authorization entries by simulating the transaction on the network. - -An implementation of the SEP-45 contract is provided in the [Anchor Platform repository][sep-45-contract]. An instance of this contract is deployed at `CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX` on testnet. - -## Enable Stellar Authentication for Contract Accounts - -The Anchor Platform supports this form of authentication with minimal configuration from the business. - -### Connect to Stellar RPC - -SEP-45 requires integration with Stellar RPC to simulate transactions. The Anchor Platform can connect to the Stellar RPC server of your choice. - -You can use a public Stellar RPC provider, or you can run your own. A list of public providers can be found [here][rpc-providers]. The following example uses SDF's testnet RPC. - - - -```bash -# dev.env -STELLAR_NETWORK_RPC_URL=https://soroban-testnet.stellar.org -``` - - - -### Enable SEP-45 - -To enable SEP-45, set the following environment variables in your `dev.env` file. - - - -```bash -# dev.env -SEP_45_ENABLED=true -SEP_45_WEB_AUTH_DOMAIN=localhost:8080 -SEP_45_WEB_AUTH_CONTRACT_ID="CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" -SEP_45_HOME_DOMAINS=localhost:8080 -SEP_45_JWT_TIMEOUT=900 -SEP_45_AUTH_TIMEOUT=86400 -``` - - - -`SEP_45_ENABLED` enables SEP-45. - -`SEP_45_WEB_AUTH_DOMAIN` is the domain where the authentication service (WEB_AUTH_ENDPOINT or WEB_AUTH_FOR_CONTRACTS_ENDPOINT) is running. This might be the same as the `home_domain`, a subdomain (e.g., auth.example.com), or a completely different domain. It's verified in the challenge to ensure the client is talking to the correct server endpoint it discovered via the `home_domain`. - -`SEP_45_WEB_AUTH_CONTRACT_ID` is the contract ID of the SEP-45 contract. This is the contract that will be used to construct the challenge. - -`SEP_45_HOME_DOMAINS` is a comma-separated list of home domains that are allowed to authenticate with the anchor. Home domains are the domains hosting the `stellar.toml` file. This file tells clients where to find the authentication endpoint (`WEB_AUTH_FOR_CONTRACTS_ENDPOINT`) and which public key (`SIGNING_KEY`) the server will use for challenges. - -`SEP_45_JWT_TIMEOUT` is the time in seconds that the JWT token is valid. The default is 900 seconds (15 minutes). - -`SEP_45_AUTH_TIMEOUT` is the time in seconds that the authentication challenge is valid. The default is 86400 seconds (24 hours). - -### Modify a Stellar Info File - -The `stellar.toml` file created [earlier][sep1-ap] must be updated to include the new authentication endpoint and contract ID. - - - -```toml -# dev.stellar.toml -WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth" -WEB_AUTH_CONTRACT_ID = "CD3LA6RKF5D2FN2R2L57MWXLBRSEWWENE74YBEFZSSGNJRJGICFGQXMX" -``` - - - -`WEB_AUTH_FOR_CONTRACTS_ENDPOINT` is the URL where the authentication service is running. This is the URL that clients will use to authenticate with the anchor. - -`WEB_AUTH_CONTRACT_ID` is the contract ID of the SEP-45 contract. This is the contract that will be used to construct the challenge. - -[sep1-ap]: ../sep1/README.mdx -[sep-45]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0045.md -[sep-45-contract]: https://github.com/stellar/anchor-platform/tree/feature/c-accounts/soroban -[rpc-providers]: /docs/data/apis/rpc/providers diff --git a/platforms/anchor-platform/admin-guide/sep6/README.mdx b/platforms/anchor-platform/admin-guide/sep6/README.mdx deleted file mode 100644 index 07c2066706..0000000000 --- a/platforms/anchor-platform/admin-guide/sep6/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Programmatic Deposits and Withdrawals (SEP-6) -sidebar_position: 65 ---- - -import DocCardList from "@theme/DocCardList"; - -SEP-6 allows for a means by which wallets and/or exchanges interact with an anchor on behalf of users, never requiring the user to directly interact with the on & off-ramp. - - diff --git a/platforms/anchor-platform/admin-guide/sep6/configuration.mdx b/platforms/anchor-platform/admin-guide/sep6/configuration.mdx deleted file mode 100644 index e5e6dc64e5..0000000000 --- a/platforms/anchor-platform/admin-guide/sep6/configuration.mdx +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: "Configuration" -sidebar_position: 20 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -# Configuration - -To enable SEP-6 deposits and withdraws, the Anchor Platform must be configured to do the following: - -- Provide the necessary service URLs for SEP-6, 12, & 38 endpoints in the `stellar.toml` file -- Provide information about the on & off-chain assets, as well as the payment rails, supported by your business via SEP-6 and SEP-38 `/info` endpoints -- Support the endpoints and callbacks required to request KYC information and provide exchange rates - -## Enable Programmatic Deposits & Withdrawals - -Add the following variables to your environment file. - - - -```bash -# dev.env -SEP6_ENABLED=true -SEP12_ENABLED=true -SEP38_ENABLED=true -``` - - - -### Modify a Stellar Info File - -Let's modify the `stellar.toml` file created [earlier][sep1-ap]. Wallets need to know that SEP-6 functionality is supported by your business, and they also need to know all the Stellar assets you support. - - - -```toml -# dev.stellar.toml -ACCOUNTS = ["add your public keys for your distribution accounts here"] -SIGNING_KEY = "add your signing key here" -NETWORK_PASSPHRASE = "Test SDF Network ; September 2015" - -TRANSFER_SERVER = "http://localhost:8080/sep6" -WEB_AUTH_ENDPOINT = "http://localhost:8080/auth" -KYC_SERVER = "http://localhost:8080/sep12" -ANCHOR_QUOTE_SERVER = "http://localhost:8080/sep38" - -# Add support for USDC -[[CURRENCIES]] -code = "USDC" -issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" -status = "test" -is_asset_anchored = false -desc = "USD Coin issued by Circle" - -[DOCUMENTATION] -ORG_NAME = "Your organization" -ORG_URL = "Your website" -ORG_DESCRIPTION = "A description of your organization" -``` - - - -Note that you will need to create another file for your production deployment that uses the public network's passphrase, your production service URLs, your Mainnet distribution accounts and signing key, as well as the Mainnet issuing accounts of the assets your service utilizes. - -### Modify the Assets Configuration File - -Now you're ready to specify the following in your `dev.assets.yaml` file, and change the values depending on your use case. This example asset file enables support for Circle's USDC and a fiat USD to deposit from and withdraw to. - -The methods specified in the `sep38` sections are methods that will be exposed by the SEP-38 [`GET /info`][sep38] endpoint. - -The methods specified in the `deposit` and `withdraw` sections are the methods that will be exposed by the SEP-6 [`GET /info`][sep-6] endpoint. The methods listed should match the methods defined in the SEP-38 section of the file. - -Also note that fiat assets, those with the `schema: iso4217`, do not need the `sep6_enabled`, `deposit`, or `withdraw` configuration objects specified. In the same way, Stellar assets, those with `schema: stellar`, do not need the `sep38.sell_delivery_methods` or `sep38.buy_delivery_methods` configuration objects specified. - - - -```yaml -items: - - id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7 - significant_decimals: 2 - sep6: - enabled: true - deposit: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - withdraw: - enabled: true - min_amount: 0 - max_amount: 10 - methods: - - ACH - sep38: - enabled: true - exchangeable_assets: - - iso4217:USD - - id: iso4217:USD - significant_decimals: 2 - sep38: - enabled: true - exchangeable_assets: - - stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - buy_delivery_methods: - - name: ACH - description: ACH debits for US bank accounts - sell_delivery_methods: - - name: ACH - description: ACH credit for US bank accounts -``` - - - -### Managing Distribution Accounts - -Note that the example above lists a `distribution_account` attribute for the USDC entry. If specified, this account will be provided along with a randomly generated and unique-per-transaction memo to clients as the address to send funds to for withdrawal transactions. The transaction's memo is how you or the Anchor Platform will match the funds received with a transaction record in the Anchor Platform's database. - -If you do not have your own Stellar account and instead use a third party that provides you a Stellar account and memo so they can receive funds on your behalf, such as an exchange or custodian, you should omit the `distribution_account` field from your assets config file. Instead, you'll need to provide the Stellar account and memo you'd like to use to receive funds through a request to the Anchor Platform's [`request_onchain_funds`][request-onchain-funds] on a per-transaction basis. - -To configure the Anchor Platform to expect the Stellar account and memo to be provided via API instead of configured via the assets file, specify the following environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -``` - - - -If you use a wallet provider supported by the Anchor Platform's custody service, such as Fireblocks, you can also configure the Anchor Platform to connect directly to your wallet provider to fetch your distribution accounts and memos. If this is configured, the Anchor Platform will also use the wallet provider to send funds to customers. See the [custody services] section for more information about configuring this feature, but first you'll need to specify a different value for the above-mentioned environment variable. - - - -```bash -# dev.env -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=custody -``` - - - -### Enable Callbacks to the Business Server - -Businesses need to collect and validate KYC information on the customers they're facilitating transactions for. Clients ask your business what KYC information needs to be collected and sends that information via the SEP-12 KYC API hosted by the Anchor Platform, but the Anchor Platform never stores personally-identifiable information (PII). Instead, it forwards requests from clients to the business server, and returns the business' responses back to the client, acting as a proxy server. - -Additionally, businesses need to provide clients with a [Rates][get-rates-api] API to check the exchange rates they're offering between the onchain and offchain assets supported by the business. If the rate is competitive, clients also need to be able to request a commitment to the rate currently being offered from business for a short period of time. Similarly to the KYC API, the Anchor Platform makes requests to your business server to fetch exchange rates and quotes and returns them to clients. - -To enable these requests to your business server, first you'll need to add your business server to the docker compose file. Then, to support requests to your business server from the Anchor Platform, you need to enable callbacks. - - - -```bash -# dev.env -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -The above tells the Anchor Platform to include a [JWT][how-to-use-jwt], signed with the configured secret, in the `Authorization` header of requests made to `/callbacks/` so your server can authenticate the Anchor Platform before processing requests. - -See the [KYC API][platform-api-kyc] and [Rates API][get-rates-api] for details on the endpoints that must be implemented on your business server. - -### Additional Optional Configuration - -`more_info_url` is an optional URL provided by your business server for wallet applications to display information about previously initiated transactions. This URL is typically used by wallets in their transaction history views, and your business can specify the information to be displayed about the transaction. - - - -```bash -# dev.env -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" -``` - - - -Businesses can set a deadline for user actions on transactions using the `user_action_required_by` field. For examples, see [JSON-RPC Methods][json-rpc-methods]. In addition, the `initial_user_deadline_seconds` parameter sets a default time (in seconds) a user has to act before the transaction moves into the `EXPIRED` status. - - - -```bash -# dev.env -SEP6_INITIAL_USER_DEADLINE_SECONDS=1209600 -``` - - - -## Test With the Demo Wallet - -Wallets should now be able to discover, authenticate, and initiate transactions with your service! Your project and source files should now look something like this. - - - -``` -├── dev.env -├── docker-compose.yaml -├── config -│ ├── dev.assets.yaml -│ ├── dev.stellar.toml -``` - - - -Your environment should now look something like the following. - - - -```bash -# dev.env -ASSETS_TYPE=file -ASSETS_VALUE=/home/dev.assets.yaml - -SEP1_ENABLED=true -SEP1_TOML_TYPE=file -SEP1_TOML_VALUE=/home/dev.stellar.toml - -SEP6_ENABLED=true -SEP6_DEPOSIT_INFO_GENERATOR_TYPE=none -SEP6_MORE_INFO_URL_BASE_URL=http://example.com -SECRET_SEP6_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server" - -SEP10_ENABLED=true -SEP10_HOME_DOMAIN=localhost:8080 -SECRET_SEP10_SIGNING_SEED="a Stellar private key" -SECRET_SEP10_JWT_SECRET="a secret used to sign JWTs" - -SEP12_ENABLED=true - -SEP38_ENABLED=true - -CALLBACK_API_BASE_URL=http://business-server:3000/callbacks -CALLBACK_API_AUTH_TYPE=jwt -CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000 -CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization -SECRET_CALLBACK_API_AUTH_SECRET="a secret used to sign JWTs" -``` - - - -To test this out, go to the [Stellar Demo Wallet][stellar-demo-wallet]. - -Initiate a deposit transaction by doing the following: - -- Create a new keypair -- Click the "Add Asset" button and enter - - the code of the Stellar asset on your `stellar.toml` file - - your home domain, `localhost:8080` -- Select the dropdown and click "SEP-6 Deposit", then click "Start" - -The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: ../sep1/README.mdx -[stellar-demo-wallet]: https://demo-wallet.stellar.org/ -[get-rates-api]: ../../api-reference/callbacks/get-rates.api.mdx -[sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md -[platform-api-kyc]: ../../api-reference/callbacks/get-customer.api.mdx -[request-onchain-funds]: ../../api-reference/platform/rpc/methods/request_onchain_funds.mdx -[how-to-use-jwt]: ../sep24/faq.mdx -[json-rpc-methods]: ../../api-reference/platform/rpc/methods/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/integration.mdx b/platforms/anchor-platform/admin-guide/sep6/integration.mdx deleted file mode 100644 index 179218144d..0000000000 --- a/platforms/anchor-platform/admin-guide/sep6/integration.mdx +++ /dev/null @@ -1,991 +0,0 @@ ---- -title: "Integration" -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; -import { AttributeTable } from "@site/src/components/AttributeTable"; -import Security from "../component/security/security.mdx"; -import UsingApiKey from "../component/security/api_key.mdx"; -import UsingJwt from "../component/security/jwt.mdx"; -import Rpc from "../component/rpc/rpc.mdx"; -import RpcRequest from "../component/rpc/request.mdx"; -import RpcResponse from "../component/rpc/response.mdx"; -import RpcError from "../component/rpc/error.mdx"; -import Observer from "../component/observer/observer.mdx"; - -One of the main points of interaction with the Anchor Platform is notifying the Platform about events related to transactions. - -In general, you will want to provide updates for the following events. - -- Your business requires the user to submit KYC information to process a transaction -- Your business updated the in/out/fee amounts for a transaction -- Your business is ready to receive funds from the user -- Your business has received funds from the user -- Your business has sent funds to the user -- Your business has a processed a refund for the user's transaction -- Your business experienced an unexpected error - -This is done by making JSON-RPC requests to the Platform API's endpoint. JSON-RPC requests allow you to update the status of the transaction. To move the transaction to a specific status, it's necessary to make a corresponding JSON-RPC request and pass data that is required by the RPC method. - -The Anchor Platform JSON-RPC API is designed to notify the platform about changes in the status of the transaction. Given that, the API will be called every time a user or the anchor takes any action that progresses the transaction status in the flow. - -Communication from the Anchor Platform about transaction updates, customer updates, and quote creation is handled through the event service. This is an optional feature that needs to be configured separately from the SEP-6 integration. For more information, see [Event Handling][event-handling]. - -You can find out more about transaction flow and statuses in the [SEP-6 protocol document][sep-6]. - -## Callbacks - -The Anchor Platform relies on the business server to provide and store information about customers and quotes. - -### Customer Information - -The Anchor Platform does not store customer information. Instead, it forwards all SEP-12 customer requests to the business server. The business server is responsible for storing and managing this information. Therefore, your business server must implement the [customer APIs][customer-callback] to handle KYC updates. - -### Quotes and Fees - -To support the exchange of non-equivalent assets, the Anchor Platform exposes a SEP-38 compliant API to provide quotes for the exchange. The quote API is used to provide the user with the expected amount of the asset they will receive in exchange for the asset they are sending. The quote API is also used to provide the user with the expected fees for the transaction. Therefore, your business server must implement the [rate API][rate-callback] to provide quotes to the Anchor Platform. - -## Securing Platform API - - - -### Using API Key - - - -### Using JWT - - - -## Making JSON-RPC Requests - - - -### JSON-RPC Request - - - -### JSON-RPC Response - - - -### Error Codes - - - -## Updating Deposit (Exchange) Transaction Via JSON-RPC - -SEP-6 deposit flow diagram defines sequences/rules of the transaction's status transition and a set of JSON-RPC method that should be called to change that status. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The deposit exchange flow is the same as the deposit flow, except the amounts will not need to be recalculated when requesting offchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 deposit flow](../../assets/sep6-deposit-flow-diagram.png)](../../assets/sep6-deposit-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -### Verifying KYC Information - -Although Anchor Platform does not require a customer to have their KYC information collected before initiating a deposit, your business may want to collect this information before the customer makes a transfer. By listening to transaction created events, or by polling the [`GET /transactions`][get-transactions] endpoint, you can require determine if a transaction requires the customer to update their information. The required SEP-9 fields can be communicated to the user by returning a `NEEDS_INFO` status with the required fields in the `fields` attribute. - -After the user has submitted their KYC information, call the `notify_customer_info_updated` JSON-RPC method againto update the transaction status. Additionally, call this method whenever the SEP-12 status for a customer changes, such as when the customer's information is being validated and the status changes from `NEEDS_INFO` to `PROCESSING`. This ensures that any clients configured with a callback URL are notified of the latest customer status, allowing the client to prompt the user to update their information. - - - -```json -// notify-customer-info-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_customer_info_updated", - "params": { - "transaction_id": "", - "message": "Customer info updated", - "customer_id": "45f8884d-d6e1-477f-a680-503179263359", - "customer_type": "sep6-deposit" // or sep6-withdrawal - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh notify-customer-info-updated.json -``` - - - -### Ready to Receive Funds - -After the user has submitted their KYC information, the anchor can notify the Platform that they are ready to receive funds. The anchor should use the `request_offchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-offchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_offchain_funds", - "params": { - "transaction_id": "", - "message": "Request offchain funds", - "amount_in": { - "amount": 10, - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - }, - "amount_expected": { - "amount": 10 - }, - "instructions": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `instructions` is the set of SEP-9 standard fields that user should use to send funds to the business. In this example, the user should send funds to the bank account with the routing number `123456789` and account number `123456789`. - -Information about amounts (in/out/fee) is required if you want to move the transaction to the `pending_user_transfer_start` status. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-offchain-funds.json -``` - - - -:::caution - -For exchange deposits with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -### Funds Received - -If offchain funds were received, you'll want to provide updated transaction information. - - - -```json -// offchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_received", - "params": { - "transaction_id": "", - "message": "Offchain funds received", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - }, - "amount_expected": { - "amount": 10 - } - } - } -] -``` - - - -- `funds_received_at` is the date and time of receiving funds. -- `external_transaction_id` is the ID of transaction on external network. - -The amount fields are optional. If skipped, the values prior to this request will be used. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-received.json -``` - - - -### Waiting For User Funds - -In the real world, the transfer confirmation process may take time. In such cases, transactions should be set to a new status indicating that the confirmation of the transfer has been received but the funds themselves have not been received yet. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_received_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "7...9" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Sending Onchain Funds - -Next, send a transaction on the Stellar network to fulfill the user deposit. After the Stellar transaction has been submitted, it's necessary to send the `notify_onchain_funds_sent` JSON-RPC request to notify a user that the funds were successfully sent. - - - -```json -// onchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Onchain funds sent", - "stellar_transaction_id": "7...9" - } - } -] -``` - - - -- `stellar_transaction_id` is the transaction id on Stellar network of the transfer. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-sent.json -``` - - - -After this JSON-RPC request, the transaction will be transferred to the `completed` status. - -### Sending Payment Via Custody Service - -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. - - - -```json -// do-stellar-payment.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_payment", - "params": { - "transaction_id": "", - "message": "Custody payment started" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-payment.json -``` - - - -After successful processing of the payment on a custody service, the Anchor Platform will automatically make the `notify_onchain_funds_sent` JSON-RPC request and the status of the transaction will be changed to `completed`. - -:::caution - -A user account may not be ready to receive funds. You can check that the account has established a [trustline](/docs/learn/glossary#trustline). Otherwise, you can set the status of the transaction to the `pending_trust` to indicate that the anchor is waiting for the user to establish the trustline. - -If custody integration is enabled, the Anchor Platform will do this validation for you automatically. - -::: - -### Pending Trust - -This status has to be set if a payment requires an asset trustline that wasn't configured by the user. There are two ways of how the transaction may be moved to the `pending_trust` status. The first one is processing of a payment via custody service in case it detected that the trustline isn't configured. The second one is when the business itself detects that the trustline is missing and wants to notify the user that it has to be configured. To move the transaction to the `pending_trust` status, make the following JSON-RPC request. - - - -```json -// request-trust.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_trust", - "params": { - "transaction_id": "", - "message": "Asset trustine not configured" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-trust.json -``` - - - -:::info - -Payment via custody service periodically checks if the trustline was configured. If it was, it will automatically send a payment to a custody service and change the status of the transaction to `pending_stellar`. - -::: - -### Trust Set - -This status has to be set if the business has detected that the trustline was or wasn't configured by user. - - - -```json -// trust-set.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_trust_set", - "params": { - "transaction_id": "", - "message": "Asset trustine set", - "success": "true" - } - } -] -``` - - - -- `success` flag which defines if trustline was or wasn't configured by user - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh trust-set.json -``` - - - -:::info - -Depending on the `success` flag, the status of the transaction will be changed to `pending_stellar` if the trustline was set, or to `pending_anchor` if it wasn't. - -::: - -### Refund Sent - -Sometimes, funds need to be sent back to the user (refund). You can refund the whole sum (full refund) or do a set of partial refunds back to the `source_account` using the `refund_memo` and `refund_memo_type` associated with the transaction if present. Also, if user sent more money than expected, you can refund a part of the sum back to the user and send the rest as onchain funds. - - - -```json -// refund-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_refund_sent", - "params": { - "transaction_id": "", - "message": "Refund sent", - "refund": { - "id": "1c186184-09ee-486c-82a6-aa7a0ab1119c", - "amount": { - "amount": 10, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "iso4217:USD" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh refund-sent.json -``` - - - -:::info - -If a sum of refunds is less than `amount_in`, the status of the transaction will be set to `pending_anchor`. Only if the sum of refunds is equal to `amount_in`, the status of the transaction will be set to `refunded`. - -::: - -### Refund Pending - -This is similar to [Refund Sent](#refund-sent), but it handles the case when a refund has been submitted to external network but is not yet confirmed. The status of the transaction is set to `pending_external`. This is the status that will be set when waiting for Bitcoin or other external crypto network to complete a transaction, or when waiting for a bank transfer. - -### Transaction Error - -If you encounter an unrecoverable error when processing the transaction, it's required to set the transaction status to `error`. You can use the message field to describe the error details. - - - -```json -// transaction-error.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_error", - "params": { - "transaction_id": "", - "message": "Error occurred" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-error.json -``` - - - -:::tip - -If a user has made a transfer, you should do a transaction recovery, and then you can retry processing the transaction or initiate a refund. - -::: - -### Expired Transaction - -Your business may want to handle abandoned transactions by expiring those have remained inactive for a certain period. To achieve this, check the transaction status using the `GET /transactions` endpoint and sort the results by the `user_action_required_by` timestamp. If the timestamp has passed, manually execute the appropriate logic, such as expiring the transaction or initiating an auto-refund, based on the transaction's current status. - - - -```json -// transaction-expired.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_expired", - "params": { - "transaction_id": "", - "message": "Transaction expired" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-expired.json -``` - - - -:::tip - -This JSON-RPC method can't be used after the user has made a transfer. - -::: - -### Transaction Recovery - -Transaction status can be changed from `error/expired` to `pending_anchor`. After recovery, you can refund the received assets or proceed with processing of the transaction. To recover a transaction, make the following JSON-RPC request. - - - -```json -// transaction-recovery.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_transaction_recovery", - "params": { - "transaction_id": "", - "message": "Transaction recovered" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh transaction-recovery.json -``` - - - -## Updating Withdrawal (Exchange) Transaction Via JSON-RPC - -The SEP-6 withdrawal flow diagram defines the sequence/rules of the transaction's status transition. You can't define the status you want to set for a specific transaction in your requests. Each JSON-RPC method defines data structures that it expects in request. If request doesn't contain a required attributes, the Anchor Platform will return and error and won't change status of the transaction. - -The withdrawal exchange flow is the same as the withdrawal flow, except the amounts will not need to be recalculated when requesting onchain funds, if the user has provided a firm quote from the anchor. - -[![sep6 withdrawal flow](../../assets/sep6-withdrawal-flow-diagram.png)](../../assets/sep6-withdrawal-flow-diagram.png) - -:::tip - -Statuses in green are mandatory and define the shortest way. - -Statuses in yellow are optional and can be skipped. - -Statuses in red mean the transaction is in an error status or it has expired. - -::: - -Once the withdrawal flow is finished, implementing the withdrawal is straightforward. Some parts of the flow are similar and can be reused. - -The starting point both for withdrawal and for deposit is the same. - -### Ready to Receive Funds - -Similarly to deposit, the step after KYC has been collected is to notify the user that the anchor is ready to receive funds. However, as your service will be receiving transactions over the Stellar network, the RPC request will be different. The anchor should use the `request_onchain_funds` RPC to provide the final amounts to the user. To do so, make the following JSON-RPC request. - - - -```json -// request-onchain-funds.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "request_onchain_funds", - "params": { - "transaction_id": "", - "message": "Request onchain funds", - "amount_in": { - "amount": 10, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": 9, - "asset": "iso4217:USD" - }, - "fee_details": { - "total": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_expected": { - "amount": 10 - }, - "destination_account": "GD...G", - "memo": "12345", - "memo_type": "id" - } - } -] -``` - - - -- `amount_in` is the amount the user has to send to the business. -- `amount_out` is the amount the user will receive. -- `fee_details` is the total amount of fees collected by the business. -- `asset` is part of the `amount_x` field and is in a SEP-38 format. In this example, it's set to USD, assuming the user made a bank transfer to the system using USD. -- `memo` is the memo the user should use when sending their onchain funds to the anchor. -- `memo_type` is the memo type the user should use when sending their onchain funds to the anchor. -- `destination_account` is the account the user should send the funds to. - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh request-onchain-funds.json -``` - - - -:::caution - -For exchange withdrawals with a firm quote (the request is associated with a `quote_id`), no amounts should not be provided. - -::: - -:::tip - -Setting `memo`, `memo_type`, and `destination_account` is optional. - -If integration with a third-party custodian is enabled, the Anchor Platform can generate `memo`, `memo_type`, and `destination_address` if a corresponding `deposit_info_generator_type` is chosen. Also, you can provide `memo` and `memo_type` to the request as shown above. Note that the memo must be unique, this is what helps to associate Stellar transactions with SEP transactions. - -If your business manages the assets, the Anchor Platform can generate memos for you. When the status is changed to `pending_user_transfer_start`, the Anchor Platform sets the `memo` and `memo_type` automatically (only if it's not included in the request). - -::: - -:::note - -The Stellar account that will be used to receive funds should be configured. - -::: - -### Funds Received - -If onchain funds were received, you need to provide amounts and change the status of the transaction to `pending_anchor`. - - - -```json -// onchain-funds-received.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_onchain_funds_received", - "params": { - "transaction_id": "", - "message": "Onchain funds received", - "stellar_transaction_id": "7...9", - "amount_in": { - "amount": 10 - }, - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh onchain-funds-received.json -``` - - - -:::tip - -This method will be called automatically by the custody server if the custody integration is enabled. - -::: - -### Amount Updated - -If onchain funds were received, but for some reason the `amount_in` differs from specified in the interactive flow (`amount_expected`), you can update `amount_out` and `fee_details` to make them correspond to the actual `amount_in`. The status of the transaction in this case won't be changed and will be equal to `pending_anchor`. - - - -```json -// amounts-updated.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_amounts_updated", - "params": { - "transaction_id": "", - "message": "Amounts updated", - "amount_out": { - "amount": 9 - }, - "fee_details": { - "total": 1 - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh amounts-updated.json -``` - - - -:::note - -Only `amount_out` and `fee_details` can be updated using this JSON-RPC request, and you don't need to specify the assets of the amounts. - -::: - -### Offchain Funds Available - -You can move transaction status to `pending_user_transfer_complete` if offchain funds were sent, and if it's ready for the user / recipient to pick it up. - - - -```json -// offchain-funds-available.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_available", - "params": { - "transaction_id": "", - "message": "Offchain funds available", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-available.json -``` - - - -### Offchain Funds Pending - -Another option is to move the transaction's status to `pending_external`. This status means that the payment has been submitted to an external network, but is not yet confirmed. - - - -```json -// offchain-funds-pending.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_pending", - "params": { - "transaction_id": "", - "message": "Offchain funds pending", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-pending.json -``` - - - -### Offchain Funds Sent - -To complete the transaction and change its status to `completed`, you need to make the `notify_offchain_funds_sent` JSON-RPC request. - - - -```json -// offchain-funds-sent.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "notify_offchain_funds_sent", - "params": { - "transaction_id": "", - "message": "Offchain funds sent", - "funds_sent_at": "2023-07-04T12:34:56Z", - "external_transaction_id": "a...c" - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh offchain-funds-sent.json -``` - - - -### Refund Sent - -The refund logic works in the same way as for the deposit flow. For more details, see [Refund Sent](#refund-sent) of the deposit flow. - -### Sending Refund Via Custody Service - -Integration with a custody service allows you to do a refund via a custody service, such as Fireblocks. - - - -```json -// do-stellar-refund.json -[ - { - "id": 1, - "jsonrpc": "2.0", - "method": "do_stellar_refund", - "params": { - "transaction_id": "", - "message": "Do stellar refund", - "refund": { - "amount": { - "amount": 9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - } -] -``` - - - -To execute this, you need to run: - - - -```bash -./call-json-rpc.sh do-stellar-refund.json -``` - - - -:::note - -Similarly to the deposit flow, you can make a full refund or a set of partial refunds. The transaction will stay in `pending_anchor` status until the sum of refunds is less than `amount_in`. If the sum of refunds is equal to `amount_in`, the Anchor Platform will automatically change the status of the transaction to `refunded`. - -::: - -### Transaction Error - -Works in the same manner as for the deposit flow. For more details, see [Transaction Error](#transaction-error) of the deposit flow. - -### Expired Transaction - -Works in the same manner as for the deposit flow. For more details, see [Expired Transaction](#expired-transaction) of the deposit flow. - -### Transaction Recovery - -Works in the same manner as for the deposit flow. For more details, see [Transaction Recovery](#transaction-recovery) of the deposit flow. - -## Tracking Stellar Transactions - - - -[sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[event-handling]: ../events/README.mdx -[customer-callback]: ../../api-reference/callbacks/README.mdx -[rate-callback]: ../../api-reference/callbacks/README.mdx -[get-transactions]: ../../api-reference/platform/transactions/get-transactions.api.mdx diff --git a/platforms/anchor-platform/api-reference/README.mdx b/platforms/anchor-platform/api-reference/README.mdx deleted file mode 100644 index 1a9f52ea6c..0000000000 --- a/platforms/anchor-platform/api-reference/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: API Reference -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -View all Anchor Platform API information. - - diff --git a/platforms/anchor-platform/api-reference/_category_.json b/platforms/anchor-platform/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/platforms/anchor-platform/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/platforms/anchor-platform/api-reference/callbacks/README.mdx b/platforms/anchor-platform/api-reference/callbacks/README.mdx deleted file mode 100644 index 1abac748cf..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/README.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Callbacks Server -sidebar_position: 20 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -The Anchor Platform provides several callback functionalities for your business server. - - - -| | | -| ------ | --------------------------------------- | -| GET | [/customer](./get-customer.api.mdx) | -| PUT | [/customer](./put-customer.api.mdx) | -| DELETE | [/customer/:id](./del-customer.api.mdx) | -| POST | [/event](./post-event.api.mdx) | -| GET | [/rate](./get-rates.api.mdx) | - - diff --git a/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx b/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx deleted file mode 100644 index 3b0cbc87dc..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/del-customer.api.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: del-customer -title: "Delete Customer Data" -description: "The request for this endpoint is identical to the" -sidebar_label: "Delete Customer Data" -hide_title: true -hide_table_of_contents: true -api: eJztVE1v2zAM/SsCd9gGOHaa7eRb0eZQYBiKpTslASZLTKxNllSRXhsY/u+DHLtptmy/YL7Ypvgh8j2+DljuCco13LTEvsFIsM3geUYYBvNqeT+7WkA2fHy4SocaSUUT2HgHJTzUKCI+tkgsdj4Krg0JdDp441gYEkajY6OkFewF17hx62+3y0/Lh6Uo1Fj02/ZdzRyoLIq94bqtcuWbghitlXF6z0L07JW3RWV9VTSSGGOBytOBGJuCMMzm86tF3ug3U+KZRouM7zduuqPGnXGohXHi2Fu+cRt3O7il64kp9C0JLVkKH8Vji+354XiWGh4qGO/yjYMMfMAo0++dhhI02mmukEGQUTbIacblugOTxhck15CBkw1CCUZDBqRqbCSUHfAhJCtxNG4PfQapCRNRQ8mxxX6bLBS8I6Tkv5h/TK9zgFatUkiUp/iPlxymGwrnE4St0zlkoLxjdJzcZQjWqKGr4julmO7PS/rqOypOXcY0AzbHK2GMPl7sxegL5rMe12P0NgM2bJPfcjD06ckAnxkdGe+O8/yBBygn6mbwU9oWL1I4za1Brv0IETIO6HANJbxwsuiM7hMcGH9OkLXRQgkTVZW0tpLqR161ZBwSzY6+OT7LJliUTtU+JipDKmnczqeWU7bj5D/k83wOlzZqdXCqjt75lsTNWIbE9f2doIDK7EY4xo1DsTquiLgeSop7K3nnYyNC9AmWgeP/znvcC5p2mUQjNYrqMKR/yfdUG4vCDIsdok/EMm4v5EkCom+EFMoadCxeMScXD2n3jzN5m+qMxB1lgfBUWu52qPi88u/+l0oMGzhR5dTeakAFMrBGoSNMIIwLdx2kqlEsBhhO6JZF8fT0lMvhNPdxX4yhVHy6u1l+Xi1ni3ye19zYgbPBEzfSvUo8CsrLbt1Klr8j3Z2W7L+MnsvoKAuMz1wEK41LijHg042LugZ1UtbS6KQStSdOJ11XScKv0fZ9Mj+2GA9QrrdJFKKRVeLHugNtKH1rKHfSEv4DnXdfRlF6L/52udEo3eGkPQDZqEpGQ7/tM6hRaoyv5OpaKQz8KuQPsT1TqyPi0Pe/AB/asHM= -sidebar_class_name: "delete api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request for this endpoint is identical to the -[`DELETE /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-delete) -request defined in SEP-12. - -Delete the customer's data or queue the customers data for deletion. - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx b/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx deleted file mode 100644 index 8b11caa759..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/get-customer.api.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: get-customer -title: "Retrieve Customer's Info" -description: "The request and response for this endpoint is identical to the" -sidebar_label: "Retrieve Customer's Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request and response for this endpoint is identical to the -[`GET /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-get) -request and response defined in SEP-12. - -This endpoint allows clients to: - - 1. Fetch the fields the server requires in order to register a new customer via a SEP-12 -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) request - -If the server does not have a customer registered for the parameters sent in the request, it should return the -fields required in the response. The same response should be returned when no parameters are sent. - - 2. Check the status of a customer that may already be registered - -This allows clients to check whether the customers information was accepted, rejected, or still needs more info. -If the server still needs more info, or the server needs updated information, it should return the fields required. - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx b/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx deleted file mode 100644 index 64639632c5..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/get-rates.api.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: get-rates -title: "Retrieve Rates" -description: "Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must" -sidebar_label: "Retrieve Rates" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Transactions that involve two non-equivalent on & off-chain assets (such as USDC on Stellar and fiat EUR) must -use exchange rates that are communicated to the client application requesting the transaction. When clients make -requests to the Platform for these exchange rates, the Platform sends this request to the anchor to fetch it. - -Rates can be [indicative](https://www.investopedia.com/terms/i/indicativequote.asp) or -[firm](https://www.investopedia.com/terms/f/firmquote.asp). The anchor must provide an ID and expiration if the -client requests a firm rate. - -Anchors can provide discounted rates specific client applications. The Platform includes the `client_id` parameter -for this reason. - -Either `sell_amount` or `buy_amount` will be included in requests as parameters, but never both. In the same way, -either `sell_delivery_method` and `buy_delivery_method` may be included in requests, but never both, since either -`sell_asset` or `buy_asset` is a Stellar asset. - - -Upon receiving the response, the Anchor Platform will validate the amount and price of the response. - -If the validation fails, the Platform will respond to the client application's request with a HTTP status -code of `502 Bad Gateway`. - -The `sell_amount`, `buy_amount`, `price`, and `fee` are validated as follows: - -- if `rate.fee` exists, - - `rate.fee.asset` must have a positive value of `significant_decimals` defined in the asset configuration. - - `rate.fee.total` must equal to the sum of `rate.fee.details.amount`. - - if the `rate.fee.asset == rate.sell_asset`, `sell_amount ~= price * buy_amount + fee` must hold true. - - if the `rate.fee.asset == rate.buy_asset`, `sell_amount ~= price * (buy_amount + fee)` must hold true. -- if `rate.fee` does not exist, `sell_amount ~= price * buy_amount` must hold true. - -The `~=` is defined as equality within rounding error. - The rounding error is defined as `10^(-significant_decimals)` - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx b/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx deleted file mode 100644 index 0aeff4fccd..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/post-event.api.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: post-event -title: "Receive an Event" -description: "Receive a JSON object representing an event." -sidebar_label: "Receive an Event" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Receive a JSON object representing an event. - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx b/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx deleted file mode 100644 index 85959337ff..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/put-customer.api.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: put-customer -title: "Create or Update Customer Info" -description: "**The Anchor Platform does not persist any customer KYC data.**" -sidebar_label: "Create or Update Customer Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "put api-method" -info_path: platforms/anchor-platform/api-reference/callbacks/callbacks-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -**The Anchor Platform does not persist any customer KYC data.** - -The request and response for this endpoint are identical to the -[`PUT /customer`](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md#customer-put) -request and response defined in SEP-12. - -Client applications make requests with the following request body, which is forwarded to the anchor. Anchors -must validate and persist the data passed, and return the customer's `id`. Requests containing only string fields will -be forwarded to the anchor as with the `application/json` content type. Requests containing -binary fields will be forwarded to the anchor as with the `multipart/form-data` content type. - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/callbacks/versions.json b/platforms/anchor-platform/api-reference/callbacks/versions.json deleted file mode 100644 index 23f5ac539d..0000000000 --- a/platforms/anchor-platform/api-reference/callbacks/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/callbacks" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/callbacks" - } -] diff --git a/platforms/anchor-platform/api-reference/custody/README.mdx b/platforms/anchor-platform/api-reference/custody/README.mdx deleted file mode 100644 index 9632f1a96f..0000000000 --- a/platforms/anchor-platform/api-reference/custody/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Custody Server -sidebar_position: 30 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -The Custody Server provides a set of endpoints to interact with custody services, such as Fireblocks. - - - -| | | -| -------------------------------------------------------------- | --- | -| [Custody Transaction](./create-custody-transaction.api.mdx) | | -| [Payment](./send-payment.api.mdx) | | -| [Refund](./send-refund.api.mdx) | | -| [Unique address generation](./generate-unique-address.api.mdx) | | - - diff --git a/platforms/anchor-platform/api-reference/custody/create-custody-transaction.api.mdx b/platforms/anchor-platform/api-reference/custody/create-custody-transaction.api.mdx deleted file mode 100644 index ec0c146793..0000000000 --- a/platforms/anchor-platform/api-reference/custody/create-custody-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: create-custody-transaction -title: "Create Custody Transaction" -description: "Custody Server creates custody transaction record in DB." -sidebar_label: "Create Custody Transaction" -hide_title: true -hide_table_of_contents: true -api: eJytV0tz2zYQ/is7uPRCS67T9sCb4zhTTx/R1O7J8WEFrkTEIMAAS8kcjf57ZgFKlGXFk6TVQaKX+358u96oiqIOpmXjnSrVVRfZVz3cUlhRAB0ImSLogcwBXUQtzBBI+1CBcfDu7UQVyrcUUN7cVKpUWXJQdzeKqUIxLqMq7/e2Dt5G9VCop7NIbeK4vZ6d/aaK9Hvxy/Dw5mdhCvS5o8hvfdWrcqO0d0yO5RHb1hqdPJl+ihLVRkVdU4PyxH1LqlR+/ok0q0K1QfxmQ1Hemkq+n6fk9nr2LO6bdxLtoCdyMG6ptoVqqPEvhf+ixsMKbUcFcI0MJkIXqQL2YCpybBY9GDf3navAB/Ad5+cW+4Ycx6/aukvEY3tCBb8A4fjfLBaKXNdIQUylClVjrIWHnlg9bFMK2WtvX3ozG96IR0dpfM2KlDyVW0q9LdQi+OZSa9/lAh+Vx3dBE9wyWYsBMPOdTBv7r2p5R5GNS03zTaqwOa3nMtElXq4JMEbisQyRHE8DaTIrql5R+55OVPY90TelUbSI2RO+fa83j8admIc/jDRODvA7ilpR66ORkVsbrquAa7RK5jg5oB626SOE2HoX8zxenJ+fqHinNcXUpz849tnSr6eU3zim4NDuEPA6BB9+3FIGKhOokhxQUvZwjDqZPMruKiAta9jSiMvZmyFT9MTkYkLN8n6jHqlX5Q48C5VA51UQ3T4IknDtBa9bHxMcIteqVFM+xORCxZSMbKcLVpWqZm5jOZ0Om+Esc0zoCZvWEjpd+zDRvlFiRbL0zwjY15lpB7hjr2QMff53xrmMPCPSJIx4hguj1MGYj8TdwB5T0qwdEPPojIQ8A/vu3RbKuEUCeklI7pk3k/PJuXpRrKGFVHGM0TXtF2oc9qx3jjRHAWmSDmyDiQRrtJYY2uBXpqIQC4idrgEjvDeB5tbrx1iITCRXAboKhnHagzksfDic0AjGGTbIVMHKYBriy1QsmFnkhQ/NBO7qBA9hZTQJUqADtGksWHSzz7M/wOSH+RCEmJp30TiKkSKsay+LB7yjHVzErm19ENv7kCZw4wCryiToHVQvOpe8RWu4B79YUKAK5v1Ju0WiHh8uyefoYYHaWMPI9HLTiTltDTn+KR6jvji2gN53WY0EImZolQSH5BTPVPW+G8VhbawFDma5pAAIv9/dzUCjtXPUj9BgRXuRXc6GZph8dB/d3nYgrHqocUVSBuOYlvnKAoHRrOCoTVJCHLBUUfum9Y5cQnznGXZwVEhJa98t65NOZPcd5bvB+XQ1nGgWWIsp3OVBNp7Xub2Sf+heSBzeUmvMe0iM+AAy0Nmd42rsm3Wv5nJ2kzJ11YVAjm12zzvbn2gziX4cmclHOUOt0eRiQiGHjcztZYu6JrhIwzzCXDmdrtfrCaa3Ex+W00E0Tv+8ubr++/b67GJyPqm5sQmzBUobdAeKr9IxDCcO3mNwOLhk/8stPiwSOdGmrUXjBLhSRJsB4u8VH53dtWyA8l5tNnOM9G+w262QP3cUelXeP8hKCQbnAnH3cpbVhBWFg91zlV0/S5C930Av9+W22Elcak0tv8p7uKRmH27vVKHmw9Hf+EpkAq5lz+JalSr9H5JDKjeZtlEW3bLDpfBmnfL5AvWzi8k= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server creates custody transaction record in DB. - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/custody/generate-unique-address.api.mdx b/platforms/anchor-platform/api-reference/custody/generate-unique-address.api.mdx deleted file mode 100644 index 900893c971..0000000000 --- a/platforms/anchor-platform/api-reference/custody/generate-unique-address.api.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: generate-unique-address -title: "Generate Unique Address" -description: "Custody Server calls the configured custody service to generate deposit address and memo." -sidebar_label: "Generate Unique Address" -hide_title: true -hide_table_of_contents: true -api: eJylVsFS20gQ/ZWuuexFyCyQUKWbAyahlmQJJlC7G6oYj1rWhNG0MtOycVH+91SPZEOA3cPmJJXc3e9Nv9c9flAlRhNsy5a8KtRRF5nKFUwxLDCA0c5F4BrBkK/svAtYghliIoaFNQhMMEePQTNCiS1Fy6DLMmCMoH0JDTaUf/Vf/QmFRjNQBbc6RuRbaHXQDTIG2IHbyOicDsWX6fFR8f7du+ODw9OTt2fXfxyeH348nlxNj64vDo/Pv1xf7X/6a//48vPk6uTs4NP48mD8+cP+32dnJ2fjN7dfvcoUtULHkj8tVaE27L54+73DcU9NZYr1PKrin+2h+99hE3CTqfudiG2KmU7Od96qLD33DoaX/d8lKOD3DiO/o3KligdlyDN6llfdts6aRGT0LUqDH1Q0NTZa3njVoioUzb6hYbVer9dSK7bkI0YJ2NvdlcfPCk07YzDGXGX/FylTbZAGse1hBq1eQh0/E5MJlrU1dW8IZ9EzxJo6V0JEX0LV+TIRG/AiB+vnap0pscDL+h+xIVho12EGXOttsRkKJJYC2OpVIziz1RPUf8W4TB+f48hXcZ1E/DJSptB3jVjClipTtY61xOA9qxtRkC07CX//mukuBnkHtd+8JvCpZwxeu80MTkKg8Etyi0FtwFJIo1QT1/7sgf7zY+6mrU8ONExJopP4rzOF94w+WvIyIw/qDleq2AxNppK0/zk86xvRjWuSMW0pJnNqrlWhRmlFxFGRnqPBgyh1Y2pMD9kFpwpVM7exGI2G1bTTR+R4r5vWofamppAbapQASsMuHmd20gep4mGdKeurZFSp38uxn+/mu+pFGwZ1VPbca2KdJwtSlih5j4bT/KCI2wYbEZbaOWRoAy1siSFmEDtTg45wYgPOHJm7mElOmi1ZpAEN2gVunBqhogActI/aCHwE6y1bzVjCwupk43E6O5w7zRWFJofL2sbt6rayoUG75DiW2kwpbdrvYvhzNhxCoGZdtD6JAMuaoIsI5NNkSUrs2paCYG+PlMOplwGzwm5Tuup8Yqud5RVQVaFcKsPUPcfN0tcXt5JwjgSVNtZZlouHOp5R58vH5jANM/xb3JbVxlDnWYhVsKKuLyMHERhcpMShOdlPpVbUPabD0joHHOx8jgE0fLi8PE935UybO2h0iduUTc8GM6R7cIsdUJcrqPUCRQbrGef9tQVLy3Vf4JlNUkM8sKhoqGnJy86yETwxbAY9E0lr6ub1qyR6+h77veeJbbV6zSywFCi93Yw6RjK9vRI/7V9kPHEjLLUAehYQClAFano6z9XYmnVbZnx+mjp11IWAnl1Pj7xbvWIzOf3jyOTpD4CzBmXPFg/K60bmdtxqUyPspWF+3BrFaLRcLnOdfs0pzEdDahydnR5NPk0nO3v5bl5z42Tp/QApKz98 -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to generate deposit address and memo. - -Format of `asset` parameter - `stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5` - - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/custody/send-payment.api.mdx b/platforms/anchor-platform/api-reference/custody/send-payment.api.mdx deleted file mode 100644 index 68a7e02b9c..0000000000 --- a/platforms/anchor-platform/api-reference/custody/send-payment.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-payment -title: "Send Payment" -description: "Custody Server calls the configured custody service to send payment." -sidebar_label: "Send Payment" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsDXnpRZDdJC1S3NHVRA0UbxD4s0OyBpkYWNxSpckZ2BMP/vRhKtpPY3QXaS04SSM7HezN8w50qkUy0LdvgVaHuO+JQ9rDAuMEIRjtHwDWCCb6y6y5iCWY8Qxg31iBwAEJfQqv7Bj3nKlOhxajF5bxUhZLdh2FTZYr1mlTxlxpXSH3O1MsVYZtWF7OHqx9Vlr7Xt+PPzfdyKOLfHRL/HMpeFTtlgmfxWOyUbltnTQo4+UICZKfI1Nho+eO+RVWosPqChtV+v9+LL2qDJyQ5cD2dyuctE4vOGCQSNP8xUqbaKESwHcLY8tUZ4mj9WmXvos5eGKPXDpafYP4LVDE07/nOlQBgy078LE7cPo6YRoi3l1DN/UY7W8LjwOX/Qif1sBFLKRvGGKIU6S3kYfkM9WsAY8fN0slD5rfnmR86cxm1J21kFSyBDwxV6Hz5QaFc//TvUBbjBYqaEZxtLAsifDGIJX5QQD9c7qqxa0fZSAYfNf+bbxfEEnReb7R1euXwIwLZZwpfGD3Z4EU3d+oZe1UchDRTG+06/Kqg7j9nqkGug0h0GygJluZaFWrCp0tGk8KWk/Yg1pmiVOMhaBedKlTN3FIxmYxCdTWcyPFFN61D7U0dYm5CoySkUPZ4UvLZcEgVu32mrK+CECH+h8rc5NN8qs6IGBvtTD6XMqleyaWMsOA9GiYZUyh92kZLCFvtHDK0MWxsiZEyoM7UoAl+tRFXLphnyo6jTfsSIhq0GzyMOYIqRHhNFFhv2WrGEjZWp6l5l7DDg9NchdjksKwtHQenJdAetEuXh8U3h2S2YHROR/hzNYKQUKuOrEciJNjWATpCCB4hVMmEurYNUWIfIeUw96DL0iatHF1XnU/Zame5h1BVKCN91V+Mm6XVszeB5EwBKm2ssyziFTpeiQifyOEAxln0/B0d3WpjQudZEqugD93gRoBIGNwkw5Gc7I2rPnQnc9ha54CjXa8xgobflsuH9FJZafMMjS7xaHLgbGyG/Mk/+WPsiLrsodYblDJYz7geHi2wtVwPDt61SSLEA0sVTWja4NHzYQwdrnomJa1Dt64vJjGk7xFLSdMHtlV/qVlgK6H0gQfQRMEM7ZXy0/7M4lU3wlZLQM8SJMThJZHSeV+NY7Me3dw9zBNT912M6NkN6QXv+gttJuhPVyZ/8ipTzhqUh0ixU143cm/vWm1qhOt0mU+qUUwm2+0212k3D3E9GU1p8vv8fvbHYnZ1nU/zmhsnsvcPSXzImw== -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls the configured custody service to send payment. - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/custody/send-refund.api.mdx b/platforms/anchor-platform/api-reference/custody/send-refund.api.mdx deleted file mode 100644 index 08eb1ac79f..0000000000 --- a/platforms/anchor-platform/api-reference/custody/send-refund.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: send-refund -title: "Send Refund" -description: "Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB." -sidebar_label: "Send Refund" -hide_title: true -hide_table_of_contents: true -api: eJzNVktv4zYQ/isDXnpR5DRJC1S3bNZBDfQRxD4UaPZAUyOLG4pUOSM7QrD/fTGU/Ijtbg/bQ3yxMCRn5pvXN6+qRDLRtmyDV4W664hD2cMc4xojGO0cgQm+sqsuYgmH59YgcABCX0LEqvNlvjvnqD1pI1ohogmxBEugHQUwETVjCdbDxw+5ylRoMWq5OStVoUTdY9KmMsV6Rar4Ww0CUp8y9XJB2CbhfPpw8bPK0v/Vzfhx/aNcivhPh8QfQtmr4lWZ4Bk9y6duW2dNMjf5TIL5VZGpsdHyxX2LqlBh+RkNq0y1UZxjiySnDTZB/t+G7HdsAqy16zADrjXDxjoHSwRdllhKhLjGMUDQ6r5BzwJ7tEUcrV+pL1lSv0jCYxMihVCB3PhOI7oJ3RCJtyZuk/xI+aAPy29ouscz/t5jcnfv0hkF6SeZojZ4GgJ8dXl5qmzeGYNEouJ/yqMtD+6M/mRHVqcvjNFrB4u/YPYRqhgaMGNx01D8uRIAbNmJnjn68mEI/OOISQ0Qb86hmvm1draEx6FSvwudVLuNWEpTYIwhSgu8hTyIT1AfAhhbd5pubj2/OfV82+KLgxa3BD4wVGHM9TuEcvXLv0PZTrOoGcHZxrIgwheDOFb/+wP00/mqGqt2nN/pwXv1//q/E2IJOq/X2jq9dPgegXzJFL4werLBCyu9qmfsVbGlqUwlZvgmXX35JLOf6yD01wZKA0tzrQo1OeBRmhS2nMSRCTNFKcWDzS46VaiauaViMhnn1MVwI8cX3bQOtTd1iLkJjRKLErHHPU1Oh0t7mtsPxj0v7WVbGjmWJDo4IAnrq0SZ4umQ4uv8Mr9UJxEdK/ZkDi9qfDN3ZSkJ3qNhEtZDKfg2WkLYaOeQoY1hbUuMlAF1pgZNcG8jLl0wz5TtFhadlhaDdo1bviSoQjzcXAist2zTtrK2OvHZbYoiPDjNVYhNDova0pYR0o7jQbvUhSy6R2aeMzqnI/y5HEGIqWVH1iMREmzqAB0hBL9jTuraNkSxvYOUw8wL49s0dEfVVeeTt9pZ7iFUFcqituzP2s2S9GTL88NqVmljnWWZgqHjZThYJlK0jbPo+QfaqdXGSNbFsQr60A1qBIiYwXV6OAYne6OqD93++bBwcLSrFUbQ8Oti8ZB2z6U2z9DoEndPtjEbiyF/8k9+ZzuiLnuo9RolDdYzrobNEjaW60HBUZmkgHhgyaIJTRs8et7y2XZmZJLSOnSr+qwTg/seh0XMB7ZVf65YYCOm9DYOoImCGcor+af9yYvDPXqjxaBnMRLisJIkd46zsSvWnZrbh1mK1F0XI3p2g3vBu/5MmQn6fcvkT15lylmDstEUr8rrRvr2ttWmRrhKzbyfP8Vkstlscp1O8xBXk/EpTX6b3U3/mE8vrvLLvObGyfz8CoE2aek= -sidebar_class_name: "post api-method" -info_path: platforms/anchor-platform/api-reference/custody/custody-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Custody Server calls configured Custody Service to send refund. Custody transaction record is also created in DB. - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/custody/versions.json b/platforms/anchor-platform/api-reference/custody/versions.json deleted file mode 100644 index 26d39ec7ce..0000000000 --- a/platforms/anchor-platform/api-reference/custody/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/custody" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/custody" - } -] diff --git a/platforms/anchor-platform/api-reference/platform/README.mdx b/platforms/anchor-platform/api-reference/platform/README.mdx deleted file mode 100644 index 33ec426998..0000000000 --- a/platforms/anchor-platform/api-reference/platform/README.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Platform Server -sidebar_position: 10 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Anchor Platform is available through two different APIs: A REST API and a JSON-RPC API. Each of these APIs has associated documentation here. - - - -| | | -| ------------------------------------- | --- | -| [REST API](./transactions/README.mdx) | | -| [JSON-RPC API](./rpc/README.mdx) | | - - diff --git a/platforms/anchor-platform/api-reference/platform/rpc/README.mdx b/platforms/anchor-platform/api-reference/platform/rpc/README.mdx deleted file mode 100644 index 60798cab01..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: JSON-RPC API -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Interact with your Anchor Platform instance through the use of lightweight, easy-to-use RPC requests. - - diff --git a/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json b/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json deleted file mode 100644 index c3ff0ede70..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/anchor-platform.openrpc.json +++ /dev/null @@ -1,10163 +0,0 @@ -{ - "openrpc": "1.2.6", - "info": { - "title": "Anchor Platform", - "description": "The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges.", - "termsOfService": "https://stellar.org/terms-of-service", - "contact": { - "name": "Stellar Development Foundation", - "url": "https://stellar.org/connect", - "email": "hello@stellar.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0.html" - }, - "version": "2.8.4" - }, - "servers": [ - { - "name": "Platform API", - "url": "https://platform-server.exampleanchor.com", - "summary": "Example URL endpoint for the Platform Server.", - "description": "Example URL endpoint for the Platform Server. Note: This is an example URL only, you must configure your own Platform Server." - } - ], - "methods": [ - { - "name": "do_stellar_payment", - "summary": "Submits a Stellar payment", - "description": "Submits a payment to a stellar network by a custody service.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "do_stellar_paymentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_paymentExample", - "description": "Example request to the `do_stellar_payment` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar payment" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "do_stellar_refund", - "summary": "Submits a Stellar refund", - "description": "Submits a refund payment to a stellar network by a custody service", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "description": "An object describing refund associated with this transaction.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - } - } - } - } - ], - "result": { - "name": "do_stellar_refundResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "do_stellar_refundExample", - "description": "Example request to the `do_stellar_refund` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Do Stellar refund" - }, - { - "name": "refund", - "value": { - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "get_transaction", - "summary": "Retrieve a transaction.", - "description": "Retrieve a transaction by its ID.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionExample", - "description": "Example request to the `get_transaction` method.", - "params": [ - { - "name": "id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - } - ], - "result": { - "name": "platformTransactionResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - } - } - ] - }, - { - "name": "get_transactions", - "summary": "Retrieve a list of transactions.", - "description": "Query a list of transactions by SEP, transaction status or other criteria.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "sep", - "summary": "Sep of the transaction.", - "description": "Sep of the transaction belongs to", - "required": true, - "schema": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - } - }, - { - "name": "order_by", - "summary": "The field that transactions will be ordered by .", - "description": "Specifies field that transactions will be ordered by. Note, that secondary sort is transaction id in ascending value.", - "required": false, - "schema": { - "title": "order_by", - "description": "The order by string used to sort the results.", - "type": "string", - "enum": [ - "created_at", - "transfer_received_at", - "user_action_required_by" - ], - "default": "created_at" - } - }, - { - "name": "statuses", - "summary": "The statuses of transactions.", - "description": "The statuses of the transaction to filter by.", - "required": false, - "schema": { - "title": "status", - "description": "The statuses of the transaction to filter by.", - "type": "array", - "enum": [ - "incomplete", - "completed", - "refunded", - "expired", - "error", - "pending_stellar", - "pending_external", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "pending_anchor", - "pending_trust", - "pending_user", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update" - ] - } - }, - { - "name": "page_size", - "summary": "The number of transactions to return.", - "description": "The number of records to return in each page.", - "required": false, - "schema": { - "title": "page_size", - "description": "The number of records to return in each page.", - "type": "integer", - "default": 20 - } - }, - { - "name": "page_number", - "summary": "The page number of transactions to return.", - "description": "Page number to use for continuous search. Page count beings at 0.", - "required": false, - "schema": { - "title": "page_number", - "description": "Page number to use for continuous search. Page count beings at 0.", - "type": "integer", - "default": 0 - } - } - ], - "result": { - "name": "get_transactionResponse", - "schema": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "title": "Platform Transaction", - "description": "A platform transaction object", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "funding_method": { - "description": "Funding method used for transferring or settling assets.", - "type": "string" - }, - "type": { - "description": "DEPRECATED in favor of funding_method. Type of deposit, withdrawal or receive.", - "type": "string" - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "user_action_required_by": { - "title": "user_action_required_by", - "description": "Time and date by which user action is required.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - }, - "stellar_transactions": { - "type": "array", - "items": { - "title": "stellar_transaction", - "type": "object", - "required": [ - "id", - "created_at", - "envelope", - "payments" - ], - "properties": { - "id": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "created_at": { - "title": "created_at", - "description": "The date and time when the transaction is created.", - "type": "string" - }, - "envelop": { - "description": "The transaction envelope, containing all the transaction information.", - "type": "string" - }, - "payments": { - "type": "array", - "items": { - "required": [ - "id", - "payment_type", - "source_account", - "destination_account", - "amount" - ], - "properties": { - "id": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string" - }, - "payment_type": { - "description": " The ID of the payment in the Stellar Network.", - "type": "string", - "enum": [ - "payment", - "path_payment" - ], - "default": "payment" - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "amount": { - "type": "object", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "source_account": { - "title": "source_account", - "description": "The account being debited in the Stellar Network.", - "type": "string" - }, - "destination_account": { - "title": "destination_account", - "description": "The account being credited in the Stellar Network.", - "type": "string" - }, - "external_transaction_id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "memo": { - "title": "memo", - "type": "string" - }, - "memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "refund_memo": { - "title": "memo", - "type": "string" - }, - "refund_memo_type": { - "title": "memo_type", - "description": "The memo type of the transaction in the Stellar network. Should be present if memo is not null.", - "type": "string", - "enum": [ - "id", - "hash", - "text" - ] - }, - "client_domain": { - "description": "The domain of the client.", - "type": "string" - }, - "client_name": { - "description": "The domain of the client.", - "type": "string" - }, - "customers": { - "description": "The Identification info of the sending and receiving customers. If they were created through [SEP-12](https://stellar.org/protocol/sep-12),\n this object should contain the SEP-12 customer `id`. Otherwise, the `account` address of the customer.", - "type": "object", - "properties": { - "sender": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - }, - "receiver": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - }, - "creator": { - "description": "A object that identify end-user. \nFor a SEP-12 customer, the `id` field should be sufficient to fully identify the customer in the business' Backend. \nFor a SEP-31 Sending Anchor, the `account` and `memo` fields should be used. \nFor a SEP-6 or SEP-24 Anchor, the `account` and `memo` fields should be used.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The `id` of the customer registered through SEP-12." - }, - "account": { - "type": "string", - "description": "Either the Stellar account or Muxed account address of the on-chain entity." - }, - "memo": { - "type": "string", - "description": "The memo value identifying a customer with a shared account, where the shared account is `account`." - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "get_transactionsExample", - "description": "Example request to the `get_transactions` method.", - "params": [ - { - "name": "sep", - "value": "31" - }, - { - "name": "order_by", - "value": "created_at" - }, - { - "name": "statuses", - "value": [ - "completed" - ] - } - ], - "result": { - "name": "platformTransactionResponses", - "value": { - "records": [ - { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "31", - "kind": "receive", - "status": "completed", - "funding_method": "SWIFT", - "amount_expected": { - "amount": "100", - "asset": "iso4217:USD" - }, - "amount_in": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "amount_out": { - "amount": "98.0000000", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "fee_details": { - "total": "2.0000", - "asset": "iso4217:USD" - }, - "quote_id": "quote-id", - "message": "Please don't forget to foo bar", - "refunds": { - "amount_refunded": { - "amount": "90.0000", - "asset": "iso4217:USD" - }, - "amount_fee": { - "amount": "8.0000", - "asset": "iso4217:USD" - }, - "payments": [ - { - "id": "1111", - "id_type": "stellar", - "amount": { - "amount": "50.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - }, - { - "id": "2222", - "id_type": "stellar", - "amount": { - "amount": "40.0000", - "asset": "iso4217:USD" - }, - "fee": { - "amount": "4.0000", - "asset": "iso4217:USD" - } - } - ] - }, - "stellar_transactions": [ - { - "id": "stellar-tx-id", - "memo": "my-memo", - "memo_type": "text", - "envelope": "here_comes_the_envelope", - "payments": [ - { - "id": "payment-id", - "amount": { - "amount": "100.0000", - "asset": "iso4217:USD" - }, - "payment_type": "payment", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - ] - } - ], - "external_transaction_id": "external-tx-id", - "customers": { - "sender": { - "id": "sender-id" - }, - "receiver": { - "id": "receiver-id" - } - }, - "creator": { - "id": "creator-id" - } - } - ] - } - } - } - ] - }, - { - "name": "notify_amounts_updated", - "summary": "Update transaction amounts", - "description": "Update amount_out and fee_details values", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_amounts_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_amounts_updatedExample", - "description": "Example request to the `notify_amounts_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Amounts updated" - }, - { - "name": "amount_out", - "value": { - "amount": 1 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_customer_info_updated", - "summary": "Customer info updated", - "description": "The customer's status for the transaction has been updated. Use this method to notify the wallet of the status change. If `customer_id` and `customer_type` are provided, the transaction status will reflect the customer's status. If not, the transaction status will default to the standard pending status for the SEP.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "customer_id", - "description": "The SEP-12 ID of the customer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "customer_type", - "description": "The SEP-12 type of the customer", - "required": false, - "schema": { - "type": "string" - } - } - ], - "result": { - "name": "notify_customer_info_updatedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_customer_info_updatedExample", - "description": "Example request to the `notify_customer_info_updated` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Customer info updated" - }, - { - "name": "customer_id", - "value": "45f8884d-d6e1-477f-a680-503179263359" - }, - { - "name": "customer_type", - "value": "sep31-receiver" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_interactive_flow_completed", - "summary": "Interactive flow completed", - "description": "Platform has collected the transaction amounts and fees from the business", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_interactive_flow_completedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_interactive_flow_completedExample", - "description": "Example request to the `notify_interactive_flow_completed` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Interactive flow completed successfully." - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_available", - "summary": "Offchain funds are available", - "description": "Funds are ready for the user / recipient to pick up.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_availableResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_availableExample", - "description": "Example request to the `notify_offchain_funds_available` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds available" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_pending", - "summary": "Offchain funds pending", - "description": "Payment has been submitted to external network, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_pendingExample", - "description": "Example request to the `notify_offchain_funds_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds pending" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_received", - "summary": "Offchain funds received", - "description": "Payment is being processed internally by anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_received_at", - "description": "The date and time of receiving funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_offchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_receivedExample", - "description": "Example request to the `notify_offchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Funds received successfully" - }, - { - "name": "funds_received_at", - "value": "2023-07-04T12:34:56Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9 - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_offchain_funds_sent", - "summary": "Offchain funds sent", - "description": "Transaction flow is fully completed for the SEP-6 and SEP-24 withdrawal flow or SEP-31 receive flow. Payment has been submitted to external network, but is not yet confirmed for SEP-24 deposit flow", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "funds_sent_at", - "description": "The date and time of sending funds.", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "external_transaction_id", - "summary": "ID of the transaction on external network", - "description": "The unique identifier of this transaction on the external network.", - "required": false, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - } - ], - "result": { - "name": "notify_offchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_offchain_funds_sentExample", - "description": "Example request to the `notify_offchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Offchain funds sent" - }, - { - "name": "funds_sent_at", - "value": "2023-07-04T12:34:38Z" - }, - { - "name": "external_transaction_id", - "value": "3320c6faad48c3cf39b6d4ac15ed50b6e5868b62551e69cde15df2d66c8ca360" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_received", - "summary": "Onchain funds received", - "description": "Notify that the payment is being processed internally by anchor for SEP-6 or SEP-24. For SEP-31, notify that the payment is being processed by the Receiving Anchor. In the request, amount parameters are optional, but have a strict rule of how to set them. Either none, only `amount_in`, or all of fields (`amount_in`, `amount_out`, `fee_details`) must be specified. ", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - } - ], - "result": { - "name": "notify_onchain_funds_receivedResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_receivedExample", - "description": "Example request to the `notify_onchain_funds_received` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds received" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - }, - { - "name": "amount_in", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_onchain_funds_sent", - "summary": "Onchain funds sent", - "description": "Transaction flow is fully completed for SEP-6 or SEP-24 deposit", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "stellar_transaction_id", - "summary": "Transaction ID on Stellar", - "description": "The unique transaction identifier for this transfer on the Stellar network.", - "required": true, - "schema": { - "title": "hash", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - ], - "result": { - "name": "notify_onchain_funds_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_onchain_funds_sentExample", - "description": "Example request to the `notify_onchain_funds_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Onchain funds sent" - }, - { - "name": "stellar_transaction_id", - "value": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_pending", - "summary": "Refund pending", - "description": "Refund has been submitted, but is not yet confirmed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_pendingResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_pendingExample", - "description": "Example request to the `notify_refund_pending` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund pending" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_refund_sent", - "summary": "Payment refunded", - "description": "Refund payment completed", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "refund", - "schema": { - "type": "object", - "required": [ - "amount", - "amount_fee", - "id" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount to be refunded", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "Amount of assets to refund", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of refund", - "type": "string" - } - } - }, - "amount_fee": { - "title": "amount_fee", - "description": "Amount of fee", - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "The amount of fee", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset of fee charged by anchor", - "type": "string" - } - } - }, - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - } - } - } - } - ], - "result": { - "name": "notify_refund_sentResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_refund_sentExample", - "description": "Example request to the `notify_refund_sent` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Refund sent" - }, - { - "name": "refund", - "value": { - "id": "ab295bf48920f2bab4aa7cfe31f488eed779d42e57a243aacdff2e6e96ec484e", - "amount": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_fee": { - "amount": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_error", - "summary": "Transaction processing error", - "description": "There was an error processing transaction", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_errorResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_errorExample", - "description": "Example request to the `notify_transaction_error` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction error" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_expired", - "summary": "Transaction has expired", - "description": "Funds were never received by the anchor and the transaction is considered abandoned by the user", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_expiredResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_expiredExample", - "description": "Example request to the `notify_transaction_expired` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction expired" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_on_hold", - "summary": "Transaction transaction is on hold", - "description": "Notify transaction is currently on hold by the anchor (e.g. compliance hold). Anchor should update message to guide user through the steps.", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_on_holdResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_on_holdExample", - "description": "Example request to the `notify_transaction_on_hold` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction on hold, please contact customer service to lift the hold." - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_transaction_recovery ", - "summary": "Transaction recovery", - "description": "Transaction status is changed from error / expired to pending_anchor(SEP-6 or SEP-24) or pending_receiver(SEP-31)", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - } - ], - "result": { - "name": "notify_transaction_recoveryResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_transaction_recoveryExample", - "description": "Example request to the `notify_transaction_recovery` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Transaction recovered" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "notify_trust_set", - "summary": "Asset trustline set", - "description": "The user has added a trustline for the asset", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "success", - "description": "Flag which indicates if trustline was configured by user.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "result": { - "name": "notify_trust_setResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "notify_trust_setExample", - "description": "Example request to the `notify_trust_set` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Trustline set" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_offchain_funds", - "summary": "Request offchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - }, - { - "name": "instructions", - "description": "A set of SEP-9 fields that describe how the user can complete the offchain deposit", - "required": false, - "schema": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The SEP-9 field name" - }, - "field": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The value of the field" - }, - "description": { - "type": "string", - "description": "A human readable description of the field" - } - } - } - } - } - } - } - ], - "result": { - "name": "request_offchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_offchain_fundsExample", - "description": "Example request to the `request_offchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request offchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "iso4217:USD" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - }, - { - "name": "instructions", - "value": { - "organization.bank_number": { - "value": "123456789", - "description": "US Bank routing number" - }, - "organization.bank_account_number": { - "value": "123456789", - "description": "US Bank account number" - } - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_onchain_funds", - "summary": "Request onchain funds", - "description": "The user has to initiate transfer to the anchor", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - }, - { - "name": "SEP-31" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "amount_in", - "description": "The amount expected in the payment", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be received by the Anchor", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "Amount sent by anchor to user", - "required": true, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "amount_out", - "description": "This is required if the transaction is associated with a firm quote and for transactions where `amount_in.asset` and `amount_out.asset` are the same.", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount", - "asset" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "The asset to be sent by anchor to user at end of transaction", - "type": "string" - } - } - } - }, - { - "name": "fee_details", - "description": "Description of fees charged by the anchor", - "required": true, - "schema": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - } - }, - { - "name": "amount_expected", - "description": "The amount expected in the payment", - "required": false, - "schema": { - "type": "object", - "required": [ - "amount" - ], - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - } - } - } - }, - { - "name": "destination_account", - "description": "Destination account", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo", - "description": "Value of memo to attach to transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "memo_type", - "description": "Type of memo that anchor should attach to the transaction", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_onchain_fundsResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_onchain_fundsExample", - "description": "Example request to the `request_onchain_funds` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Requesting onchain funds" - }, - { - "name": "amount_in", - "value": { - "amount": 1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_out", - "value": { - "amount": 0.9, - "asset": "iso4217:USD" - } - }, - { - "name": "fee_details", - "value": { - "total": 0.1, - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - } - }, - { - "name": "amount_expected", - "value": { - "amount": 1 - } - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - }, - { - "name": "request_trust", - "summary": "A trustline to the asset isn't set", - "description": "The user must add a trustline for the asset to complete", - "paramStructure": "by-name", - "tags": [ - { - "name": "SEP-6" - }, - { - "name": "SEP-24" - } - ], - "params": [ - { - "name": "transaction_id", - "summary": "ID of the transaction.", - "description": "The unique identifier of this transaction.", - "required": true, - "schema": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - } - }, - { - "name": "message", - "summary": "Human readable explanation.", - "description": "Human readable explanation of transaction status.", - "required": false, - "schema": { - "title": "message", - "description": "A human readable message.", - "type": "string" - } - }, - { - "name": "user_action_required_by", - "description": "Time and date by which user action is required", - "required": false, - "schema": { - "title": "datetime", - "description": "A date and time.", - "type": "string" - } - } - ], - "result": { - "name": "request_trustResponse", - "schema": { - "name": "response", - "type": "object", - "properties": { - "id": { - "title": "transaction_id", - "description": "A unique transaction identifier.", - "type": "string" - }, - "sep": { - "title": "sep", - "description": "Protocol of the transaction.", - "type": "integer", - "enum": [ - 6, - 24, - 31 - ] - }, - "kind": { - "title": "kind", - "description": "The kind of transaction that is desired.", - "type": "string", - "enum": [ - "undefined", - "receive", - "deposit", - "deposit-exchange", - "withdrawal", - "withdrawal-exchange" - ] - }, - "status": { - "title": "status", - "description": "Processing status of the transaction.", - "type": "string", - "enum": [ - "pending_anchor", - "pending_trust", - "pending_user", - "pending_user_transfer_start", - "pending_user_transfer_complete", - "incomplete", - "no_market", - "too_small", - "too_large", - "pending_sender", - "pending_receiver", - "pending_transaction_info_update", - "pending_customer_info_update", - "completed", - "refunded", - "expired", - "error", - "pending_external", - "pending_stellar" - ] - }, - "amount_expected": { - "type": "object", - "title": "amount_expected", - "description": "The amount expected in the payment.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_in": { - "type": "object", - "title": "amount_in", - "description": "Amount expected/received by anchor.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_out": { - "type": "object", - "title": "amount_out", - "description": "The amount expected to be sent by anchor to user at end of transaction.", - "properties": { - "amount": { - "title": "amount", - "description": "A stringified amount of an asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee_details": { - "title": "fee_details", - "description": "Description of fee charged by the anchor.", - "type": "object", - "required": [ - "total", - "asset" - ], - "properties": { - "total": { - "type": "number" - }, - "asset": { - "type": "string" - }, - "details": { - "type": "array", - "description": "Details about fee charged.", - "items": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - } - }, - "quote_id": { - "title": "quote_id", - "description": "The id returned from a SEP-38 POST /quote response", - "type": "string" - }, - "started_at": { - "title": "started_at", - "description": "Start date and time of transaction.", - "type": "string" - }, - "updated_at": { - "title": "updated_at", - "description": "The date and time of transaction reaching the current status.", - "type": "string" - }, - "completed_at": { - "title": "completed_at", - "description": "The date and time of transaction reaching completed or refunded status.", - "type": "string" - }, - "transfer_received_at": { - "title": "transfer_received_at", - "description": "The date and time of receiving transfer.", - "type": "string" - }, - "message": { - "title": "message", - "description": "Human readable explanation of transaction status", - "type": "string" - }, - "refunds": { - "title": "refunds", - "description": "An object describing any on or offchain refund associated with this transaction.", - "type": "object", - "properties": { - "amount_refunded": { - "type": "object", - "description": "The total amount refunded in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "amount_fee": { - "type": "object", - "description": "The total amount charged in fees for processing all refund payments, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "payments": { - "type": "array", - "description": "A list of objects containing information on the individual payments made back as refunds.", - "items": { - "properties": { - "id": { - "title": "id", - "description": "The Stellar transaction hash.", - "type": "string" - }, - "id_type": { - "type": "string" - }, - "amount": { - "type": "object", - "description": "The amount sent back for the payment identified by id, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "fee": { - "type": "object", - "description": "The amount charged as a fee for processing the refund, in units of amount_in_asset.", - "properties": { - "amount": { - "title": "amount", - "description": "A numerical representation of an amount of some asset.", - "type": "string" - }, - "asset": { - "title": "asset", - "description": "An asset.", - "type": "string" - } - } - }, - "requested_at": { - "title": "datetime", - "description": "The date and time of requesting refund.", - "type": "string" - }, - "refunded_at": { - "title": "datetime", - "description": "The date and time of making refund.", - "type": "string" - } - } - } - } - } - } - } - } - }, - "examples": [ - { - "name": "request_trustExample", - "description": "Example request to the `request_trust` method.", - "params": [ - { - "name": "transaction_id", - "value": "1c186184-09ee-486c-82a7-aa7a0ab1119d" - }, - { - "name": "message", - "value": "Request trust" - } - ], - "result": { - "name": "AnchorPlatformResponse", - "value": { - "id": "1c186184-09ee-486c-82a7-aa7a0ab1119d", - "sep": "24", - "kind": "deposit", - "status": "completed", - "amount_expected": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_in": { - "amount": "1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "amount_out": { - "amount": "0.9", - "asset": "iso4217:USD" - }, - "fee_details": { - "total": "0.1", - "asset": "stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" - }, - "started_at": "2023-08-04T10:04:06.280923Z", - "updated_at": "2023-08-04T10:04:15.716233Z", - "message": "Transaction complete", - "source_account": "GB4GJAV4Q7DPGU7WI3H5TMVKEYZJ4JFLFEF3O3TRJKDPXK7NAMRBXWFL", - "destination_account": "GDIN5ZULIOT5YPBIXJXFGNH4TCNTDKIA4ZF6QQE3S2P5P44BHCQQJNDC" - } - } - } - ] - } - ], - "components": {} -} \ No newline at end of file diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx deleted file mode 100644 index ee8fdac5d1..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/README.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: JSON-RPC Methods -order: 20 -sidebar_label: Methods ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -This section lists the Anchor Platform JSON-RPC API methods that should be called by Stellar clients to update status of the transaction. - -The OpenRPC Specification for JSON-RPC API is available [here](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/stellar-docs/main/static/assets/rpc-methods/open-rpc.json). - -Postman collection is available [here](https://documenter.getpostman.com/view/9257637/2s9Y5U1kra) - - - -| | | -| --- | --- | -| | [do_stellar_payment](./do_stellar_payment.mdx) | -| | [do_stellar_refund](./do_stellar_refund.mdx) | -| | [get_transaction](./get_transaction.mdx) | -| | [get_transactions](./get_transactions.mdx) | -| | [notify_amounts_updated](./notify_amounts_updated.mdx) | -| | [notify_customer_info_updated](./notify_customer_info_updated.mdx) | -| | [notify_interactive_flow_completed](./notify_interactive_flow_completed.mdx) | -| | [notify_offchain_funds_available](./notify_offchain_funds_available.mdx) | -| | [notify_offchain_funds_pending](./notify_offchain_funds_pending.mdx) | -| | [notify_offchain_funds_received](./notify_offchain_funds_received.mdx) | -| | [notify_offchain_funds_sent](./notify_offchain_funds_sent.mdx) | -| | [notify_onchain_funds_received](./notify_onchain_funds_received.mdx) | -| | [notify_onchain_funds_sent](./notify_onchain_funds_sent.mdx) | -| | [notify_refund_pending](./notify_refund_pending.mdx) | -| | [notify_refund_sent](./notify_refund_sent.mdx) | -| | [notify_transaction_error](./notify_transaction_error.mdx) | -| | [notify_transaction_expired](./notify_transaction_expired.mdx) | -| | [notify_transaction_on_hold](./notify_transaction_on_hold.mdx) | -| | [notify_transaction_recovery](./notify_transaction_recovery.mdx) | -| | [notify_trust_set](./notify_trust_set.mdx) | -| | [request_offchain_funds](./request_offchain_funds.mdx) | -| | [request_onchain_funds](./request_onchain_funds.mdx) | -| | [request_trust](./request_trust.mdx) | - - diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx deleted file mode 100644 index 3f82ad67fb..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_payment -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_payment")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx deleted file mode 100644 index 6816862774..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: do_stellar_refund -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "do_stellar_refund")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx deleted file mode 100644 index c313dc6a1b..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: get_transaction -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "get_transaction")[0]} -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx deleted file mode 100644 index ccf6db4383..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: get_transactions -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "get_transactions")[0]} -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx deleted file mode 100644 index 8daed8f441..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_amounts_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_amounts_updated")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx deleted file mode 100644 index ffc4795d88..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_customer_info_updated -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_customer_info_updated", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx deleted file mode 100644 index 55ba759ec8..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_interactive_flow_completed -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_interactive_flow_completed", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx deleted file mode 100644 index 9bca880e34..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_available -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_available", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx deleted file mode 100644 index a7573189ca..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_pending", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx deleted file mode 100644 index 9e19062eeb..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_received", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx deleted file mode 100644 index 5478e2b595..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_offchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_offchain_funds_sent", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx deleted file mode 100644 index 24ef7eacac..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_received -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_received", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx deleted file mode 100644 index 1a776c9582..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_onchain_funds_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_onchain_funds_sent", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx deleted file mode 100644 index bc24b12291..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_pending -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_pending")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx deleted file mode 100644 index fc0255d3fe..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: notify_refund_sent -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_refund_sent")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx deleted file mode 100644 index 83b48d8f83..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_error -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_error", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx deleted file mode 100644 index 6587a4cf9b..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_expired -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_expired", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx deleted file mode 100644 index bd00841ec1..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_on_hold -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_on_hold", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx deleted file mode 100644 index d134b53937..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: notify_transaction_recovery -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_transaction_recovery", - )[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx deleted file mode 100644 index 5968934e5e..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: notify_trust_set -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "notify_trust_set")[0]} -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx deleted file mode 100644 index 7066f66bbb..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_offchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_offchain_funds")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx deleted file mode 100644 index 6c14cd105a..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: request_onchain_funds -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_onchain_funds")[0] - } -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx b/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx deleted file mode 100644 index 62a368d0ae..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: request_trust -hide_title: true ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; -import rpcSpec from "../anchor-platform.openrpc.json"; - - meth.name === "request_trust")[0]} -/> diff --git a/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx b/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx deleted file mode 100644 index aa544d766e..0000000000 --- a/platforms/anchor-platform/api-reference/platform/rpc/overview.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Overview -sidebar_position: 10 ---- - -JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. - -It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. - -:::note - -All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. - -::: - -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). diff --git a/platforms/anchor-platform/api-reference/platform/transactions/README.mdx b/platforms/anchor-platform/api-reference/platform/transactions/README.mdx deleted file mode 100644 index 3ee4b6728c..0000000000 --- a/platforms/anchor-platform/api-reference/platform/transactions/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Transactions -sidebar_position: 10 ---- - -import { EndpointsTable } from "@site/src/components/EndpointsTable"; - -Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). - -Should not be confused with stellar [transactions](/docs/learn/glossary#transaction). - - - -| | | -| --- | -------------------------------------------- | -| GET | [/transactions/:id](get-transaction.api.mdx) | -| GET | [/transactions/](./get-transactions.api.mdx) | - - diff --git a/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx b/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx deleted file mode 100644 index 3b8158bd32..0000000000 --- a/platforms/anchor-platform/api-reference/platform/transactions/get-transaction.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transaction -title: "Retrieve a Transaction" -description: "Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision." -sidebar_label: "Retrieve a Transaction" -hide_title: true -hide_table_of_contents: true -api: eJztXN1P67gS/1csv+yuFFLgoPPQN/Yuu6q0HwjOfeKgHjeeNF4SO8d2KBXq/341ttOmbQotQqLnyi+Qxh8zHs+HZ36tn6llU0OHd/SLZtKwzAolDb1P6NOJgdq13F5dn3ymift/fhEePp1hJ1WDZjhkxOmQTsF2ZqEJ5WAyLWr3aUivtXoUHAyxBRAhc6UrN5ZIyMAYpuckV9q1ThojJBhDrCIcLOhKSHAtxjILROXug11RI4KDtCIXwMlkTr4J/i0hHDLBgYicMDknoWPVGEsmQCx7AIkEMiWtkA2QWitkRMjp5uwJYZLjBERJ14YzG6FkShNaM80qZBKl9UwFrrVmtqAJlawCOqSC04Rq+N4IDZwOrW4goSYroGJ0+EztvMZexmohp3SxuMfOplbSgMH289NT/LcuzY6kSa4ayZEVXApIi71ZXZcicwIe/GtwyHOHpJLwT+7YDcTV5F/I7Bqbd55vAzVN6IOQ7oNltjH+QVvgY2ZRD2qNmmCF51fwnlX5ibbeJxRkUyGxz/R+Eei80ItDrYywTrnc0wk8ZQWTU6AJnQlbcM1mrFz7sOqCFMISemhsqKsyRkxKr3KNIY+sbMBpqDOIrnqYDoNCZqqqS7Dg9sM/+v3PG8ndIzzVTsQJBa2VRh0CyYWcjo2FsmTdN/BkQUu3ovZV1hirKtBjNKJxU3PmiLXNjQE9dtzloMduo3a2dnhtOzCZFWs8Wd2YzRlQt9W4YvoBsMkqNTYVK8vwXDKN0k6oFbZEGd86Gd5eXX9GTfCCf20DvhRAKrCF4s7kkCz+4d4puM0nSpN2n4nK86xgQhKUs0mREKtUI+0YnmrIcBeGL+u7704TyoyBHsUO7X3K7Uf0GPNKBpd+9IotIY+MIdXYY+EoBxhzsEyU5jWWrLLOPHZw5JsPYQgVcZMy05rNaUKFhepVjpzbb6W6zZGPCn0M7Rbemmm8JMLfAX7r9F1stfmVLRL6vVEWxruc9cq/9xiqj910SNH1nFhRAY7xnuiwMUsPedCopf/SkIF4PJRPdIHec4/bbRtP5vtPUOFxZdq/h97N96pIn6WMl2HhSAwvsJUDHAtHNZtXIO1B1rjXgUTw8a5I1EbzVTxexuH7PkP9aF95LKwgTTCHmnNrAwcMWqw5tptgdM5xuR0brx3P3ujH3fk309B6NdSLRyhV7c5LrVrudf7tO9yMfutNZHyGcevXQSTYmdIPqfc7ldr33FSpN0y+0x52UMBuB5Aht4VqSo7ZV63BgLSYm7mZhCFSWSKbskw79mfhCcVeMIPplODO+jo7sp+29PGPDVt8z5ghGqbCWNDAX5LWUhH2ElaXRjsycYknExLzTVaWPUJcpsjpW/3gljaHSfxGJ9SoRmcwZlkW/AMHY4V0RDtvd51kDtf0QH9TtH93RLvG4n7iDWr42uQrvQo9nUBsMW4/3uPsOWtK63J4/3KxJaa9mAqdyQRwgzlMhN1Wqe66+0T/BkqZBv4aqWOKX+uePHDbrSMt9tiAfcW3WAXyboTYdQrud7jH7CyJ4MR5y07y/RdU6gvyuAy14/0iySjHmhgW7XhCbCGMJ2+WjLl0HEsiftq1mki6Qe6HFFdWCnRFXFVM9CVeyx47c7q2WNPrnreX7qoctmDoxIQVGOe2JWDIRNnC10NBctCuPBlyIZ1+lVsnYN/tdRaCVEf8J0OYBuK7mcCRL7HOCUh+gowaR9eXg8mtLw+RS1c/MgmZNNbJPbTfOPY6PdKv8qv8XWnCXJezc9LKKnFLwxouyQWUvKNxpslzkaHIsQyUN2U5X/GFo9o5Wj1pS8k/kV9Z9gCSb5Dd4jwQDy7km1viN9SjwIzZ0P+N+T6TUCE8v3j7hHtlMH3q42QWjGYpic6JxhZaNdMiCNzHgn1DzZWwBeg142sjj9Lkr+YJ+PIF41xj/T6wouSJL83hRtn5Ww6zvvzabrU7M61WiDVAwogpmF4xkZBZATrABmstaEHL/UhpT/wZce+9vEVFu4l2E+1mX7tZtCmaioYTDScazv6Gs3rbyX8CaPZmpHYTA9uV478/ont+cSCk28Fv3w+pPb/4QKj2qLHY84tDwFhhgm8UhrByxuaGQFXb+S5BRwA2ArARgI0AbARgIwAbAdgIwEYANgKwEYCNAGwEYI8sfkUA9gMB2HcFXJNtOUUANgKwsR4e6+E/Yj08ArDRbqLdRAA2Gk40nI8FYB1S9mYE9v2RVfz19R7Iagif7wimfjr7QDA1nKFXL5bHgy5A2skpe38e2/vr2T549NPZu8KjG6KL8GiERyM8GuHRCI9GeDTCoxEejfBohEcjPBrh0QiPHln8ivDo0cCjIsKjHw2PjsI1e/5mORcDWiGYUFRdQaHO3Nv5UzJy/eZkhjW6ECSX9ck7X6C8/7mwtjbDwSAclFKlp4NaK6syVQ4M1Cdn578kX6Xbfs9oqwAhXnnxr9eXXZk0Jf9gPXMmDGxVaNerl+2wiOTGwnosrEckN9pNtJuI5EbDiYbzoxjOLiQXQb17n9Jd9F2r/Cvj5MYXCQ+5T/nl+q5HO/tLvP1JaDfN9aM7CcCVe9Eu4mJ7Ed27odGKD78f+oPWE9JfaXxV9O6ZPsCcDtvLyBPqNOnFS8nx9mx/a7C/kTyUUOiQDrrZ4OBZ8IVD7PVje3N3o0s6pG3+UZfMYoHrxHdJ4YkhFOR/kptmqqJIChMgXDJO4oX/KT1NT+lqdddhHnLr5um1kpYW8bQchozJla8EEAShlARpUzKyHY9TKBMKKYzUWjzi1egh33SeKvREFZi4MgwEbD/XqnK2NXIkwKbEIdiBPEg2KcNF7d2r2HOwWeFm9lCaN8/ljewd8ZLGXaMurCGX1yPvFUuRgTSwQhjpZc2yAsi5k9dK+sPBYDabpcy1uvwvDDWDP0f/ufr79urkPD1NC1uVTrlqZWzFZGfiG7BawCMQRl64kf55ZQ//t5fTB1PEWgJqtJAOYNQOcPZ2cUc3vtExxDJ2QlG5sPX5ecIM/FeXiwW+/t6AntPh3T0aoxaoKM54uDD4zOkwZ6WBF0T9801wBr+QXQy25WM5X9k8xW/WOG8gOPrwhBbAXCa+dBOXWQa17QzZcnJr3uGPqy90sfgfaB/iSg== -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Provides the information necessary for the business to determine the state of the transaction identified by `id`, decide if any action must be taken to continue processing the transaction, and act on the decision. - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx b/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx deleted file mode 100644 index aaefea43a9..0000000000 --- a/platforms/anchor-platform/api-reference/platform/transactions/get-transactions.api.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: get-transactions -title: "Retrieve a List of Transactions" -description: "Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`." -sidebar_label: "Retrieve a List of Transactions" -hide_title: true -hide_table_of_contents: true -api: eJztXVtv47YS/isEX7oLKEo2G/TBb+lpehAg3Qab7dNu4NDS2GIjkSpJ5dLA//1ghpQt2bJjp4smPeDLxqZIznCu5Hxe8Yk7MbN89JV/MUJZkTmpleXXCX84sFDTk6uzy4MfeUJ/j0/Ch48fsJOuwQgccp7zEZ+B682S8BxsZmSNX/mIn5alvrfMafZnA+aRldI6pqfMdQaxqTYsBysN5Ozq7DJlXwppmagls01da+Msq8VMKiKbMKFyJt0PltXaWjkpgb3DJgOZripQOeTvkWAlboFVTelkXQIz8GcD1nVY6bKAJIGVwjqkBExaZkBkBeTsvgDFXAFMNdUEDDIPJVSgHPZxjVGQs8kjdQGV11oqh+NtJcoSDHOFUKw2+k7mkLMbnH5s5V9wk/KE18KIChwYlPoTlygy4o4nXIkK+IhbqHnCkX2UDx8500DCbVZAJfjoibvHmro5I9WMJxxUU6EKUX2kOlTbfFUvF1rfNnVfDRMotZpJNUMZOVQBKoPPk2HGtMnBjCfY8jw3mQHhIB8LxxNOVKdgxgYykHdtc2PBjD0z43a9OP81Mj8VTen4qDvR2qKuasjkVIJlUwlljqJ3/SXey7JkE2DEO+ktZZ+0g8T3tZBplQvzyKw2pMXOaCZzJhUTNgOVo5TuRNlA+k2dp5AGM5EVWCeq2tv0MdOGVdpAnwlpmcxBOZmJEgnD44IvJOvNSebPSH4nsQubBZfsSxHbt4iPCPQks/ACL1lpmWrKMmGiLFcl7Ap65sWzWBn6VsIMzITJS7AW/chqZNdTY+8+/X5xccUuTq++vE+/qV+0YfAgqrpEFoLBkIBZJR6Z0o7kFVjOSd5WV31RI0GLEUDNmFROs5sh07thE8AeyHXKzpGvZGhRWh0sF2ZXdeZDUIgHU2lwuVON4c8rdIuklmazWefWCddYsENqF8YI7CodVHbIHPp6vmzDpp+zXQ9KcJXJjilJlWnUhgOe8PZjTqFp2mDQxb4PNQWphIMxGk209r4ytg7KUnRb4MGBUaLsNFEAWGjIOmHcxqcdZtoOQmVFj6gzjV2dASWqx5Uwt0ChSOsxRerwuRRm1p3TYj7pzhnspk9mIbCxVFM9bupc9DjLGut0Bab3+DrhTroSFXVFirg6uzwtSz5fc8xfZIkpYj1pLs2fTIB8KtgJGTJ6SZt6EjalacgXLMulFZMScvYuRAU2gULcSW3eb7TBRe4aMkKpHMxILoswc3y0HmPkX4BsCmalmqENgjBZQVk3Zb82lty61lY6eQeb3YFY8Rl5R2bWebnETB+yutOssUBCzbRyUjW6sYG5lFHPTDfK+VBhmXDsKOXzazR/W2uFnjl64sdHR/inT6ezQWJT3ag8JQ9SDpTD3qKuS5nR5ubwD4tDnjor0gp+m9LuIKxNT/6AjMza4F7MSU8atz8mtzuEhcUEy03FVy7Ra/1e41Yq+kKW5D+YkHKvV6nKfD3ezP1EW/cmuCMhOlt65UB2QEqkTwfwkBVCkYNi9MyNuKcAsvyy7IIUwhJeFhHJGGgj/IohcTByvMGIORTMfkRL8IJ/TgG4+67AFTqnTQaSxX9y9MugfNxLtXpmejrNCiEVQzlT1uSiQv8cw0MNGWrhGXv33XnChbUwYNjh+ZBx+xHrT+ZLGZz60Uu2pHpjDOnGvRWOpgDjHJyQ5bNRymlH7rGBI/94H4bQEFcp7xU3KR+1Ul3nyKerIYY2C6/nGttE+AvAz52+87VnfmXzhP/ZaAfjTcF6Gd8HHHWqTYVPOIaeA9yq4hgfifYbs4iQe40aPCzuzueGM+XOE1RgrZgN69CH+UETGfKU8SItvBHHC2xNAd4KR7V4pMrKPt6404ZE5uNNmajN5st8vMjD10OO+tqx8q2wEipqezpk6wN7DJr3Atvn4HQUuEhj49727O/sf3tVKlB3UOqa9kutWe60/x3a3Jz/TFXPAvoVJV9TufLrYArcvTa3qY87ld5131TpF0y+0R82UMBue5BhV4VuypxOcwYsYFF06mfC4pF2vtzS8T8HDyj2QtgClZaT93U0spu1DPFPVaNVvu8F1m9n0jqqBG6R1sIQdhJWl0Y7MqFDpZAKD99UY1kTol+K1Cp9aRxcs+YwiVd0wq1uTAZjkWUhPuRgXSiqd1o37WT2t/RAf1W0nzqi7bG4m3iDGT43+dKuQk8SiCvG7ddePbRtnK+JaSemQudQR8xhIt26SXXXPST6F1DKDOTPkXpL+asfyQO3nfIIDXpOAbuKb75M5P0S3fAOYTjgvuVgiYAERcvO4ftXqPQX5HGRase7ZZLzaadSSOAPkbcLxug4jiURP20fPlsh968UV1ZKDEW5roQcOngtemw807XFmsHwvL50qnIQuiKVdBLz3LoELJtoV1C7r0UHoMFXodNvam0HHErWz7IQpHqe/2CZMMB8Nxs4IoBq+oiQ5gEyaomuh4HZVUDATql+ZBM2aRzJPTz/TOx1eqTflId0BHX5cMxaWREAxm5kfhOgpaXF2WY6lRmKHMtA06YsH5d84ah2jtZOJo2VCqz9gf0ksltQ+QrZNc4D8RBCbmiJN2hHgRm7Yv8r8/3IQoXw+OTlE+50ghkyH5JZcJqFJDo7GlcY3cyKIHCfC3ZNNWfSFWScS+drM4827NfmASGH0CDy3ARAD/trdeBLc6go9/iSzawvv7aqpj3TcoUEmwlmC2GWTCQIUBq/yes/QQ9a6CPlA/nnPPfRK+A60W+i30S/2dFv5u0RTUfHiY4THWd3x1m2ds4/HjTb8PBCWhdQtdfDgldRtk1VhO+PGR+f7AkadxDi74cFH5/E38cMo73HJ/vAvdIuf0kmynvxaBlUtXvcJOgI8UaIN0K8EeKNEG+EeCPEGyHeCPFGiDdCvBHijRDvG8tfEeJ9RYj3u0K6ybqcIsQbId5YcY8V939jxT1CvNFvot9EiDc6TnSc14V4ESnbjvESlvZ6IO/3B2/DO0ieA29Dhv6OeO3HD6+I1/7DLw/4+OG7IrAroosIbERgIwIbEdiIwEYENiKwEYGNCGxEYCMCGxHYiMC+sfwVEdg3g8DKiMC+NgJ77it+4f16lANaIdhQt12ireTu7fz0BkX/dlYsA4YkuSiBfvU10Ot3hXO1HR0eho1Sqs3ssDba6UyXhxbqgw/H75NvitTvGW0NIOQrL/5+CZsqsSn7DUum99LCWhG4XyBth0WwONbuY+0+gsXRb6LfRLA4Ok50nH+L42wCixHU2w4WY49rf+g7GXr99E8iZ599GXGf905vrwB7PHS4CDx8TO0ehP3ozhHhjBraRZysL6L7Dm308/3fo/1K6wkHZGV93fTrE7+FRz5q71pJONna1jtX8C3j/uXI/sKVUGThI364gm1bMHftXSKNKfmIt4eTuhQOq18Hvksarlbw/yU4zXRF7zLH0xGuFifxcv+YHqVHfLmwyzAPu6J5Bl2opcU8LQKY8eTlywQMESqtQLmUnbtOOCq0DVUWwWoj74SD9jBKYSz0DDc/iCyDAPxPja7I8c6JBLhwgUwgDwpfdG97AZriObisoJk9zuZ91+Gn1QtqcNSMSWfZ6eW5D5mlzEBZWMKP/LTGC2PYMclrKf3R4eH9/X0q6CkdDsNQe3hx/p+zT1dnB8fpUVq4yr/6v9bWVUJ1Jv4Mzki4AybYRbg+Z9udO09Ln4jX72y/fid4NRYu0EOkIjTTELrtXewr77nYdcLRTLH96WkiLPxuyvkcm/39BOh47c0KfDQVpYUt2nn3OcSQ92yP+3g2sO3Div9BT4gpnH5FtDs//2/352yVVOf6or8trnhfzqvdl/O8jl+u4H/63pXtnr28AOil9rrn3Stb2eneBfNCfv7+/SvPc7i4ImbJ4zV+MRKZ5KOviH8WIKhCuticnWYZ1K4zam1r2duT/ffsC5/P/weQ8/fV -sidebar_class_name: "get api-method" -info_path: platforms/anchor-platform/api-reference/platform/transactions/platform-server -custom_edit_url: null -hide_send_button: true ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows to query list of transactions for desired SEP. This api supports pagination, and it's possible (and recommended) to make multiple requests to query transactions. The last page is reached when the number of elements returned by the endpoint is smaller than provided `page_size`. - - - - - - - - - - - - - - - - - diff --git a/platforms/anchor-platform/api-reference/platform/transactions/versions.json b/platforms/anchor-platform/api-reference/platform/transactions/versions.json deleted file mode 100644 index 15ec16df99..0000000000 --- a/platforms/anchor-platform/api-reference/platform/transactions/versions.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "version": "3.0.0", - "label": "v3.0.0", - "baseUrl": "/platforms/anchor-platform/next/api-reference/platform/transactions" - }, - { - "version": "2.8.4", - "label": "v2.8.4", - "baseUrl": "/platforms/anchor-platform/api-reference/platform/transactions" - } -] diff --git a/platforms/anchor-platform/assets/SEP24-state-diagram.png b/platforms/anchor-platform/assets/SEP24-state-diagram.png deleted file mode 100644 index 65d2bb5363..0000000000 Binary files a/platforms/anchor-platform/assets/SEP24-state-diagram.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/anchor-platform-architecture-1.png b/platforms/anchor-platform/assets/anchor-platform-architecture-1.png deleted file mode 100644 index 0917091187..0000000000 Binary files a/platforms/anchor-platform/assets/anchor-platform-architecture-1.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/anchor-platform-architecture-2.png b/platforms/anchor-platform/assets/anchor-platform-architecture-2.png deleted file mode 100644 index 6e2c1e64b5..0000000000 Binary files a/platforms/anchor-platform/assets/anchor-platform-architecture-2.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet-widget.png b/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet-widget.png deleted file mode 100644 index b2461d306e..0000000000 Binary files a/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet-widget.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet.png b/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet.png deleted file mode 100644 index 169f450fa3..0000000000 Binary files a/platforms/anchor-platform/assets/anchor-platform-sep24-demo-wallet.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/anchor-platform-sep31-demo-wallet-widget.png b/platforms/anchor-platform/assets/anchor-platform-sep31-demo-wallet-widget.png deleted file mode 100644 index be483f58c9..0000000000 Binary files a/platforms/anchor-platform/assets/anchor-platform-sep31-demo-wallet-widget.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sep24-withdrawal-flow-diagram.png b/platforms/anchor-platform/assets/sep24-withdrawal-flow-diagram.png deleted file mode 100644 index f69ee06dad..0000000000 Binary files a/platforms/anchor-platform/assets/sep24-withdrawal-flow-diagram.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sep31-transition-diagram.png b/platforms/anchor-platform/assets/sep31-transition-diagram.png deleted file mode 100644 index a04c0a28ea..0000000000 Binary files a/platforms/anchor-platform/assets/sep31-transition-diagram.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sep6-withdrawal-flow-diagram.png b/platforms/anchor-platform/assets/sep6-withdrawal-flow-diagram.png deleted file mode 100644 index 187b871aac..0000000000 Binary files a/platforms/anchor-platform/assets/sep6-withdrawal-flow-diagram.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_job.png b/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_job.png deleted file mode 100644 index 30b8059f85..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_job.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_webhook.png b/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_webhook.png deleted file mode 100644 index 630d9173d0..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep24_deposit_webhook.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_job.png b/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_job.png deleted file mode 100644 index a768c5218f..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_job.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_webhook.png b/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_webhook.png deleted file mode 100644 index 4005a81d27..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep24_withdrawal_webhook.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_job.png b/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_job.png deleted file mode 100644 index 3150663fe1..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_job.png and /dev/null differ diff --git a/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_webhook.png b/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_webhook.png deleted file mode 100644 index 7a66bbdcc9..0000000000 Binary files a/platforms/anchor-platform/assets/sequence_diagram_sep31_receive_webhook.png and /dev/null differ diff --git a/platforms/anchor-platform/whats-new.mdx b/platforms/anchor-platform/whats-new.mdx deleted file mode 100644 index b838140f7d..0000000000 --- a/platforms/anchor-platform/whats-new.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: What is new in version 4.0 -sidebar_position: 30 ---- - -Anchor Platform version 4.0 introduces enhanced capabilities with the following features: - -- Support for deposit and withdraw to and from contract accounts for SEP-6 and SEP-24 transactions. -- Integration with the Stellar RPC server. Find out more [here](https://developers.stellar.org/docs/data/apis/rpc). diff --git a/platforms/stellar-disbursement-platform/README.mdx b/platforms/stellar-disbursement-platform/README.mdx deleted file mode 100644 index 5877663284..0000000000 --- a/platforms/stellar-disbursement-platform/README.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Stellar Disbursement Platform Introduction -sidebar_label: Introduction -pagination_label: Stellar Disbursement Platform Introduction -sidebar_position: 10 -pagination_next: admin-guide/overview ---- - -# Stellar Disbursement Platform - -The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. - -This is an open-source project that is built on top of the Stellar network, and the code can be found on the following repositories: - -- [stellar/stellar-disbursement-platform-backend](https://github.com/stellar/stellar-disbursement-platform-backend): This repository contains the backend and infrastructure code for the Stellar Disbursement Platform. -- [stellar/stellar-disbursement-platform-frontend](https://github.com/stellar/stellar-disbursement-platform-frontend): This repository contains the web frontend code for the Stellar Disbursement Platform. -- [stellar/helm-charts](https://github.com/stellar/helm-charts/tree/main/charts/stellar-disbursement-platform): This repository contains the Helm chart for deploying the Stellar Disbursement Platform using kubernetes. - -In this section, you'll find an [Admin Guide](./stellar-disbursement-platform/admin-guide/) that will teach you how to run the Stellar Disbursement Platform as well as an [API Reference](./api-reference/admin.tag.mdx). diff --git a/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx b/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx deleted file mode 100644 index 7436ecf55f..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Anchor Platform Integration Points -sidebar_position: 60 ---- - -As mentioned in the [Design and Architecture](./design-and-architecture) guide, the Stellar Disbursement Platform consists of a few services deployed together, where the Anchor Platform is one of them. - -For that reason, there are some connection points between the two instances that need to be properly configured in order for the Stellar Disbursement Platform to work correctly. We will be covering these integration points in this guide. - -Please note that for the default deployment of the Stellar Disbursement Platform, that relies on default Helm values and default Wallets and Assets, no extra configuration is needed. This guide is for those who want to customize the deployment by changing the Wallets and Assets available in their SDP instance. - -## Role of the Anchor Platform in SDP - -The Wallet Registration flow kicks off within the recipient's wallet app. This app interacts with the [Anchor Platform] to initiate the [SEP-24] deposit process through the SDP (Stellar Disbursement Platform). The SDP collects the necessary recipient information to ultimately execute the payment to them. - -The Anchor Platform (AP) is used to handle the implementation of interoperability protocols such as [SEP-1], [SEP-10], and [SEP-24], making their endpoints available to wallet apps. The [Anchor Platform] is pre-configured in both [the repo]'s Helm chart, and in the Docker Compose file available in the `dev` directory. - -## Steps for Configuring SDP-AnchorPlatform Integration - -To ensure a seamless integration between the SDP and the [Anchor Platform], make sure to follow these steps: - -1. 🚨 **Critical Step**: Configure the Anchor Platform with `PLATFORM_SERVER_AUTH_TYPE: JWT`. This setting is crucial for securing your Anchor Platform's backoffice API via JWT token authentication. -1. **Shared Secrets for API Authentication**: The `SECRET_PLATFORM_API_AUTH_SECRET` in the Anchor Platform should match `ANCHOR_PLATFORM_OUTGOING_JWT_SECRET` in the SDP. -1. **Shared Secrets for SEP-24**: The secrets `SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET` and `SECRET_SEP24_MORE_INFO_URL_JWT_SECRET` in the Anchor Platform need to align with `SEP24_JWT_SECRET` in the SDP. -1. **SEP-10 Configuration**: The `SECRET_SEP10_SIGNING_SEED` in the Anchor Platform should be consistent with both the `SEP10_SIGNING_PRIVATE_KEY` and `SEP10_SIGNING_PUBLIC_KEY` in the SDP. - -By following these steps, you'll ensure a secure and efficient integration between your SDP and Anchor Platform systems. - -## Manual Synchronization of Custom Assets and Wallets - -Currently, some configurations within the Anchor Platform are static and loaded via environment variables. On the other hand, the SDP reads these same configurations from its database and allows an owner user to modify them. This dynamic pertains particularly to the lists of supported assets and wallets. - -While we are actively exploring ways to automate this synchronization process, manual adjustments to the Anchor Platform configuration are necessary whenever an asset or wallet is added or removed on the SDP. - -1. **(Required) Update Supported Assets**: Whenever you change the list of supported assets in the SDP, it's essential to update the Anchor Platform's `ASSETS_VALUE` configuration to reflect these changes. Refer to [the repo]'s Helm values or Docker Compose file(s) for examples. -1. **(Optional, but Recommended) Wallets and SEP-10 Domains**: If you employ the `SEP10_CLIENT_ATTRIBUTION_REQUIRED: true` setting in the Anchor Platform - a recommended best practice - you must also update the `SEP10_CLIENT_ATTRIBUTION_ALLOW_LIST` to include trusted wallet domains. This ensures that the Anchor Platform will process SEP-10 requests only from trusted wallets. - -By adhering to these guidelines, you can ensure a consistent and secure configuration between your SDP and Anchor Platform instances. - -[sep-1]: https://stellar.org/protocol/sep-1 -[sep-10]: https://stellar.org/protocol/sep-10 -[sep-24]: https://stellar.org/protocol/sep-24 -[anchor platform]: https://github.com/stellar/java-stellar-anchor-sdk -[the repo]: https://github.com/stellar/stellar-disbursement-platform-backend diff --git a/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx b/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx deleted file mode 100644 index 55d764c1fa..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx +++ /dev/null @@ -1,206 +0,0 @@ ---- -title: Configuring the SDP -description: Understand the configuration options available for the Stellar Disbursement Platform (SDP) -keywords: [SDP, configuration] -sidebar_position: 45 ---- - -Stellar Disbursement Platform services can be configured using a set of configuration options that are passed to the command line or set as environment variables. Depending on how you're using and deploying the SDP, these configurations can be set in a ConfigMap in Kubernetes, as environment variables in a Docker container, passed in as command line arguments, etc. - -In this section we will discuss the different configuration options available for the SDP. - -**Notes:** - -- Configurations that are tagged with 🔑 are sensitive and should be stored securely. -- These configurations are valid for version 2.x of the SDP. -- All configurations can be passed in as either environment variables or CLI flags. For instance, the env var `BASE_URL` could be passed in through the `--base-url` flag. CLI flags take priority over env vars, even though env vars are more convenient. - -## SDP Core Service - -For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): - - - -```bash -./stellar-disbursement-platform serve --help -``` - - - -### Operational Configuration - -Operational Configuration allows controlling metrics, logging, and other operational aspects of the SDP Core Service. - -- `PORT` - The port on which the SDP Core Service will listen for incoming HTTP requests. Default: 8000. -- `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". -- `METRICS_PORT` - The port on which the SDP Core Service will expose its metrics. Default: 8002. -- `METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". -- `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". -- `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. -- `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". -- `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". -- `BASE_URL` - The SDP backend server's base URL. Default: "http://localhost:8000". Tenant-specific URLs will be configured during the [tenant provisioning process](./tenant-provisioning.mdx#creating-tenants). -- `SDP_UI_BASE_URL` - The SDP UI/dashboard Base URL used to send the invitation link when a new user is created. Tenant-specific URLs will be configured during the [tenant provisioning process](./tenant-provisioning.mdx#creating-tenants). - -### Messaging Configuration - -Messaging Configuration allows configuring the messaging service used to send messages to recipients and sdp dashboard users. The default configuration is set to "DRY_RUN" which means no messages will be sent and the messages will be logged to the console. This is recommended for testing purposes only. - -- `EMAIL_SENDER_TYPE`: The messenger type used to send invitations to new dashboard users. Options: "DRY_RUN", "TWILIO_EMAIL", "AWS_EMAIL". Default: "DRY_RUN". -- `SMS_SENDER_TYPE`: The messenger type used to send SMS messages to recipients. Options: "DRY_RUN", "TWILIO_SMS", "AWS_SMS". Default: "DRY_RUN". - -#### AWS Configuration - -The following configurations are required when using AWS SES or SNS to send emails or SMS messages. - -- `AWS_ACCESS_KEY_ID` - 🔑 The AWS access key ID. -- `AWS_REGION` - The AWS region where the SES service is available. -- `AWS_SECRET_ACCESS_KEY` - 🔑 The AWS secret access key. -- `AWS_SES_SENDER_ID` - The email that AWS SES will use as the sender when sending emails. Required when `EMAIL_SENDER_TYPE` is set to "AWS_EMAIL". -- `AWS_SNS_SENDER_ID` - The sender ID to use when sending SMS messages using AWS SNS. Required when `SMS_SENDER_TYPE` is set to "AWS_SMS". - -#### Twilio Configuration - -The following configurations are required when `SMS_SENDER_TYPE=TWILIO_SMS`. - -- `TWILIO_ACCOUNT_SID` - 🔑 The Twilio account SID. -- `TWILIO_AUTH_TOKEN` - 🔑 The Twilio auth token. -- `TWILIO_SERVICE_SID` - The Twilio service SID. - -The following configurations are required when `EMAIL_SENDER_TYPE=TWILIO_EMAIL`. - -- `TWILIO_SENDGRID_API_KEY` - 🔑 The API key for the Twilio SendGrid (email) service. -- `TWILIO_SENDGRID_SENDER_ADDRESS` - The email address used to send emails via Twilio SendGrid. - -#### General Messaging Configuration - -- `MAX_INVITATION_RESEND_ATTEMPTS` - The maximum number of attempts to (auto) resend the invitation to the Receiver Wallets. Default: 3. - -### Stellar Configuration - -Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. - -- `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". -- `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". -- `SEP10_SIGNING_PUBLIC_KEY` - The public key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. -- `SEP10_SIGNING_PRIVATE_KEY` - 🔑 The private key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. -- `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. - -The remaining configurations related to distribution accounts are detailed in the `Stellar accounts configuration` section of [1.x to 2.x Migration Guide](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -### Security Configuration - -Security Configuration allows configuring the security aspects of the SDP Core Service. - -- `CORS_ALLOWED_ORIGINS` - Specifies the domains allowed to make cross-origin requests. "_" means all domains are allowed. Domains can contain wildcards, e.g., "https://_.example.com". -- `SEP24_JWT_SECRET` - 🔑 The secret used to sign the JWT token for SEP-24 transactions. This secret is used during the receiver wallet registration flow. - -#### Dashboard Authentication Configuration - -The following configurations are related to dashboard user authentication and authorization. - -- `RESET_TOKEN_EXPIRATION_HOURS` - The expiration time in hours of the Reset Password Token. Default: 24 (hours). -- `EC256_PUBLIC_KEY` - The EC256 Public Key used to validate the token signature. This EC key needs to be at least as strong as prime256v1 (P-256). -- `EC256_PRIVATE_KEY` - 🔑 The EC256 Private Key used to sign the authentication token. This EC key needs to be at least as strong as prime256v1 (P-256). -- `DISABLE_MFA` - Disables Multi-Factor Authentication (MFA) for the SDP dashboard users. -- `DISABLE_RECAPTCHA` - Disables Google reCAPTCHA v2 for the SDP dashboard users. This flag doesn't affect the reCAPTCHA used during the SEP-24 flow. - -#### Recaptcha Configuration - -The following configurations are required when using Google reCAPTCHA v2 to protect the SDP Core Service from bots. ReCaptcha is used both for dashboard users and receivers of funds during the SEP-24 flow. - -- `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. -- `RECAPTCHA_SITE_SECRET_KEY` - 🔑 The reCAPTCHA site secret key used to validate reCAPTCHA responses. - -### Anchor Platform Configuration - -Anchor Platform Configuration allows configuring the anchor platform used by the SDP Core Service. - -- `ANCHOR_PLATFORM_BASE_PLATFORM_URL` - The base URL of the anchor platform. -- `ANCHOR_PLATFORM_BASE_SEP_URL` - The base URL of the anchor platform's SEP-24 implementation. -- `ANCHOR_PLATFORM_OUTGOING_JWT_SECRET` - 🔑 The JWT secret used to create a JWT token used to send requests to the anchor platform. - -### Event Broker and Scheduled Jobs Configuration - -For asynchronous processing, the SDP Core Service gives user the choice to use either the Event Broker or Scheduled Jobs. - -The configurations for this section are detailed in the `Event Broker and Scheduler Configurations` of the [1.x to 2.x Migration Guide](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -### Multi-tenancy Configuration - -The configurations for this section are detailed in `General Environment Variables` of the [1.x to 2.x Migration Guide](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -## Transaction Submission Service (TSS) - -For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): - - - -```bash -./stellar-disbursement-platform tss --help -``` - - - -### General Configuration - -- `QUEUE_POLLING_INTERVAL` - Polling interval (seconds) to query the database for pending transactions to process. Default: 6. - -### Operational Configuration - -Operational Configuration allows controlling metrics, logging, and other operational aspects of the Transaction Submission Servic (TSS) - -- `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". -- `TSS_METRICS_PORT` - The port on which the TSS will expose its metrics. Default: 9002. -- `TSS_METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". -- `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". -- `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. -- `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". -- `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". - -### Stellar Configuration - -Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. - -- `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". -- `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". -- `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. - -#### Channel Accounts Configuration - -The following configurations are required for using channel accounts to submit transactions to the Stellar network. - -- `NUM_CHANNEL_ACCOUNTS` - Number of channel accounts to utilize for transaction submission. Default: 2. -- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the 'DISTRIBUTION_SEED' option. - -#### Distribution Accounts Configuration - -The following configurations are related to the distribution accounts used to send funds to recipients. This configuration should match the configuration in the SDP Core Service. For more details, refer to the `Stellar accounts configuration` section of [1.x to 2.x Migration Guide](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar-compliant ed25519 private key used to encrypt/decrypt the in-memory distribution accounts' private keys. -- `DISTRIBUTION_PUBLIC_KEY` - The public key of the HOST's Stellar distribution account, used to create channel accounts. -- `DISTRIBUTION_SEED` - 🔑 The private key of the HOST's Stellar distribution account, used to create channel accounts. - -### Event Broker Configuration - -If an Event Broker is used for asynchronous processing, the TSS will need to be configured to use it. For more details, refer to the `Event Broker and Scheduler Configurations` of the [1.x to 2.x Migration Guide](./single-tenant-to-multi-tenant-migration.mdx#environment-variables). - -- `EVENT_BROKER_TYPE` - The type of event broker to use. Options: "KAFKA", "NONE". Default: "KAFKA". -- `BROKER_URLS` - List of Message Broker URLs comma-separated. -- `CONSUMER_GROUP_ID` - Message Broker Consumer Group ID. -- `KAFKA_SASL_USERNAME` - 🔑 Kafka SASL Username. -- `KAFKA_SASL_PASSWORD` - 🔑 Kafka SASL Password. -- `KAFKA_SECURITY_PROTOCOL` - Kafka Security Protocol. Options: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL. -- `KAFKA_SSL_ACCESS_CERTIFICATE` - 🔑 Kafka SSL Access Certificate in PEM format that matches with the Kafka Access Key. -- `KAFKA_SSL_ACCESS_KEY` - 🔑 The Kafka Access Key (keystore) in PEM format. - -## Dashboard - -The SDP Dashboard is a web application that allows users to manage their accounts, view transaction history, and more. Environment variables can be set either on a global `window._env_` object or as `process.env` variables. All environment variables used in this repo are in `src/constants/envVariables.ts` file, including types. The default location of the `window._env_` object is `public/settings/env-config.js`. - -### General Configuration - -- `API_URL` - The base URL of the SDP Core Service. Default: "http://localhost:8000". -- `STELLAR_EXPERT_URL` - The base URL of the Stellar Expert explorer. Default: "https://stellar.expert/explorer/testnet". -- `HORIZON_URL` - The base URL of the Horizon server. Default: "https://horizon-testnet.stellar.org". -- `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. This key needs to match the key used in the SDP Core Service. diff --git a/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx b/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx deleted file mode 100644 index 065ed096f3..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Deploy the SDP -sidebar_position: 40 ---- - -In this guide, you will learn to deploy the SDP on a Kubernetes cluster using publicly available Helm charts. - -This option is recommended for persistent deployments of production or staging instances of the SDP. If you want to deploy the SDP on a local machine for development purposes, see [Run the SDP Locally](getting-started#run-the-sdp-locally). - -Please note that configuring deployment details like ingress, TLS, resource limits, and so on are out of scope for this guide. This guide assumes that you have a Kubernetes cluster with a Postgres database deployed in the same cluster and that you have the necessary permissions to deploy the SDP. It also assumes that you have the operational knowledge to manage the cluster and the database. - -## Prerequisites - -- Kubernetes 1.19+ -- Helm 3.2.0+ -- Postgres 14.0+ - -## Installing the Chart - -### Add the Helm repository - -Before you can install the chart, you need to add the Stellar Helm repository. - -```bash -helm repo add stellar https://helm.stellar.org/charts -helm repo update -``` - -### Customize the values - -The SDP Helm chart has a number of configurable values. You can customize these values by creating a values file and passing it to the `helm install` command. - -We provided a sample values file that you can use as a starting point. This file has the minimum set of configurations required to deploy an SDP instance. You can download the file from the [SDP GitHub repository](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/minimal-values.yaml) or by running the following command: - -```bash -curl -O https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/develop/helmchart/sdp/minimal-values.yaml -``` - -You can find the full list of configurable values in the [SDP GitHub repository](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#stellar-disbursement-platform-sdp-parameters). - -There is a more detailed explanation of how to configure the SDP in the [Configuring the SDP Guide](configuring-sdp). - -### Multi-tenant considerations - -When running the SDP in a multi-tenant configuration, you will need to acquire wildcard TLS certificates to facilitate tenant provisioning as the SDP relies on subdomains to differentiate between tenants. This will allow you to provision tenants without having to manually configure TLS certificates for each tenant. You can use a service like [Let's Encrypt](https://letsencrypt.org/) or [Namecheap](https://www.namecheap.com/security/ssl-certificates/) to acquire these certificates. - -For more information about multi-tenancy in the SDP, see the [Design and Architecture Guide](design-and-architecture#multi-tenancy). - -### Install the chart - -To install the chart with the release name `sdp` and the values file `myvalues.yaml`: - -```bash -helm install sdp -f myvalues.yaml stellar/stellar-disbursement-platform -``` - -Now you should have a running SDP instance. To learn how to use the SDP, see [Create your first disbursement](getting-started#create-your-first-disbursement). diff --git a/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx deleted file mode 100644 index 4583034216..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Design and Architecture -sidebar_position: 20 ---- - -The Stellar Disbursement Platform consists of four services deployed together: - -- **Dashboard**: the user interface administrators use to initiate and track the progress of disbursements -- **SDP Core Service**: the core backend service that performs several functions: - - **Dashboard API**: the API used by the front-end UI for all disbursement requests. The API is documented [here](../api-reference) - - **Admin API**: the API used by the host organization to manage tenant provisioning and configuration. The API is documented [here](../api-reference/admin) - - **Messaging Service**: a recurring process that sends text messages to users prompting them to download the wallet selected for a particular disbursement and verify their phone with an OTP - - **Wallet Registration UI**: a web application that collects and verifies the recipient’s OTP code and verification information via Stellar’s [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) protocol -- **Anchor Platform Service**: the API server that the wallet uses to authenticate and initiate the recipient’s registration process through the SEP-24 deposit flow -- **Transaction Submission Service**: the service that submits all payment transactions to the Stellar network. This service is designed to maximize payment throughput, handle queuing, and graceful resubmission/error handling - -## Dependencies {#dependencies} - -- **Container Orchestration**: the SDP is packaged as Docker containers and can be deployed to Kubernetes or AWS Fargate. SDF provides a Helm Chart for Kubernetes -- **Postgres**: the SDP uses a Postgres database server for all of its services -- **Apache Kafka**: the SDP optionally uses Kafka for streaming events between services. This is primarily used between SDP Core Service and Transaction Submission Service -- **Twilio or AWS SNS and SES**: the SDP’s messaging service uses SMS messages via Twilio or AWS SNS and administrative emails for organization account setup and recovery via AWS SES or Twilio SendGrid -- **Stellar Accounts**: - - Distribution Account: the SDP requires access to at least one funded Stellar account to make payments to the recipient - - SEP-10 Auth Account: the SDP requires a Stellar account for the mutual authentication protocol [SEP-10: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md) used to connect to wallet applications - -## Architecture Diagram - -![Architecture Diagram](/assets/SDP/SDP2.png) - -## Database & Schemas {#database} - -The SDP uses a Postgres database for all of its services. The database schema is managed by the SDP Core Service and is versioned in the codebase. The database schema is designed to be tenant-aware, meaning that each tenant has its own set of tables and data. This allows the SDP to be multi-tenant and support multiple organizations using the same instance. - -There are 3 types of schemas in the database: - -- **Admin Schema**: contains tables for managing tenants. This schema is used by the Admin API to manage tenant configuration and provisioning. -- **TSS Schema**: contains tables for managing transactions. This schema is used by the Transaction Submission Service to manage the state of payment transactions. -- **Tenant Schemas**: each tenant has its own schema that contains tables for managing disbursements, recipients, and other tenant-specific data. These schemas are prefixed with `sdp_`. - -## Multi-tenancy {#multi-tenancy} - -The SDP can be deployed in a multi-tenant configuration, where multiple organizations share the same instance of the SDP. Each organization is referred to as a tenant and has its own set of data and configuration. A host organization can manage multiple tenants and manage their configuration through the Admin API. - -### Tenant Resolution {#tenant-resolution} - -The SDP uses a tenant resolution strategy to determine which tenant a request belongs to. Tenant resolution is only required for unauthenticated requests, as authenticated requests include the tenant information already in the JWT token. - -- **Header**: the `SDP-Tenant-Name` header is used to specify the tenant name in the request. When present, this header is used to attempt resolving the tenant. -- **Subdomain**: the SDP can use the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. - -Resolution priority goes as follows: JWT token (authenticated requests) > Header > Subdomain. - -#### Single Tenant Mode {#single-tenant-mode} - -When single tenant mode is enabled using the `SINGLE_TENANT_MODE` environment variable, all tenants will automatically resolve to the default tenant. A default tenant is set by calling the API [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx). - -Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. - -#### Subdomain Resolution {#subdomain-resolution} - -When running the SDP in multi-tenant mode, the SDP uses the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. This allows the SDP to differentiate between tenants without requiring the tenant name to be specified in the request. - -The subdomain resolution is particularly important for the Wallet Registration process, as the SDP relies on subdomains to differentiate between tenants during the SEP-24 deposit flow. Home domains, which contain the tenant name as a subdomain, are used during the registration process by the SDP to identify the tenant and route the wallet-registration request to the correct tenant context. diff --git a/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx b/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx deleted file mode 100644 index 66f931795f..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx +++ /dev/null @@ -1,424 +0,0 @@ ---- -title: Getting Started -sidebar_position: 30 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -In this guide, you will learn to: - -- create and fund a host distribution account that may be used to fund tenant-level distribution accounts or directly for making payments -- set up an instance of the Stellar Disbursement Platform (SDP) locally -- provision a new tenant and create login credentials for users belonging to tenant -- set up a Stellar account to accept funds as a receiver -- make your first disbursement -- register your receiver account with the SDP -- check your account balance after receiving payment - -By the end of this guide, you'll have a clear understanding of the Stellar Disbursement Platform's functionality and a working local setup ready for development or testing. - -Note that while we'll be using USDC and the [Demo Wallet][demo-wallet] in this guide, other Stellar assets and wallets can be used in development or production. - -## Create and Fund a Host Distribution Account - -You'll need a minimum of two accounts when using the Stellar Disbursement Platform, a distribution and receiver account. We'll create the distribution account now and will create the receiver account while making our first disbursment. - -1. Go to the [Stellar Demo Wallet][demo-wallet] and select "Generate keypair for new account" -1. Select the "Create account" button next to the public key to fund your account with XLM -1. Select the "Select from preset assets" button, and select USDC -1. Finally, select "Add trustline" to enable payments of USDC - -Now that we have an account that can send & receive USDC, lets fund it with enough USDC for our first disbursement. You can fund your distribution account from any liquidity source of Stellar USDC but here's how do it through the Circle Sandbox and [Stellar Lab](https://lab.stellar.org). - -1. Create a [Circle Sandbox][circle-sandbox] account -1. Once you're at the dashboard, Select "Get API Key", and copy it to your clipboard -1. Go to the [Circle Sample App][circle-sample-app] and enter your API key after selecting the settings icon in the top right corner -1. Select "Charge Flow", then "Prefill Form", and select a card to use (it doesn't matter which) -1. Enter the amount you'd like to purchase, then select "Make Payment" - -This will fund your Circle Sandbox Account with USDC. You can repeat the process above when you run out or the test network resets, which happens quarterly. - -Your USDC should appear in your account within a few minutes, which you can check using the [balances endpoint](https://sample-sandbox.circle.com/debug/payments/balances/fetch). Once funded, you can send it to your distribution account created earlier. - -1. Select the icon in the top left, then "Payouts API", and finally "POST /transfers" -1. Select "Get Master Wallet ID" to load the wallet funded with USDC -1. Enter the amount you'd like to send -1. Select the "blockchain" destination type and then "XLM" -1. Paste the public key of the account you created with the demo wallet earlier -1. Select "Make API Call" - -Circle will submit payment of USDC to the Stellar test network and you should receive funds in your demo wallet account almost immediately! - -You can also acquire USDC through the [Stellar Lab](https://lab.stellar.org) if you prefer. Before starting, make sure your demo wallet account is funded with XLM and has a trustline to USDC. Build a transaction in the Lab with your demo wallet account as the source account. Create a Path Payment Strict Send operation with the same account as the destination account. Use XLM (native) as the sending asset and USDC issued by GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 as the destination asset. You can set your preferred minimum destination amount based on how much XLM you send but the amount isn't important in testnet. A very low minimum will ensure the trade. Sign the transaction and submit to the network. - -USDC will arrive in your demo wallet account within seconds! Refresh the account on the demo wallet page to see the new balance. - -## Run the SDP Locally - -### Prerequisites - -#### Docker - -Make sure you have Docker installed on your system. If not, you can download it from [here](https://docs.docker.com/get-docker/). - -#### Stellar Accounts - -We will need two Stellar accounts to set up the SDP, one of which you already created above. - -1. A Host Distribution account that will be used for sending funds to receivers. You should have just created this account using the [Create and Fund a Host Distribution Account](#create-and-fund-a-host-distribution-account) process above. -1. A SEP-10 account that will be used for authentication. It can be created the same way as the distribution account, but it doesn't need to be funded. Make sure to create this account now if you haven't already done so. - -The public and private key of these two accounts will be used to configure the SDP in the next step. - -### Run the SDP - -First you'll need to clone the project. - - - -```bash -git clone git@github.com:stellar/stellar-disbursement-platform-backend.git -``` - - - -Before we run the SDP, we need to configure it with the accounts created in the previous step. - - - -```bash -cd stellar-disbursement-platform-backend/dev -``` - - - -Create a `.env` file in the dev directory by copying the `.env.example` file: - - - -```bash -cp .env.example .env -``` - - - -Update the `.env` file with the public and private keys of the two accounts created in the previous step. - -Execute the following command to create all the necessary Docker containers needed to run SDP as well as provision sample tenants: - - - -```bash -./main.sh -``` - - - -This will bring up the following services: - -- `sdp_v2_database`: The main SDP and TSS database. -- `anchor-platform-postgres-db`: Database used by the anchor platform. -- `anchor-platform`: A local instance of the anchor platform. -- `sdp-api`: SDP service running on port 8000. -- `sdp-tss`: Transaction Submission service. -- `sdp-frontend`: SDP frontend service running on port 3000. -- `kafka`: Kafka service running on ports 9092, 9094(external). -- `kafka-init`: Initial workflow to exec into the Kafka container and create topics. -- `demo-wallet`: The demo wallet client that will be used as a receiver wallet, running on port 4000. - -## New Tenant Provisioning Process - -When you ran `main.sh` file, you've already created new tenants: `tenants=("redcorp" "bluecorp")`. To add more tenants, simply append them separated by spaces to that variable like so: `tenants=("redcorp" "bluecorp" "greencorp")` and run main.sh again. - -Be sure that the added tenant hosts are included in the host configuration file. To check it, you can run the command cat `/etc/hosts`. To include them, you can run command sudo nano /etc/hosts and insert the lines below: - -``` -127.0.0.1 bluecorp.stellar.local -127.0.0.1 redcorp.stellar.local -``` - -## Setup Owner User Password for each tenant - -Go through the forgot password flow to be able to login as an owner user. - -Go to Forgot Password page on `http://${tenant}.stellar.local:3000/forgot-password` and enter the tenant and owner email `owner@${tenant}.org`. - -A token will be generated, and it's possible to check it on `sdp-api` logs. This token will be needed to Reset Password on `http://${tenant}.stellar.local:3000/reset-password`. - -## Log In - -Once the password for your target org user has been reset to one of your choice, navigate to the dashboard by opening a browser to localhost:3000 and login with the user account. ![Login](/assets/SDP/SDP26.png) - -Click the Sign in button and the SDP Dashboard will open. You will have no disbursements data at this point. ![Dashboard](/assets/SDP/SDP27.png) - -## Create Your First Disbursement - -Navigate to the frontend service by opening a browser and going to http://bluecorp.stellar.local:3000. - -- Click `New Disbursement+` on the Dashboard screen. -- Use `Demo Wallet` as your wallet and choose a verification method. -- Upload a disbursement file. A template file can be downloaded at the frontend page when creating a disbursement, and the template will change according with the options set for that disbursement. You can also find the template files at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). Make sure to update the file before using it by changing the contact info to yours and removing the comment line. -- Finally, confirm the disbursement. - -![Disbursement Details](/assets/SDP/SDP28.png) - -You also have the option of modifying the message in the receiver invite. ![Disbursment Details 2](/assets/SDP/SDP29.png) - -## Deposit Money - -To deposit money into your account: - -- Access [demo-wallet](http://localhost:4000) in your browser. -- Click on `Generate Keypair for new account` to generate a new keypair. Make sure to save your public key & secret if you want to use this account later. -- Click `Create account` (in front of public key) to actually create the account on the Stellar testnet. -- Your newly created account will have 10,000 XLM. -- Add your home domain to the account by clicking on `Add Home Domain` and entering `http://bluecorp.stellar.local:8000`. -- In the `Select action` dropdown, select `SEP-24 Deposit`. -- In the new window, enter the phone number from the disbursement CSV. -- Enter the passcode. You can use `000000` passcode or find the actual passcode in the `sdp-api` container logs. -- Enter the birthday that matches the phone number in the CSV. -- Keep an eye on the dashboard until the payment status reaches `Success`. If everything was set up correctly, your money should be disbursed successfully. - -## Troubleshooting - -### Distribution account out of funds - -Payments will start failing if the distribution account runs out of funds. To fix this, you can either write a script that funds the distribution account or use the tools available to add more funds to the distribution account by following these steps: - -- The distribution account address can be found under `Distribution Account` on the frontend sidebar. Copy that address. -- Access [https://horizon-testnet.stellar.org/accounts/:accountId](https://horizon-testnet.stellar.org/accounts/GARGKDIDH7WMKV5WWPK4BH4CKEQIZGWUCA4EUXCY5VICHTHLEBXVNVMW) in your browser and check the balance. -- If the balance is indeed low, you can add more funds by creating a new account and sending funds to the distribution account. - - Access [demo-wallet.stellar.org](https://demo-wallet.stellar.org/) in your browser. - - Click on `Generate Keypair for new account` to create a new testnet account. Your account comes with 10,000 XLM. - - Click on `Send` and enter the distribution account public key and the amount you want to send. - - Using Freighter or [Stellar Lab](https://lab.stellar.org/account/create?$=network$id=testnet&label=Testnet&horizonUrl=https:////horizon-testnet.stellar.org&rpcUrl=https:////soroban-testnet.stellar.org&passphrase=Test%20SDF%20Network%20/;%20September%202015;;), swap the XLM for USDC if you wish to test with USDC. - -## Verify Your Identity - -When a disbursement is created, the SDP attempts to send a message to receivers using either Twilio/AWS for SMS or email, according to the contact type associated with the user. This message includes a link to the wallet application selected when creating the disbursement, and should direct the receiver to install the wallet app, go through the wallet's onboarding flow, and finally register with the SDP. - -:::info - -Please notice that the initial configuration has `SMS_SENDER_TYPE=DRY_RUN` and `EMAIL_SENDER_TYPE=DRY_RUN`, which means the messages will be printed in the logs (of the `sdp-api` container) instead of being sent. - -Check out the [Email and SMS Messages](#email-and-sms-messages) section to learn how to configure messaging in the SDP. When you do, and another disbursement is created, you should get a message like the following. - -![Verify Identity](/assets/SDP/SDP8.png) - -::: - -## Create a Receiver Account - -Clicking on initation message link will take the receiver to the [demo-wallet], where they'll need to create an account to be used to receive the USDC payment. Follow the same process described earlier to create the account and add a USDC trustline. - -## Initiate SEP-24 Webflow - -Now we'll need to connect the demo wallet to the SDP instance running locally. To do that, select the pencil icon next to "centre.io" below your USDC balance and enter "localhost:8080". - -In the "Select Action" dropdown, select "SEP-24 Deposit" to initiate a SEP-24 webflow, which triggers the User Registration process to link the new wallet to the phone number in the SDP. - -![SEP-24](/assets/SDP/SDP13.png) - -A SEP-24 interactive window will appear, where the receiver can select the contact info type (e.g. phone number or email) that is registered for them in the SDP database. - -![Webflow1](/assets/SDP/SDP14.1.png) - -In the next SEP-24 screen the user should enter the contact info data (phone number or email) from the disbursement CSV. - -![Webflow2](/assets/SDP/SDP14.2.png) - -Next, enter the passcode and the verification field that you used in the disbursement file. Note: use 000000 for this example (or 999999 if you want to see an error response). - -![Passcode and Birthday](/assets/SDP/SDP15.png) - -The webflow provides a message indicating your successful registration, which is the trigger for the SDP to send the payment. You should receive your payment from the SDP shortly. - -![Message](/assets/SDP/SDP16.png) - -## Check Your Balance - -Refresh your account. The Demo Wallet should now show a balance of 2 USDC sent from the SDP (or however much was defined in the CSV file). - -![Success](/assets/SDP/SDP17.png) - -Keep an eye on the dashboard until the payment status reaches Success. If everything was set up correctly, your money should be disbursed successfully. - -![Disbursement](/assets/SDP/SDP18.png) - -## Next Up: Updating Application Secrets - -Now that you've been able to make a disbursement, let's go back to our docker compose files and update some values. **This is an important step before going to production. We'll be updating encryption keys and application secrets.** - -### Email and SMS Messages - -The Stellar Disbursement Platform sends emails to users and SMS/emails to receivers. For SMS messages, the Stellar Disbursement Platform supports Twilio, AWS SNS, and a dry run mode that just logs the messages. For emails, it supports AWS SES, Twilio SendGrid, and dry run. - -These services can be selected through the `SMS_SENDER_TYPE` and `EMAIL_SENDER_TYPE` configurations. When selecting Twilio or AWS services, you'll need to fill their service-specific configuration as well. Below there are some example configurations, and you can mix and match the services as you see fit. - -#### Dry Run Configuration - -Dry run mode is useful for testing the SDP without sending real messages. It will log the messages to the console instead of sending them to the receiver. This is the default configuration and it works for both SMS and Email. - - - -```yaml -EMAIL_SENDER_TYPE: DRY_RUN -SMS_SENDER_TYPE: DRY_RUN -``` - - - -#### Twilio SMS Configuration - - - -```yaml -SMS_SENDER_TYPE: TWILIO_SMS - -# Twilio specific configuration -TWILIO_ACCOUNT_SID: -TWILIO_AUTH_TOKEN: -TWILIO_SERVICE_SID: -``` - - - -#### Twilio Email (Send Grid) Configuration - - - -```yaml -SMS_SENDER_TYPE: TWILIO_EMAIL - -# Twilio specific configuration -TWILIO_SENDGRID_API_KEY: -TWILIO_SENDGRID_SENDER_ADDRESS: -``` - - - -#### AWS SMS Configuration - - - -```yaml -SMS_SENDER_TYPE: AWS_SMS - -# AWS specific configuration. -# This is needed for both AWS Email and SMS -AWS_ACCESS_KEY_ID: -AWS_REGION: -AWS_SECRET_ACCESS_KEY: - -# AWS SNS configuration -AWS_SNS_SENDER_ID: -``` - - - -#### AWS Email Configuration - - - -```yaml -EMAIL_SENDER_TYPE: AWS_EMAIL - -# AWS specific configuration. -# This is needed for both AWS Email and SMS -AWS_ACCESS_KEY_ID: -AWS_REGION: -AWS_SECRET_ACCESS_KEY: - -# AWS SNS configuration -AWS_SES_SENDER_ID: -``` - - - -### Authentication - -Wallets authenticate with the Stellar Disbursement Platform using a mutual authentication protocol, where both the SDP and wallet prove they are in possession of their Stellar accounts by signing a payload exchanged between themselves. Once this process is complete, a JWT is provided to the wallet to use in future requests. Additionally, the SDP's microservices uses authentication tokens to communicate between themselves, and to encrypt user passwords. We need to provide updated values for all these use cases. - -In `docker-compose-sdp-anchor.yml`, update the following: - - - -```yaml -# The public key of the Stellar account used for SEP-10 authentication: -SEP10_SIGNING_PUBLIC_KEY: -# -# The private key of the Stellar account used for SEP-10 authentication. It -# should be the same secret key for both attributes below, for the Stellar -# Disbursement Platform and Anchor Platform: -SEP10_SIGNING_PRIVATE_KEY: -SECRET_SEP10_SIGNING_SEED: -# -# The encryption key used to sign the resulting SEP-10 JWT token: -SECRET_SEP10_JWT_SECRET: -# -# A shared encryption key used to sign JWT tokens in the SEP-24 from the Anchor -# Platform to the Stellar Disbursement Platform. The value needs to be the same -# for all three attributes below: -SEP24_JWT_SECRET: -SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET: -SECRET_SEP24_MORE_INFO_URL_JWT_SECRET: -# -# A shared encryption key used to sign JWT tokens in the PlatformAPI -# communications from the Stellar Disbursement Platform to the Anchor Platform. -# The value needs to be the same for both attributes below: -ANCHOR_PLATFORM_OUTGOING_JWT_SECRET: -SECRET_PLATFORM_API_AUTH_SECRET: -# -# The private key is used to sign JWT tokens for authenticating the requests -# incoming to the Stellar Disbursement Platform. The Public key is used to -# validate that the JWT token was signed by the SDP's private key. They can be -# generated with these commands: -# openssl ecparam -name prime256v1 -genkey -noout -out ec_private_key.pem -# openssl pkcs8 -topk8 -nocrypt -in ec_private_key.pem -out ec_private_key_pkcs8.pem -# openssl ec -in ec_private_key.pem -pubout -out ec_public_key.pem -EC256_PUBLIC_KEY: -EC256_PRIVATE_KEY: -# -``` - - - -There are many other configuration values to update when moving to a production environment, such as database credentials, URLs, and more. - -## Level Up - -### Custom Assets and Wallets - -The SDP contains a list of assets and wallets available for disbursements out-of-the-box. You might want to customize these, either to limit/expand options or to prepare for going live in production. Now that you've made a disbursement and added application secrets, let's look at how to customize the new disbursement options. - -#### Assets - -You can add and remove assets easily in the SDP dashboard. The SDP backend handles the request seamlessly, including checking for outstanding balance and adding/removing trustlines on the Stellar network. When assets are removed, the record is still retained in the database to preserve a full history. However, the asset will no longer be available for disbursements or holding a balance in the distribution account. - -Head to the Wallets page of the SDP dashboard to add and remove assets. You'll need the Stellar asset code and the public key of the asset issuer. - -:::caution - -Please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets) guide. - -::: - -#### Wallets - -For a full overview on how to add wallets and how to make a wallet SDP-compatible, check out the [Making Your Wallet SDP-Ready](making-your-wallet-sdp-ready) guide. - -### Wallet Address Registration - -Since version [`3.0.0`](https://github.com/stellar/stellar-disbursement-platform-backend/releases/tag/3.0.0), the SDP can pay directly to Stellar wallet addresses rather than directing the receivers through the registration flow. This is useful for organizations that are paying receivers who already have Stellar wallets and don't need to create a new one. - -To use this feature, follow these steps: - -1. Make sure the User Managed Wallet is enabled at the Wallet Providers section (also available at [`GET /wallets`](/platforms/stellar-disbursement-platform/api-reference/get-all-wallets)). -2. If it's not enabled, you can update it through the UI dashboard or with [`PATCH /wallets/{id}`](/platforms/stellar-disbursement-platform/api-reference/update-wallet). -3. Now you can create a disbursement and select from the `registration Contact Type dropdown an option that contains `Walet Address` in the name. -4. Prepare the CSV file according with the [CSV sample](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates) associated with your disbursement configuration. -5. Upload the CSV file and confirm the disbursement as usual. The SDP will send the payment directly to the wallet addresses provided in the CSV ✅. - -[demo-wallet]: https://demo-wallet.stellar.org -[circle-sandbox]: https://login-sandbox.circle.com/ -[circle-sample-app]: https://sample-sandbox.circle.com/ diff --git a/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx b/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx deleted file mode 100644 index 5fe6ab80bc..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Making Your Wallet SDP-Ready -sidebar_position: 50 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Remember that any SDP instance will need an agreement with a wallet provider before sending disbursements into that wallet. This ensures the wallets are comfortable receiving funds from your organization and governs any commercial arrangement between the organizations. The wallet will need to allowlist the SDP domain before the SDP can send disbursements to that wallet. When the wallet domain is added to a SDP, it's effectively being allowlisted by the SDP. Both sides listing the other allows them to retrieve the stellar.toml file and check the signing key needed for the [SEP-10] handshake. - -In this page, we will cover the technical aspects of the SDP-Wallet integration, including how to add a Wallet in the SDP database, how to validate and support the registration links using mobile app's [deep linking], how to start the user registration flow in the wallet using [SEP-24], and a recommended approach for handling [deferred deep linking]. - -## Adding a Wallet to an SDP - -The default list of SDP wallets depends on which network is being used (testnet or pubnet). The network is passed as an environment variable and then the list of wallets can be seeded appropriately on SDP startup through the CLI command `./stellar-disbursement-platform db setup-for-network`, according with a hardcoded list of known wallets. Alternatively, wallets can be inserted directly into the SDP database through a SQL command. Both methods require adding the wallet name, homepage, SEP-10 client domain, and deep link schema. - -To insert it directly into the database, update your values and run the following Postgres query. Make sure to check your database and namespace first. - - - -```sql -INSERT INTO wallets (name, homepage, deep_link_schema, sep_10_client_domain) -VALUES ('Vibrant Assist', 'https://vibrantapp.com', 'https://vibrantapp.com/sdp', 'api.vibrantapp.com'); -``` - - - -To configure a wallet through the code, add it to the testnet or pubnet section of `DefaultWalletsNetworkMap`. This will be used when you execute the `./stellar-disbursement-platform db setup-for-network` CLI command, which updates the SDP database and makes the wallet available for new disbursements. Add your new wallet following the same format already present in the code. - - - -```go -var DefaultWalletsNetworkMap = WalletsNetworkMapType{ - utils.PubnetNetworkType: { - { - Name: "Vibrant Assist", - Homepage: "https://vibrantapp.com/assist", - DeepLinkSchema: "https://vibrantapp.com/sdp", - SEP10ClientDomain: "api.vibrantapp.com", - }, - }, - utils.TestnetNetworkType: { - { - Name: "Vibrant Assist", - Homepage: "https://vibrantapp.com", - DeepLinkSchema: "https://vibrantapp.com/sdp-dev", - SEP10ClientDomain: "api-dev.vibrantapp.com", - }, - { - Name: "Demo Wallet", - Homepage: "https://demo-wallet.stellar.org", - DeepLinkSchema: "https://demo-wallet.stellar.org", - SEP10ClientDomain: "demo-wallet-server.stellar.org", - }, - }, -} -``` - - - -:::caution - -Please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets) guide. - -::: - -## Recipient Registration Experience - -The recipient registration experience is paramount to make this application smooth and easy to use. this requires the wallet to support [deferred deep linking], which will be discussed in a later section. A good description of the registration experience is as follows: - -1. The recipient receives an invitation message notifying them they have a payment waiting from the organization and prompts them to click a [deep link] to open or install&open a wallet application -1. When the recipient opens the wallet app, the wallet immediately onboards the recipient, creates a Stellar account and trustline for the desired asset, initiates a [SEP-24] deposit transaction with the SDP, and opens the SDP's registration webpage as an overlay screen/iframe inside the app. -1. The user confirms their phone number and date of birth directly with the SDP, without sharing any data with the wallet, and after the registration finishes, the user is sent back to the wallet application. Here are the screens demonstrating these steps: - - ![Registration Flow](/assets/SDP/SDP25.png) - -1. The user receives the payment within seconds - -## Registration Deep Link - -Once the user has installed the wallet application, the wallet should be able to interpret a [deep link] that follows the format registered in the SDP in order to kick off the [Wallet Registration Procedure](#wallet-registration-procedure). The deep link format supported by the SDP follows this format: - -```url -https://?asset=&domain=&name=&signature= -``` - -- `asset`: the Stellar asset. -- `domain`: the domain hosting the SDP's `stellar.toml` file. The wallet will need to use it to both fetch the `stellar.toml` file, and to populate the `home_domain` field in the [SEP-10] GET challenge transaction. -- `name`: the name of the organization sending payments. -- `signature`: a signature from the SDP's [SEP-10] signing key. - -:::info - -Note that the deep link is specific to each SDP, payer org, and asset. It is not specific per individual receiver. There is no risk in sharing the link with receivers who are part of the same disbursement. The link will be the same for multiple receivers and they will prove their identity as part of the [SEP-24] deposit flow. - -::: - -Below is an example of a registration link (signed) - -```url -https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test&signature=fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a -``` - -In this example, the host is `https://vibrantapp.com/sdp-dev` and the signature is the result of signing the below (unsigned) url using the [SEP-10] signing key `SBUSPEKAZKLZSWHRSJ2HWDZUK6I3IVDUWA7JJZSGBLZ2WZIUJI7FPNB5`, with the public key being `GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F`: - -```url -https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar+Test -``` - -In this example, the signature is `fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a`. - -Below is a JavaScript snippet demonstrating how to verify the signature: - -```js -#!/usr/bin/env node - -const { Keypair } = require("stellar-sdk"); - -// The SDP's stellar.toml SIGNING_KEY -// -// For security, this should ideally be fetched from -// https:///.well-known/stellar.toml on demand -const keypair = Keypair.fromPublicKey( - "GBFDUUZ5ZYC6RAPOQLM7IYXLFHYTMCYXBGM7NIC4EE2MWOSGIYCOSN5F", -); -console.log("public key:", keypair.publicKey()); - -let url = - "https://vibrantapp.com/sdp-dev?asset=USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5&domain=ap-stellar-disbursement-platform-backend-dev.stellar.org&name=Stellar%20Test"; -let signature = - "fea6c5e805a29b903835bea2f6c60069113effdf1c5cb448d4948573c65557b1d667bcd176c24a94ed9d54a1829317c74f39319076511512a3e697b4b746ae0a"; - -console.log( - "verified:", - keypair.verify( - Buffer.from(url.toString(), "utf8"), - Buffer.from(signature, "hex"), - ), -); -``` - -### Wallet Registration Procedure - -When opening registration [deep link], these are the steps the wallet should follow in order to enforce the security and privacy measures expected in this flow, and to allow the user to input their information directly with the SDP: - -1. 🚨 Confirm that the `domain` of the deep link is on the wallet's allowlist. This is crucial for authenticating from a trusted wallet.🚨 -1. Fetch the SDP's toml file at `{domain}/.well-known/stellar.toml` and confirm the `SIGNING_KEY` variable is populated. -1. Verify that the registration link signature was made using `SIGNING_KEY` similar to the `keypairPk.verify(...)` function in the snippet above, and that the signature is valid with the content of the link. -1. Check the `asset` from the link and confirm that the recipient user has a trustline for that asset. Create one if it doesn't exist. -1. (Optional) Use the `name` from the link to update the wallet user interface. -1. Initiate the [SEP-24] deposit flow with that asset using the `TRANSFER_SERVER_SEP0024` value from the SDP's toml file. - - This includes using [SEP-10] to authenticate the user with the SDP server. Please notice that the SDP requires both the `client_domain` and `home_domain` fields to be provided in the `GET ` request, and they should be set as follows: - - `client_domain`: the domain of the wallet server that exposes the wallet server's `stellar.toml` file. - - `home_domain`: the domain of the SDP's server that was present in the registration link. - - `account`: the Stellar account of the receiver's wallet. -1. Launch the deposit flow interactive _in-app browser_ within your mobile app, following the instructions in the [SEP-24] spec. - - ATTENTION: the wallet should not, in any circumstances, scrape or attempt to scrape the content from the _in-app browser_ for the recipient's information. - - NOTE: it's highly recommended to use an _in-app browser_ rather than a webview. -1. 🎉 Congratulations! The recipient user can now fill out the forms in the _in-app browser_ and register to receive their payment 🎉. - -Additionally, the wallet should save the link and/or link attributes and associate it with the individual receiving user for these reasons: - -1. This is how the wallet will know that the user is associated with a certain org or SDP. -1. Saving the data is useful for reporting and troubleshooting, especially if the wallet needs to justify the source of funds for regulatory or tax purposes. -1. If the payer org wants to pay any cashout fees charged by the wallet or offramp, the wallet will need to know which users and transactions should be invoiced upstream. - -### Deferred Deep Links - -Most likely, the intended recipient will not have the necessary wallet application installed on their device. For this reason, wallets should support the concept of [deferred deep linking], which enables the following flow: - -1. The recipient's initial action of clicking the deep link should redirect them to the appropriate app store to download the wallet application. -1. After installing and opening the application, the recipient should be rerouted to the wallet's typical onboarding flow. -1. Once the user has successfully onboarded, the wallet should use the information included in the deep link to kick off the [Wallet Registration Procedure](#wallet-registration-procedure). - -Deferred deep linking is a feature commonly supported by numerous mobile deep linking solutions, there are third-party services that can be used to implement this functionality, such as Singular, Branch, AppsFlyer, Adjust, and others. [Here](https://medium.com/bumble-tech/universal-links-for-android-and-ios-1ddb1e70cab0) is a blog post with more information on how to implement [deferred deep linking]. - -The SDP supports a basic link format, such as `https://`. If your wallet's deep linking system needs a more complex structure, you'll have to manage this with a web application. This application should be owned by the wallet provider, and it should be able to receive the deep link, interpret it, and direct the user to the correct location. - -[deferred deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking#Deferred_deep_linking -[deep link]: https://en.wikipedia.org/wiki/Mobile_deep_linking -[deep linking]: https://en.wikipedia.org/wiki/Mobile_deep_linking -[sep-10]: https://stellar.org/protocol/sep-10 -[sep-24]: https://stellar.org/protocol/sep-24 diff --git a/platforms/stellar-disbursement-platform/admin-guide/overview.mdx b/platforms/stellar-disbursement-platform/admin-guide/overview.mdx deleted file mode 100644 index 2563b605e2..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/overview.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Overview -sidebar_position: 10 -pagination_label: "Admin Guide: Overview" ---- - -The entire SDP step-by-step process usually looks something like the following after the SDP is deployed and organizational users have been set up: - -1. The organization funds the SDP’s distribution account with a Stellar-based asset (e.g. USDC) -2. An administrator logs in to the SDP’s dashboard and uploads a CSV file containing the payment information to initiate a new disbursement -3. The SDP sends a text message to every first-time recipient in the CSV inviting them to download a Stellar-enabled wallet application -4. Meanwhile, the SDP immediately begins making payments to each recipient that already has a wallet registered to them -5. Each first-time recipient clicks a deep link to download the Stellar-enabled wallet application chosen by the organization for this disbursement, downloads the app, and goes through the wallet sign-up process -6. Once the recipient has signed up and their Stellar account has been created, the wallet immediately authenticates with the SDP using parameters from the deep link and opens the SDP registration web view for the recipient to complete verification -7. The user confirms their identity by providing an OTP code sent to their phone number and an additional piece of verification information for security purposes. The SDP supports three different types of verification information: Date of Birth, Personal PIN, and National ID. This information is input by the recipient in a web flow and passes directly to the SDP, meaning the wallet does not need to process or store this information. -8. The SDP verifies the recipient’s information. If it matches the information from the CSV, the SDP automatically makes the payment to the recipient’s Stellar account - -Graphic representation of flow of funds: - -![Flow of Funds](/assets/SDP/SDP1.png) diff --git a/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx b/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx deleted file mode 100644 index ac7029ce62..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Secure Operation Manual -sidebar_position: 42 ---- - -This manual outlines the security measures implemented in the Stellar Disbursement Platform (SDP) to protect the integrity of the platform and its users. By adhering to these guidelines, you can ensure that your use of the SDP is as secure as possible. - -Security is a critical aspect of the SDP. The measures outlined in this document are designed to mitigate risks and enhance the security of the platform. Users are strongly encouraged to follow these guidelines to protect their accounts and operations. - -### Implementation of reCAPTCHA - -Google's reCAPTCHA has been integrated into the SDP to prevent automated attacks and ensure that interactions are performed by humans, not bots. - -ReCAPTCHA is enabled by default and can be disabled in the development environment by setting the `DISABLE_RECAPTCHA` environment variable to `true`. - -**Note:** Disabling reCAPTCHA is not supported for production environments due to security risks. - -### Enforcement of Multi-Factor Authentication - -Multi-Factor Authentication (MFA) provides an additional layer of security to user accounts. It is enforced by default on the SDP and it relies on OTPs sent to the account's email. - -MFA is enabled by default and can be disabled in the development environment by setting the `DISABLE_MFA` environment variable to `true`. - -**Note:** Disabling MFA is not supported for production environments due to security risks. - -### Best Practices for Wallet Management - -The SDP wallet should be used primarily as a hot wallet with a limited amount of funds to minimize potential losses. - -#### Hot and Cold Wallets - -- A hot wallet is connected to the internet and allows for quick transactions. -- A cold wallet is offline and used for storing funds securely. -- Learn more about these concepts at [Investopedia](https://www.investopedia.com/hot-wallet-vs-cold-wallet-7098461). - -### Distribution of Disbursement Responsibilities - -To enhance security, disbursement responsibilities should be distributed among multiple financial controller users. - -#### Recommended Configuration - -1. **Approval Flow**: Enable the approval flow on the organization page to require two users for the disbursement process. The owner can do that at _Profile > Organization > ... > Edit details > Approval flow > Confirm_. -2. **Financial Controller Role**: Create two users with the _Financial Controller_ role on the organization page to enforce separation of duties. The owner can do hat at _Settings > Team Members_. -3. **Owner Account Management**: Use the Owner account solely for user management and organization configuration. Avoid using the Owner account for financial controller tasks to minimize the exposure of that account. diff --git a/platforms/stellar-disbursement-platform/admin-guide/single-tenant-to-multi-tenant-migration.mdx b/platforms/stellar-disbursement-platform/admin-guide/single-tenant-to-multi-tenant-migration.mdx deleted file mode 100644 index 84056a32b7..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/single-tenant-to-multi-tenant-migration.mdx +++ /dev/null @@ -1,367 +0,0 @@ ---- -title: 1.x to 2.x Migration Guide -description: Single-tenant to multi-tenant migration guide. -keywords: [migration, single-tenant, multi-tenant, SDP, 1.x, 2.x] -sidebar_position: 70 ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -Here you will find the required steps to migrate an existing single-tenant (`1.x`) Stellar Disbursement Platform application (SDP) to a multi-tenant (`2.x+`) version. - -## Why Migrate? - -Starting with version `2.x`, the SDP provides a multi-tenant architecture, where multiple organizations can manage disbursements under a unified infrastructure while maintaining separate datasets and funds management. - -New features and fixes will only be published to the multi-tenant version. - -The multi-tenant version also suits single-tenant scenarios, through a simplified configuration that will be described later in this document. - -:::caution - -This guide was prepared and tested with `1.1.7 -> 2.1.0` code bases. If you're in a later version, it's possible that the new database migrations cause an error when following these steps. - -You have the option of using the `2.1.0` version to perform this migration, and then upgrade to the latest version after the migration is completed. - -::: - -## Preparing for the Migrations - -### Halt the Single-Tenant Version 🚧 - -Before proceeding with the migration, ensure that the single-tenant version of the SDP is not running. This is crucial to prevent any data inconsistencies or conflicts during the migration process. - -### Double-Spending Prevention 🚨 - -To avoid double-spending, ensure that no payment is in the `PENDING` state, otherwise this could result in having the same payment submitted independently by both single-tenant and multi-tenant instances. You can do that by checking the `payments` table for any payment in the `PENDING` state: - - - -```sql -SELECT * FROM public.payments WHERE status = ANY(array['PENDING']::payment_status[]); -``` - - - -Similarly, check the `submitter_transactions` table for any transaction in the `PENDING` state: - - - -```sql -SELECT * FROM public.submitter_transactions WHERE status = ANY(array['PROCESSING']::transaction_status[]); -``` - - - -If there are any payments in the `PENDING` state or transactions in the `PROCESSING` state, you should wait for them to be processed and transitioned to either `SUCCESS` or `FAILED` before proceeding with the migration. - -### Remove Channel Accounts 🧹 - -In version `2.x`, the channel accounts are encrypted using the `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE`, which is a different env from the one used in the single-tenant version (`DISTRIBUTION_SEED`). To avoid any issues, let's remove all existing channel accounts in the single-tenant version priot to the migration: - - - -```bash -./stellar-disbursement-platform channel-accounts delete --delete-all-accounts -``` - - - -### Database Backup & Setup 💾 - -Backup your single-tenant database before proceeding with the migration. At this point, the single-tenant instance should be halted, and there shouldn't be any `PENDING` payments nor `PROCESSING` submitter_transactions. - -It's also recommended that you create a new database for the multi-tenant version to avoid any data loss. Use the dump from the single-tenant database to populate the initial state of this multi-tenant one. From this point onwards, anytime we refer to **the database**, we'll be referring to the new multi-tenant database that was created from a dump of the single-tenant database. - -Here's how you can do the backup and restore: - - - -```bash -pg_dump --dbname=$singleTenantDB > sdp-singleTenant.sql -createdb $multiTenantDB -psql --dbname=$multiTenantDB < sdp-singleTenant.sql -``` - - - -## Changes Explained - -Among the changes introduced in the multi-tenant version, the most significant ones are: - -1. **Infrastructure**: the multi-tenant version includes an event-broker (Kafka) as an additional infrastructure component that is highly-recommended for multi-tenant setups, especially when high throughput is required. -1. **Environment Variables**: the multi-tenant version introduces new environment variables to configure the event broker, as well as additional variables relevant for multi-tenancy. -1. **Seggregation of Funds**: the multi-tenant version introduces the concept of a distribution account for each tenant, which is used to submit transactions on behalf of the tenant. There's also the HOST distribution account, that's used to fund the tenant distribution accounts and the TSS channel accounts. -1. **CLI Commands**: some CLI commands have been revised to be tenant-aware, while others have been included to support new multi-tenant features. -1. **Database Structure**: the database structure has been revised to accommodate multi-tenancy and the tables are now distributed across multiple schemas, providing isolation between tenants. - -### Infrastructure - -For the infrastructure setup, SDP Multi-tenant offers flexible operational modes. - -#### Event Broker vs Scheduled Jobs - -Administrators can choose between using an event broker for event-driven operations, or scheduled jobs for periodic operations. Event brokers are recommended for multi-tenant setups, as they provide a scalable and reliable way to handle events, while scheduled jobs are recommended for local setups or single-tenant SDPs. Also, event-brokers provide faster communication between services. - -#### Anchor Platform Version - -While the single-tenant used [`stellar/anchor-platform:2.1.3`](https://hub.docker.com/layers/stellar/anchor-platform/2.1.3/images/sha256-e6ef4b17a8d3e5d1455fa3d8f5f7e2a2b9534ad749584ff5446d685eb07837e9?context=explore), the multi-tenant version requires [`stellar/anchor-platform:2.6.0`](https://hub.docker.com/layers/stellar/anchor-platform/2.6.0/images/sha256-913fa2461d36d5150724a172ca46f8c76284a3890b60a9d5709fe0c606af78b9) or later. - -### Environment Variables - -Below are the environment variables that have been added or modified in the multi-tenant version. - -General environment variables: - -- `ADMIN_ACCOUNT`: The username of the admin account used to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. -- `ADMIN_API_KEY`: The api key of the admin accountused to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. -- `ADMIN_PORT`: the port of the Admin server used to create and manage tenants. Default is 8003. -- `INSTANCE_NAME`: the name of the SDP instance to be displayed in the `stellar.toml` file. Example: "SDP Testnet". -- `SINGLE_TENANT_MODE`: When set to `"true"`, it enables the single-tenant mode, which is useful for local development or single-tenant setups. In addition to set it to true, you'll need to configure the default tenant by calling the [`POST /tenants/default-tenant`](../api-reference/default-tenant.api.mdx) request. -- `TENANT_XLM_BOOTSTRAP_AMOUNT`: The amount of XLM that the HOST Stellar account will deposit deposited to the tenant distribution account for tenant bootstrap. - -Stellar accounts configuration environment variables: - -- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE`: A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the 'distribution-seed' option, which was used in the single-tenant version. **Attention**, when migrating from the single-tenant, setting this config to something different from the old `DISTRIBUTION_SEED` will prevent the code from being able to decrypt the channel accounts. -- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE`: A Stellar-compliant ed25519 private key used to encrypt/decrypt the in-memory distribution accounts' private keys. - -Event broker configuration environment variables: - -- `BROKER_URLS`: A comma-separated list of the message broker URLs. -- `CONSUMER_GROUP_ID`: Specifies a group ID for the broker consumers. -- `EVENT_BROKER_TYPE`: Specifies the type of event broker to be used. Options: "KAFKA", "NONE". Defaults to "Kafka". -- `KAFKA_SECURITY_PROTOCOL`: Defines the security protocol for Kafka. Options: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL. -- `KAFKA_SASL_USERNAME`: Specifies the Kafka SASL Username, required when the kafka security protocol is set to either `SASL_PLAINTEXT` or `SASL_SSL`. -- `KAFKA_SASL_PASSWORD`: Specifies the Kafka SASL Password, required when the kafka security protocol is set to either `SASL_PLAINTEXT` or `SASL_SSL`. -- `KAFKA_SSL_ACCESS_KEY`: The Kafka Access Key (keystore) in PEM format, required when the kafka security protocol is set to `SSL`. -- `KAFKA_SSL_ACCESS_CERTIFICATE`: The Kafka SSL Access Certificate in PEM format that matches with the Kafka Access Key, required when the kafka security protocol is set to `SSL`. - -Scheduler environment variables: - -- `ENABLE_SCHEDULER`: Default "false". This enables scheduled jobs that replace the operations of a broker for synchronizing payments between SDP and TSS as well as submitting receiver invitations. It should be set to "true" when the event broker is disabled. -- `SCHEDULER_PAYMENT_JOB_SECONDS`: Interval in seconds for the job that synchronizes payments between SDP and TSS. Minimum is 5s. -- `SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS`: Interval in seconds for the job that submits receiver invitations. Minimum is 5s. - -On the Anchor Platform side, we must set the following envs: - -- `SEP10_HOME_DOMAINS="localhost:8000, *.stellar.local:8000"`: a comma-separated list of home domains used for [SEP-10]. This should contain the domains of the SDP tenant instances. -- `SEP10_HOME_DOMAIN=""`: this should be an empty string for the Multi-tenant version. -- `SEP10_WEB_AUTH_DOMAIN=`: the home domain of the anchor platform instance. - -### Seggregation of Funds - -In the multi-tenant version, tenants funds are isolated from each other **unless the tenant is created with `"distribution_account_type": "DISTRIBUTION_ACCOUNT.STELLAR.ENV"`**. For more information on the distribution account types, please refer to the [Tenant Provisioning](./tenant-provisioning.mdx#creating-tenants) section. - -The channel accounts on the other hand are shared between tenants, and they are created by the HOST distribution account, set in the `DISTRIBUTION_SEED` environment variable. The channel accounts are encrypted using the `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` environment variable, or the `DISTRIBUTION_SEED` if the former is not set. In the single-tenant version, the channel accounts were encrypted by the `DISTRIBUTION_SEED`. - -### CLI Commands - -The following CLI commands were updated to become tenant-aware: - -#### Database Migrations & Population - -The single-tenant commands for DB migration and pre-population used to be: - - - -```bash -./stellar-disbursement-platform db migrate up # ⚠️ DECOMISSIONED in 2.x! -./stellar-disbursement-platform db auth migrate up # ⚠️ 2.x REQUIRES A (NEW) TENANT-AWARE FLAG! -./stellar-disbursement-platform db setup-for-network # ⚠️ 2.x REQUIRES A (NEW) TENANT-AWARE FLAG! -``` - - - -The new multi-tenant commands are: - - - -```bash -./stellar-disbursement-platform db admin migrate up -./stellar-disbursement-platform db tss migrate up -./stellar-disbursement-platform db auth migrate up --all -./stellar-disbursement-platform db sdp migrate up --all -./stellar-disbursement-platform db setup-for-network --all -``` - - - -Please notice that some commands require a tenant-aware flag, that can be either: - -- `--all`: to execute these migrations in all tenants. -- `--tenant-id`: to specify the tenant ID to execute the migrations. - -#### Channel Accounts - -The ensure command was updated from using the `--num-channel-accounts-ensure` flag to using a positional argument: - - - -```bash -./stellar-disbursement-platform channel-accounts ensure --num-channel-accounts-ensure 1 # OLD WAY -./stellar-disbursement-platform channel-accounts ensure 1 # NEW WAY -``` - - - -### Database Structure - -In the updated version, the database structure has been revised to accommodate multi-tenancy. As a result, the tables are now distributed across multiple schemas, and new tables have been introduced to support the multi-tenant architecture. The following schemas are used in the multi-tenant version: - -- **admin**: it houses tables associated with tenant administration. It serves as the central point for managing tenant-related information and to resolve tenant schema names based on tenant IDs. None of these tables existed in the single-tenant version. -- **sdp\_<tenant_name>**: are per-tenant schemas that are prefixed with `sdp_`. For example, for tenants BlueCorp and RedCorp, the provisioned schemas would be named `sdp_bluecorp` and `sdp_redcorp`, respectively. These schemas contain all necessary tables for the SDP operation tailored to each tenant, including per-tenant user authentication. -- **tss**: is a schema dedicated to the Transaction Submitter Service (TSS). The TSS tables do not belong to any tenant, although each TSS transaction contains a column that signals which tenant it belongs to. - -These changes allow for the isolation of tenant data per schema, ensuring that each tenant's data is kept separate from other tenants. - -## Step-by-Step Migration Guide - -:::tip - -The project has a [script](https://github.com/stellar/stellar-disbursement-platform-backend/blob/4420bba6628546918dfcca027ac504898121fed9/internal/integrationtests/scripts/singletenant_to_multitenant_db_migration_test.sh) that performs these steps, as well as a [CI](https://github.com/stellar/stellar-disbursement-platform-backend/blob/4420bba6628546918dfcca027ac504898121fed9/.github/workflows/singletenant_to_multitenant_db_migration_test.yml) that ensures these steps are working. You can use them as a reference. - -::: - -Using the new database created from the single-tenant database dump as a starting point (as described in the [Database Backup & Setup](#database-backup--setup-) section), we can now proceed with the migration steps below. - -### Deploy the New Version - -To transaction to a multi-tenant setup, deploy the latest version of the SDP `2+` version. If you're using helm charts, you can get the helm chart from the [SDP Helm Chart repository](https://github.com/stellar/helm-charts/pull/80). - -### Executing Initial Database Migrations - -Following the deployment of the multi-tenant SDP, the next step is to perform the initial **database migrations**. It does not include the tenant-specific tables yet, they will be created later. - -Migration Commands: - - - -```bash -./stellar-disbursement-platform db admin migrate up -./stellar-disbursement-platform db tss migrate up -``` - - - -These commands will create the tenant admin tables on the **admin** schema and the Transaction Submitter Service tables on the **tss** schema, respectively. - -### New Tenant Provisioning Process - -After successfully applying the database migrations, the next step is to provision a new tenant. This is achieved by making an HTTP request to the **Admin API**. - -Be aware that it will provision the tenants with all the per-tenant migrations included. - -#### Starting the SDP API server - -To facilitate tenant provisioning, initiate the SDP Server using the command: - - - -```bash -./stellar-disbursement-platform serve -``` - - - -#### Posting to the Admin API - -- **API port**: The Admin API is accessible on port `8003` by default. This port setting can be adjusted by altering the `ADMIN_PORT` environment variable. -- **Authentication**: Admin API employs Basic Authentication for securing access. To authenticate, populate the request "Authorization" header with `"Authorization: Basic ${Base64(ADMIN_ACCOUNT:ADMIN_API_KEY)}"`. - -Here's a shell script that can be used to create a tenant through the Admin API: - - - -```bash -ADMIN_ACCOUNT="SDP-admin" -ADMIN_API_KEY="api_key_1234567890" -basicAuthCredentials=$(echo -n "$ADMIN_ACCOUNT:$ADMIN_API_KEY" | base64) -AuthHeader="Authorization: Basic $basicAuthCredentials" - -tenant="bluecorp" -baseURL="http://$tenant.stellar.local:8000" -sdpUIBaseURL="http://$tenant.stellar.local:3000" -ownerEmail="owner@$tenant.org" -# NOTE: please refer to the distribution_account_type values in the API reference -distributionAccountType="DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT" - -curl -X POST http://localhost:8003/tenants \ - -H "Content-Type: application/json" \ - -H "$AuthHeader" \ - -d '{ - "name": "'"$tenant"'", - "organization_name": "Blue Corp", - "base_url": "'"$baseURL"'", - "sdp_ui_base_url": "'"$sdpUIBaseURL"'", - "owner_email": "'"$ownerEmail"'", - "owner_first_name": "john", - "owner_last_name": "doe", - "distribution_account_type": "'"$distributionAccountType"'" - }' -``` - - - -In the SDP Multi-tenant, certain configurations previously managed through environment variables in the single-tenant setup are now stored within the **tenants** table in the admin schema. This change allows each tenant to have its own custom configuration. - -The field **name** is important because it's the tenant identifier. The other fields can be set to the same values used on the environment variables used on the non-tenant version. - -### Importing your data - -Now that we've provisioned a new tenant, we can import our data into it. We need to copy our old tables' data to the new tenant schema. - -Please notice that the following tables don't need to be copied: - -- **_gorp_migrations_** -- **_auth_migrations_** -- **_organizations_** - -To help with the import process, we added a function to the `admin` schema that will copy the data from the v1 tables located in the public schema to the new tenant schema. The function is called `import_tenant_data_from_v1_to_v2` and it receives the tenant name as a parameter. Tenant name needs to be the same as the `$name` used in the tenant creation API call. - - - -```sql - SELECT admin.migrate_tenant_data_from_v1_to_v2('tenant_name') -``` - - - -This concludes the migration of the SDP data to the multi-tenant version. The next step is to drop the old tables that are no longer needed. - -### Drop Old Tables - -Now, the only missing step is to drop the single-tenant tables that should not be in the multi-tenant database: - - - -```sql -BEGIN TRANSACTION; - -DROP TABLE public.messages CASCADE; -DROP TABLE public.payments CASCADE; -DROP TABLE public.disbursements CASCADE; -DROP TABLE public.receiver_verifications CASCADE; -DROP TABLE public.receiver_wallets CASCADE; -DROP TABLE public.auth_user_password_reset CASCADE; -DROP TABLE public.auth_user_mfa_codes CASCADE; -DROP TABLE public.receivers CASCADE; -DROP TABLE public.auth_users CASCADE; -DROP TABLE public.wallets_assets CASCADE; -DROP TABLE public.assets CASCADE; -DROP TABLE public.wallets CASCADE; -DROP TABLE public.organizations CASCADE; -DROP TABLE public.gorp_migrations CASCADE; -DROP TABLE public.auth_migrations CASCADE; -DROP TABLE public.submitter_transactions CASCADE; -DROP TABLE public.channel_accounts CASCADE; - -COMMIT; -``` - - - -### Conclusion 🎉 - -This should conclude the data migration from the single-tenant version to the multi-tenant version of the SDP. Please, make sure to run an e2e test to ensure that everything is working as expected. - -[SEP-10]: https://stellar.org/protocol/sep-10 diff --git a/platforms/stellar-disbursement-platform/admin-guide/tenant-provisioning.mdx b/platforms/stellar-disbursement-platform/admin-guide/tenant-provisioning.mdx deleted file mode 100644 index 11a1771e3a..0000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/tenant-provisioning.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Provisioning a New Tenant -description: Learn how to provision and configure a new tenant in the Stellar Disbursement Platform. -keywords: - [SDP, configuration, tenant, provisioning, single-tenant, multi0tenant] -sidebar_position: 48 ---- - -This section covers the steps to provision a new tenant in the Stellar Disbursement Platform (SDP). A tenant is an isolated organization or entity that uses the SDP to manage disbursements. Each tenant has its own configuration settings, users, disbursements, and most importantly, its own source of funds. - -The endpoints needed to manage tenants can be found in the [Admin (Tenant Management)](../api-reference/admin.tag.mdx) docs. - -## Creating Tenants - -Tenants can be created through the [POST /tenants](../api-reference/create-tenant.api.mdx) endpoint. As a quickstart, you can execute the [main.sh](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/main.sh) script from our repository and make sure to replace it with the desired values. - -The following sections detail how each field is used on the provisioning process and, so you can ensure the tenants are provisioned as expected: - -### `distribution_account_type` - -This is by far the most important field, as it determines the source of funds (distribution account) for the tenant, as well as how the secret for this distribution account is stored. The possible values are described below: - -- `DISTRIBUTION_ACCOUNT.STELLAR.DB_VAULT` - - **Platform**: Stellar - - **Secret Storage Location**: Database, encrypted with `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - - **Assets Supported**: Any Stellar asset - - **Key/Secret Isolation**: Segregated per tenant - - **Appropriate for**: Multi-tenant and single-tenant - - **How is it configured?**: The distribution account is randomly generated and funded during the provisioning process, and the secret is encrypted and safely stored in the database. - - **Transaction throughput**: Approximately 40 transactions per second. -- `DISTRIBUTION_ACCOUNT.CIRCLE.DB_VAULT` - - **Platform**: [Circle] - - **Secret Storage Location**: Database, encrypted with `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - - **Assets Supported**: [USDC]/[EURC] - - **Key/Secret Isolation**: Segregated per tenant - - **Appropriate for**: Multi-tenant and single-tenant - - **How is it configured?**: The Circle API key is provided by the tenant themselves once they have access to the dashboard. The secret is encrypted and safely stored in the database. - - **Transaction throughput**: ⚠️ Limited by Circle's API rate limits. -- 🔴 `DISTRIBUTION_ACCOUNT.STELLAR.ENV` - - **Platform**: Stellar - - **Secret Storage Location**: Environment variable `DISTRIBUTION_SEED` - - **Assets Supported**: Any Stellar asset - - **Key/Secret Isolation**: 🚨 Same distribution account as the HOST - - **Appropriate for**: Single-tenant only - - **How is it configured?**: The tenant will use the HOST account **as is**. The host is responsible for creating the account and configuring it with the `DISTRIBUTION_SEED` secret. - - **Transaction throughput**: Approximately 40 transactions per second. - -:::info - -Once a tenant is created, the `distribution_account_type` cannot be changed. If you wish to use a different distribution account type, you will need to create a new tenant. - -::: - -### `name` - -This is the name of the tenant in the admin database. It is used to generate the per-tenant database schema, and is also used in the dashboard to identify the tenant. - -It cannot be changed once the tenant is created. - -### `base_url`, and `sdp_ui_base_url` - -These are the URLs that the tenant will use to access the API and the dashboard, respectively. They are used to generate the tenant-specific URLs that are used in the dashboard and the user-targeted or receiver-targeted messages. - -They are important to allow the SDP backend to route the unauthenticated requests to the correct tenant, and to generate the correct URLs in the dashboard. - -### `owner_email`, `owner_first_name`, and `owner_last_name` - -This is the information of the first user in the tenant organization. This user will have the `OWNER` role, which grants them full access & control to the tenant. - -The email, first name, and last name can be updated by the user themselvses once they sign up and access the dashboard. - -### `organization_name` - -This fields is used to populate the tenant's name in the dashboard. It can be updated by the owner user through the dashboard. - -## Single-tenant Mode - -The platform is designed for multi-tenant mode, but it can also be used in single-tenant mode. This is the only case when setting `DISTRIBUTION_ACCOUNT.STELLAR.ENV` is acceptable, while the other modes are still advised. - -To enable signle-tenant mode, tiy need to follow two steps: - -1. Set the env `SINGLE_TENANT_MODE=true`. -1. As a HOST, you need to update the database by configuring which tenant is the default one by calling [POST /tenants/default-tenant](../api-reference/default-tenant.api.mdx) - -:::caution - -Once this `SINGLE_TENANT_MODE` env is enabled, all tenant-related requests will expect there to be a default tenant and will fail with a `400` status code if there isn't one. The API response will include a message indicating that the default tenant is missing. - -::: - -## Fetching Tenants - -The tenants can be fetched through the [GET /tenants](../api-reference/get-all-tenants.api.mdx) and [GET /tenants/:id-or-name](../api-reference/retrieve-a-tenant.api.mdx) endpoints. - -## Deleting Tenants - -Tenants can be deleted through the [DELETE /tenants/:id](../api-reference/soft-delete-a-tenant.api.mdx) endpoint. This is a soft deletion though and despite the system not providing a way to ubdelete it, the tenant information won't be deleted from the database with the current implementation. - -## Updating Tenants - -Some fields of a tenant can be updated through the [PATCH /tenants/:id](../api-reference/update-a-tenant.api.mdx) endpoint. The API documentation provides more details on which fields can be updated. - -[Circle]: https://www.circle.com -[USDC]: https://www.circle.com/en/usdc -[EURC]: https://www.circle.com/en/eurc diff --git a/platforms/stellar-disbursement-platform/api-reference/_category_.json b/platforms/stellar-disbursement-platform/api-reference/_category_.json deleted file mode 100644 index 0d44758281..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsed": false -} diff --git a/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx b/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx deleted file mode 100644 index 002cc5493d..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: authenticate-mfa -title: "Provide Multi-Factor Authentication" -description: "Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required." -sidebar_label: "Provide Multi-Factor Authentication" -hide_title: true -hide_table_of_contents: true -api: eJzNV01z2zYQ/SsYnJIMKTqetAfe5I80bpPUEznTg+NxluRSRAQCDLC0rHr03zsLkhZlJXLSNjPRRRKweHj7sNhd3EmCuZfppZy2VKEhlQMpa+RVJAv0uVNN+JvK3+wNOuMFVSjqVpOKS8jJOgFbC0XjbI7ei9I6MTs5F61HJ7SdKxMJZXLdFsrMAwpkSitaCbLCYY11hi6MF3ijchTeijcvp0J5YSwJ0EtYeeHwc6scFhMZSdugC3ueFTKVIxr45uVURrIBBzUSOvbvThqoUabyJKDHZycykoodqxAKdPKhv2cFo5UKnbDliJeM5EBCpiVoj5H0tNKM7VXdaLbA20bbAjcGeYU1yPRO0qoJluSUmcv1+qqDQ09HtlixxTYNlqA3EAUQyEjm1hAaYttnyTP+2sBvqF3KuoTrnFlcRcO2NvuEObE2jtUjhZ5X3VvuEHyoyps9Jx8Q1uxPd5jX9Rgws1YjmB3Eo25clBrmO6HAwdNB5tBQXsE12QWax3lesFmIQYfH0/OL41dTcQNaFYHqRLy7Hw2AHGWDdKI1mgOY9/94cjabHr0+vX532tt/FLk1pZq3XejxQo/ExMm1OJFr/oxDhIfDgG+s8Z3ehwcHuyc9a3O+OGWrHwi7feTQNLqfSD55a7bPf/85f6N426mgU6hzbB3JF1/ifgSFeNdF6f/HFp2z7nG2J0igtBeQ2ZbCqXUL13wNyYF/dKfgF95CuLybjeWZCSEjlGlakmO4UqEurktrZbr5PQ4iGfXjGbh7mwycMIiF53DJUIARyhDOOcbv1X2+q+57wwFhnfo7AP9Yeb9dNukJqB3bmZZvLkPU6D3Mv5BQ1l8T+y0n+bGbGxbDPi8Ono+QH674kcAB+zbmDDdHE/cJOc5ssYr7usK/O3A0XlnTFZ0FrmS6d2Ukb0C39whcEGqkynJNa2y4Tw1QJVOZ1CWnf4/uZqhprdMylWGRx7x1ilYzPv7ufI4QHDq+zaNzgEb9gaudW/T7XxecbYuQM7fzTyS8mhssxFJRxUF7Ojv85VfROHUDhGKBK67GvQzTXrchc41LLIuoTGkDG0WhZM4ItQYnTpTPWuexRkPiXAOV1tVien7GAqHzHcvDyfPJAWvQ1jU4lvaiQrEf48ns5Pwp300QZK0WWas0BTetm4PpqYY7WcMCRdbqhWhgxShhFMTc2bbhNsBhrhoVJrgdCtlm2N0gLa1bTHZr0U9H8YP5YC4q5cOWRtgGText63Lk9o3vuqAKiKc7KqEKNEMj9AAuEmCKMMFRLnIwnNxK25oiLKz4j9Z2yY2fw8Z6RdYp9CnziMWl7/CS/jsuRiLFTS9SnEG+QFNcPamIGp8myVxR1WaT3NbJdyE8TUVw/p7Kims6geq7294seKVM6cCTa3NqXe8gnws9dqaT7/CsdCGj/xfXBojHfFtiJgbbf+1NhbqO8woc+b2UR3YJOcSkBmWSfmCvP4+58Qp1LQJQ4F9go+1qeFfsv2utZ7tFm6EzSOgnHzhNEbra/1nO0IUeP5WDWz3NiXXzJBjFtox9bxZJrXI0PtSbIQE2kFcoDkOe6vIzY6VJslwuJxBmA1q/1Cevz45P385O48PJwaSiWoc8yam/BjMCPnf2RhUouhb8ZdeCTx92ilup527TK/yE77e+IBHeUtJoUIYbh6DYXV/ywhuGny8VF8L0Ut7dZeDxvdPrNQ9/bpGLwOUVF1GnIOOScnm1joaKwzWyUJ4nNq+1r0q058n3Ra5dcR8/KIdSLtfRUPuPO/j4ghE2Fvxy2xhN8xwbGk3vNHZbfcH5n7MLGXUNAz/fwtNNOljy4xSWgcB6/Q9FjJ0S -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx deleted file mode 100644 index fdad8fa3b1..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-api-key.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-api-key -title: "Create API Key" -description: "Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs." -sidebar_label: "Create API Key" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Creates a new API Key to access SDP endpoints. API Key can be configured to have a granular read/write access, also API key can be restricted to the specific IP or range of the IPs. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx deleted file mode 100644 index 4b6d05c754..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-asset.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-asset -title: "Create Asset" -description: "This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement." -sidebar_label: "Create Asset" -hide_title: true -hide_table_of_contents: true -api: eJzVVk1T20gQ/Stdc0qqJIsQEqp0Mxg2bFggMQm1a3wYSW1rYmlGmQ8bRaX/vtUjCcxHyGZz2eVg7Jnu191vevpNwyxfGhbP2Llecim+cSuUZPOAZWhSLSr/M2aXuTCAMquUkBaEAWcwA6sg1cgtAgeJG+DGoAWbcwspl5BgZyYkcJgIkzhtsERpR3CmLMZgcwS1FRdKZyzkqsiAQ8ILLlPsvCuurUhdwfUQRBE2CNvtZ9voLGCqQu0hTzIWs0Of5JgcWcA0fnVo7IHKahY3DwodD+gJ9rVlLGCpkhalJXNeVYVIPXb0xZBPw0yaY8npG2ELjRkxmqoMWcCEMQ41UWrrClnMVPIFU0qk0pSmFWjI1ZvHzWBlrBZyyR4fBPYM9PB4w8uqII9P08kha28D/iOo3nYb5reDg8ne/snx29Or9/sX+39Mjj5PD68+7k8uPl19fn325+vJ5Yejz8ene2fjy73xh3ev/zo9PT4dv2Et/QVbFFjt0C+YSknTVbm78+p7pPd0g3FpisYsXFHU97gn9L2dncf+BzyD/lQDEHLNC3G7AInKalDaN1ul1VpkmHnyoq546ubeZ/QgXBswg6nTwtYsnjXsALlGPXY2Z/Fs3s4DdhMS0hJl2IcLKVwoeUlU0nfPrUVphJLGo6ywZvGzngFb88LdIlCgEm2uqJcrZXzvcEqCRb4XDKNE9Rp1F8HpgsXM+w35T6lFuyPYruK2R3gl3mP9qEd+v7rs7vBCaeDO5iht3/0BGLGUmMFG2By4hKPp7pu3UGmxpomwwpro7JmgaEoP4yVggsBz5BlqRjTTTfp4dy+Phm4crkXX3He9/QtdSsEXypcurO/4qcWCJsv2iIKLgtuF0iWML07oQFCbjpLd0avRDhHuypLrur9Iz2O8mE4uXlKjcbBKFZA4UVjP6fb4MzR3Sr5CSFyxgorXhOJXOSy1chWoBWhMRSX8hlpj19dDdIl2o/Rq9ORd/2+leC2vpVcVCilBVShDo5xO/S2lCdkJiTB9KkqCVR7+CbgAuMz8BvXLoD4L5WTmHXP6URRqI+QSNFbKCKu0QBNTHiHMTIcX9f/DbUEJq56kMOHpCmU2f5FbW5k4ipbC5i4ZpaqMfgrhZQy++NtUaqDBwwUxnCP0Zr4qIReaG6tdap3uC1yo+6w+eaajn6hsof3c+5XSBogf1bbBBAbbf11NjkUZpjnX1jyb8pZdZDViVHIho37h2Xp+VMY7LErwQD7/DKtC1dReP6wEnCG7lUtQS7RoRtc0Ey3q0pwvpqjXIqW5NJTVpzlSehl5o1AtQtObBawQKUrjh+UwbSue5gi7fk51YkBYcRRtNpsR97serXc10enJ4dHZ9CjcHe2MclsWfiiT1JRcbgF3DykYXlL3ZkxzJ53/u+diL4IWb2xUFVxIkglPXNMr7Yz1SjsPWE4SHM9Y0yTc4CddtC0tf3VIcjCbk3xrwRMSl9m8DQahuxP/w46p8JLi3qn9o7flPeW/OJ9esqB7EsQNKzth1HxDb1q+IcWnh6/tHhpNt9awgsul40uy7TDpaPkj9V959e+/UKbDlqy3Mnyo41059NkG33Fpmu5t0ba39t3Wdz16ugZrOo1527Z/AxqDc2E= -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint is used to create a new asset that can be used in a Disbursement. Note: the organization must hold a balance in a particular asset to use it in a disbursement. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx deleted file mode 100644 index 92e557a704..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-direct-payment.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-direct-payment -title: "Create Direct Payment" -description: "Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly." -sidebar_label: "Create Direct Payment" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Creates a new direct payment that is immediately sent to the specified receiver if they have a valid registered wallet. Direct payments bypass the disbursement workflow and are processed instantly. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx deleted file mode 100644 index 2555e7c244..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-disbursement.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-disbursement -title: "Create Disbursement" -description: "Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `." -sidebar_label: "Create Disbursement" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Creates a new disbursement in `draft ` state with basic details. Important: a disbursement is not triggered until the organization adds receivers through the Upload Disbursement Instructions endpoint and the status changes from `draft ` to `ready `. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx deleted file mode 100644 index 8cde044a2b..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-receiver.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-receiver -title: "Create Receiver" -description: "Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements." -sidebar_label: "Create Receiver" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Creates a new Receiver. Allows clients to create a single receiver record, which can later be referenced in payments or disbursements. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx deleted file mode 100644 index f35b9b1c4e..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-tenant.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-tenant -title: "Create Tenant" -description: "Create Tenant" -sidebar_label: "Create Tenant" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Create Tenant - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx deleted file mode 100644 index 13c4c185ce..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-user.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-user -title: "Create User" -description: "This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email." -sidebar_label: "Create User" -hide_title: true -hide_table_of_contents: true -api: eJzNV1lv2zgQ/isEn9pCsmLHzuGnTY/FprtoAzjBPrhBMRJHFmuKVEnKjtfwf18MJcdykjrbLgr0xZI1B7+5h2vuYeb4eMpvHFrHbyMu0GVWVl4azcf8upCOoRaVkdqzzCJ4dAyYxiWbvL1itUPLwDFfILPoauWZyRnoQDRLTVQhpJ4Rh7RM6tzYEkg7kzqI3Vz22KVnoJxhBWih0DGHeivEpF5IjwxLkKrHI24qtEHBpeBj/iZAIvQ84ha/1uj8ayNWfLzmmdEetafXV8kreriswBLoza8q5GNu0i+YeR7xypJeL9ERNZfW+c8aSuzwOm+lnvFNxBUcolqjGi0tBayFFY+49Fi6JyQ2EQ/GfYN0B2Wl8CEq/t4Umu9B4W8N8vvjpzytndToQlTbA5rnb40vM1PyzYbOIL9Ji4KPc1AOwxdXGe0aOwZHfXrsZ0bjeMGjrpuhqpTMQnSSL474uj7fHTNtAUVdmyIuSZ10nyHzcoF71m3tuo2eCZ0Uj/3Y8SLvnx6fpCiO49P0fBAPT0+O4rM8H8Sjfp4enSEenZ7nFMVDKdDVF+JwOCe67BSjAwH/oezZeWxHTo1RCHo/haaNe/gpDLOT0WgU9/PT43h4nh7HMOj34/x8lIpBeobZ+dF+bA7k27dSq5OJAheoKEgUvg5ab2vcRC2oUT4UeV+IODsb5vHwbADx2RBEPBr281wMT/B0BI9AgcYfBZVLDTqToD5TAluj1CN8TTVQykkfohf6TFMzw6eK4kZD7Qtj5T/fVxmHUxqtNfbJZME7b8E9r8F58HWXT9dlSqZEvETnYPZUJ9s8aD8tDP7BeLZn5g7F9pzhUb+j+aHEz1TchOb4cWh+NzaVQqD++XF52rodgP/AEOxwmNVW+lUo3NcIFu1F7Qs+nt5SUt7FmRE4Qx23cy9OjVjFbR3Qe+NC1E4a7YKWOa74+KBkxBeg6nsNdFCJvjBUopVxwQtAIHhSh52BcNoFvdEBtaWyC2Jb+BNyZ+OxrhG7DlfJP5Gw7gfs/d/XtF4Ilhsbgozat5GKmJMzjYItpS9o23g3GYxOWGXlAjyyOa5oUWgdcdHmR5CkRkrKCwQRSpn+5yagaWt84lEpsOytdGltHZaoPbtS4GlzYRdXl+QitK5BOej1e9QrXV2WYFdhZUJ2WMeLydurl0zSHuWNUSytpfLBTGNnoFuojnnDSpgjS2s1ZxWsSEv4CmxmTV3RqmUxk5UMBLNAGzam7eka/dLYee+Ra389iJ/0Jx12TTpSM1Ohjp2pbYassoaqj/kCPJEbKEYzb4L6J9RFDLQIBMpzloFmKbLc1FoEwYL+KGWWtGNarIyT3liJbkw4YjZ1jb6kfcai46S4ap0Up5DNUYvbF4X3lRsnyUz6ok5p0CTfpeHlmAXj76GsGLUokLrZrFu2YJXUuQXnbZ352rYGUlz8czHtfYdluQ0d8v+YtlXxnG1LTNmW94etKVCVcVaA9e4g5A5f4i1iUoLUSfvhoD3PmfEHqpIFRQG/wEqZ1fYKc7jWaE2fsXmdotXo0fU+UZvyaEv3MZ+gXciM+tLWrBZmz9hZEphik8euZYu4khlqFwbLtgFWkBXIBqFPNf2ZdI2TZLlc9iBQg7ZW1CV/Xb5592HyLh70jnqFL1Xok9T8S9Adxc0VgLWXr70W07l8/Yp3yHbyeLzzSaVAhg0+uGbdTrcpr7c34oKm3njK1+sUHN5YtdnQ5681Ur+f3tLEtBLSsGHfbqLtcNnN2zeNL+JrOnY3YOlSSutvw3SRZVj5DvnRarI3i68+Tq551Azp8ZqXRpCMhSXtuLAMQzji8GjUzsOobV8I4pakV52zHw7NBiL9EuAnRdbrZpBvNvf8DembEq2fttwUhdvNZvMvTKbC3w== -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint creates a new SDP user as the result of an SDP owner adding their information in the UI. It also handles sending the invite email. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx b/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx deleted file mode 100644 index 2a9b24e2f0..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/create-wallet.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: create-wallet -title: "Create Wallet" -description: "Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains." -sidebar_label: "Create Wallet" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx b/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx deleted file mode 100644 index faed38b9f2..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/default-tenant.api.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: default-tenant -title: "Default Tenant" -description: "Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true." -sidebar_label: "Default Tenant" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Sets the tenant specified in the request body as the default one, resolving all the incoming API request to that tenant when the env `SINGLE_TENANT_MODE` is set to true. Once set, the default tenant can be overwritten but never unset, although it is only effective when `SINGLE_TENANT_MODE` is set to true. - -Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. - - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx b/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx deleted file mode 100644 index 8667279d57..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: delete-a-disbursement -title: "Deletes a Draft Disbursement" -description: "Deletes a Disbursement in Draft or Ready Status by `id`." -sidebar_label: "Deletes a Draft Disbursement" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "delete api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Deletes a Disbursement in Draft or Ready Status by `id`. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx b/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx deleted file mode 100644 index da2a2a2cad..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/delete-api-key.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: delete-api-key -title: "Delete API Key" -description: "Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests." -sidebar_label: "Delete API Key" -hide_title: true -hide_table_of_contents: true -api: eJzVV01z2zYQ/SsYnOKMRDqu24Nubq1O3WYST+RMD44PILkSEYEACoBWFQ7/e3dB0JZsxR63k5n0YpHcr7eLxdt1x4NYeT675meXF+wP2Hp+M+EV+NJJG6TRfMYvwTVCgw5qyypQEMAzoRkZrGGbsata4oeStFkptDaBFcBaXRkNGXuvS0hm1YSFGkZDtpFKMW2YMnoFjmxEoYAFw0SLejrIUoRB3cFfLfjgMz7hxoITFOyiQnDn0TPqIHYUWuFEgx8c5dRxjS+oJCsUScrFilDzhwle1QRXYggmK4q7lIjHLPfQIqwhCzQnONIBxg+uhQn3ZQ2N4LOOh62lgD44qVe8729I2VujPXiSnxyf0s9+/DFEqhLzbVmC98tWqS3vJ/z0+M1jo4+aqmSc/AKUXWl0QOik9zp/TT+PQJniM5SBiuSohkEOkMA54w5gn3D4Ozjhn/fggwjtrp5umwIcuWgwD7GCQ6XpYwTRWAU7MPg7bJ+9zO5RjHGwHjueH1oMnoW1ivoHi5V/9lSx7ptFi0f0w+Mj+tW4QlbYUd/kfA6X7z7mS8qwZxXTeaJN6YIvDd7v/2nbvbA9xlQPdcbpbmd8AG9ah2x3X6AxnIeydTJsIyn9DMKBO8MewtcboghkrNoQm90xTOSpGc+FlVOsuc87WfWcHLnbkdxap1CFk4PR/4KKP1RnN8pdFdDdwJP7J/v7n1es9cg8S+N2yRelE+blSqNoI0NNtD9fnPz4E7NO3hI50wBAd4lnz9K9iJYj5dYgKjqVnt6XJqKRgerMFwGUEo6dS1+0ziN0HdilEgFxNMS86IPSHVCeZG+yY6pB2zTCbRNxP+3j1eL88ojRfEICN4oVrVQhpmncSugE1RO7N2INKFdrZsWWvMSvgq2caS1NAweltDIKDKKK02GMriFsjFtnB2fL9wXxk/6k48iWcYzjjdLT1Lh4v+imoZkIJB6g4FgPxo7z8IG7CfqooqA0FdD8p0Eeuz8a1vSilNng7UN41ngZsEXAzwjHlF37wV+efqfVTpGmNhVpWohyDbq6eVWHYP0sz1fYjm2RlabJX+ThaDbsK3dQtow4TEiqMIJNajErbFe88Tjiy9C6lCCdS3juTLMXZLZ0kUL/S2qji+dy20DBRt1/nU0NqpmWtXDBPwl5Ry8PDiBvEEeePjyZz3Np/IaeWXQU8VdgldlSez2bCZIc6a1bHBOa9lhMDW8srouNf79cILfKknhpTCvBzPAi5lFpapZTn9QmHCcI4GJHjDYSoBXIwOwk8tTAz+QLXW02m0xEafSWTH3+9uKX+bvFfIomWR0aFXkS8w64cu84HtZclpb0hyzT3c/h721bT4Mn4PTM8YBxIvSpMl0actd8HHKoPsNVHedZjQUgSdcVwsNHp/qePqNb4v1rfLwVThKAOAmxjegZJ+hSKA9PVOfVh7S6H7EXb/0HUxkHq6ZDuRWqpTd8ROPhH4/+BrXSDCSsg+AMN3wbdkxoe9pbBc7nb+dXc9QQj0b4OnZAeiCfB0E8HMZDYPrbT75i0nXDgtD3d/qD6KsWKbG7fDXl2/f/AEi6BQA= -sidebar_class_name: "delete api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Permanently deletes an API key. This action cannot be undone. Once deleted, the API key will no longer be able to authenticate API requests. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx b/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx deleted file mode 100644 index 0d62204e5e..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/delete-asset.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: delete-asset -title: "Delete Asset" -description: "This endpoint is used to soft delete an asset." -sidebar_label: "Delete Asset" -hide_title: true -hide_table_of_contents: true -api: eJzNVsFu4zYQ/RViTgkgW6mx7UG3dGOgaRfdoE7Rg+MDLY0s1hTJJUf2qoL+fTGU5HqTTYJsL71YljjzZt5wOI8dkNwFyNbw0e+kUf9IUtbAJoECQ+6Vi68Z3FcqCDSFs8qQUEE0AQtBVgRbkihQI6GQRsgQkOaQgHXoI9ZtARncRINrXoQEnPSyRkLPgTswskbIQBWQgOJgTlIFjzO4vRG2FFThEINjD2EhAY+fGuWxgIx8gwkEajVDBlU7zQb42WlbIGSl1IEN8gprCVkH1LpoSV6ZHfT9htGCsyZg4PXF1RU/vs4lEhnDFyI0eY4hlI3WLSSQW0NoCLKu7xNYXL17zl9qj7JoJ5wnru+edzWWRGkb89ipTyBg3nhFbSztzyg9+uuGKsjWGyZXI1WWt+RUvFjtDNJY1pB2quiBYfxh2qDGa8gA2H1CX3EBhwqdxzjVUzr1G7ZPNvHXv+6HzimtF7KhCg2pPPZJIoLaGSzEUVHFrbRcLX78STivDpJQ7LHlthp7haNZP3Xr2DYVygI9cBGUKW3MRlFshBWh1tKLGxW2jQ9YoyFxpyWV1tfi+u4WEmC6Q5aL+Q/zK65BU9fSt7H9UbyMcbG6ubvkgyEFWavFtlGaIk17drACt20t9yi2jd4LJ1tGiV+l2HnbOG5yj7lyKi7YA/rY9FN0g3S0fj9/Utr/X4oP5sHEucEhjbAOzSzYxuconLd/Y06CKhmnyZCKNYKsm475I7hESFPEhdwWKHJpxBaHQxAdK37R2h6V2QmPzgZF1isMGecxE+sw4KXjc1acFWnmxiLNtjLfoyk2FxWRC1ma7hRVzXae2zp9E8JlJiL5Uyqt4JMqFVe4QjGaRVbKlF4G8k1OjR8J8r7Qa3s6fwOz0sdB8V+oTRCvcTviVky2382mQl3P8kp6Ci+mfGaXkkdMa6lMOn54kc9rNH5BXYsIFPMv0Gnbcnu9ykQ0ge32zRa9QcIwf+AxRejr8LFcoT+onOfSRGtMc279Lo1GM1vOwmiWgFY5moA80aYB6GReoVjEOTXMZ8bK0vR4PM5lXI1oo2tIP9y+X/6+Ws4W86t5RbWOc9LZQLU0Z8CDUotJqr+aMd2/WvP2C8EoDISfKXVaKgP9mHk3StAaBgmCBDJV8B2ksoH4e9dtZcA/ve57/vypQZ7K600CB+mV3PKMX3dQqMD/i5PMP5v9xR/jjeFSvHSv+GbOk8IZlreD1A2/QQJ7bIdbTL/pz3T2Zvlheb+EBOQThdxHhRz/MIFvQj/WuiEO//bJMy5dN+hv35/sh6VnPUbtPLEwzKLvvwCSVJKU -sidebar_class_name: "delete api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint is used to soft delete an asset. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx b/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx deleted file mode 100644 index f14cbb8526..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: download-disbursement-instructions -title: "Download Disbursement Instructions" -description: "Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement." -sidebar_label: "Download Disbursement Instructions" -hide_title: true -hide_table_of_contents: true -api: eJzVV0tz2zYQ/isYnJIMJTqu2wNvTuy0bjupJ3Lag6PpLMmliAgEGGApRdXov3cWfJiSX3XTzDQXUUPu6/uw2MdWEiy8TK7lmfJp4zxWaMjLeSRz9JlTNSlrZCJPtbZrL8CI2dmlaDw6QVbkdm20hVxQicLBWrye/S4KpVFQCSTW4EVTswDmYl2iEZlDIGUWQSEfuZyKq1J5sVZaC2v0Rjikxhnh0DeavICC0AllPLkm45i8KGGFIkU0AoggKzHnkEDkDgraNy4jaWt0wIoXuUzkWRf4GPXFyLiMZA0OKiR0TM9WGqhQJlLlMpKKGamBSnlI08WZsEUAN7YsI+nwU6Mc5jIh12AkPW002/OqqjXKSOLnWtscZVKA9iyQlViBTLaSNnWQJKfMQu52c7bma2s8ev5+fHTEj/1Axu6HU5GRLBHyAGkrX1tDaGhypnxtvWoVD+1clRhUGX4PrT0azAe7zO8XAIqGUK7Cl8MYCD9TnPnVl3nZRTJr3YSvvc1kK/EzBGuJbMVO7iL0FeSCDxE9RUKZFWg1vBCjXNnz8iJ+wY9bQdn0I2acFrXjvCTVniQ6Z93t2A+T7AwJlPYCUttQOJFWccd0kAP/qKcAc4A9OJYXHS5l6obk2FyhUOd/FtbK5Oa/UF4MiR1171Nwg0wKThjE3PPNTJHLhzKEC3TMdEf2y9tkvzfQUGmd+isY/s8Z/edMSU9AzVjONFWKgewKvYcF3plsd/P71pLYQ3YTRe/n5OjlyPKhRmsZ6lqrLFSz+KNvr+3X8haO6LvbR/TGulTlOZqvcj5303fj8yk07GkFOCeP1Eum4Y1tzLeae0/MkaKDeld6nIzT4x1627gMhRm0ences8Yp2oRe+QrBoTttqJTJ9ZwbVoVUWm68CwwwuXcmMh43aR9vVb6L1X4X9uhWfQtunA41en7jbsZn0ZI1djqQArX6BTe3KujPf1zxDJOLwrqQ8GioIysSXi24ua0VlVywzmfH3/8gaqdWQCiWuOFu100Dp91dCZr9YNC22JDDyhQ2RKMo9JcZodbg9oYDcamBCusqcXp5ISPJcNsoj6cvp0fMQVNV4DZdN37YxrPZ2eVzrssgyFot0kZpCjCtW4DpQg31uIIlirTRS1HDJpxAOz8tnG1q7vUOM1Wr8MGueOAbeTdIa+uW01vU/v9C/GA+mDBcqjC/2hrNpMvj2lm+eO20qnwXijWCbN1POwfmIgGmnXczm6PIwHBjC5chKPK8ZHlY5inXYZisrFPoE45jIq59ay/unpPxHZjUHUmTFLIlmnz+rCSqfRLHC0Vlk04zW8VPsvA8aSfrIZSN4JIGihkuUXRiAZUyhYP2+jWuA8jnQo+d6fQJyAoXKuqXQOtNPIZtjanoZf81mhJ1NclKcOQfDHkkF5NDjCtQJu5ePIjnMRg/oa5EMBTiz7HWdtMvUQ/ftcaz3LJJ0Rkk9NMPXKYIXeV/K2boVirjutTD6sKcWreIg9DEFhPfiUVSqwyND/2jL4A1L17iONSptj6zrSSO1+v1FMLXYK1T9fGvF6/P387OJ8fTo2lJlQ51sraeKjAjw/2Cto/rYEXbqzzbm1b97W+rXfsKW0qtQRnu+YHfbdc8r+Ve85SRTLrddETRPJKl9cTS220KHt87vdvx608Ncke5nkdyBU5Byv3pestG+X8+LFT3cvzsXTf5Pxf3br13wuhbs+G+vALdhM0rkkvctAv2br7rF9UQU/vhNMuwppHKsMLtDRg/nl/JSMKtMWAZxoDuD1u9M4zDht665t9ddI/KdtsOGbvdIN9+ulejgzYgNox4t/sbFvwyRw== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows an SDP user to download the raw CSV file that was uploaded when creating the disbursement. This will only return results after instructions have been attached to a draft disbursement. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx b/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx deleted file mode 100644 index e4b329c3ed..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/export-disbursements.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: export-disbursements -title: "Export Disbursements" -description: "Exports a CSV file of disbursements." -sidebar_label: "Export Disbursements" -hide_title: true -hide_table_of_contents: true -api: eJzNWNty2zYQ/RUMnpIMJcpumge+qZHcpk0aT+S043E0GZBciohIgFks7aga/ntnQUqmfJEvcWbyYpHEYvecXWAvXktSCyejMzn9VlkkJ+eBTMElqCvS1shosyCUeD37R2S6AGEzkWoX1+igBENuKANpK0DFW96kMpLgN036QjKQlUJVAgGyxbU0qgQZya8ykJotfa0BV/Kq/bFwoDDJBQGWonaQCrLCywrK0daLXFAOO4gEq/awEL7WGiGVUaYKB4F0tCrYamaxlAEDLWwKMiKseTXJoVQyWktaVSzmCLVZyKYJtngdKardftDTbyohUSpKcmGNx9duY99dRfuEOAMJpi45npMP46MTGcgP0/HkVAZydjL+cDKdyEAejz/O/MPr9++O30754zyQpMnb68ds1jJt2Lwqq3bd6+25I0FQBOlnRZ9VRoD7HfPeFCuBQDWa3TMkKFckFILoFAqvTVCunUgVwVAcWSwVReL09PR08O7dYDJ5wgD3OR6ORq8Go4PB6PAWojFkFuHJmLbqfiKqziLtZ3ekoUi3t5Hld0k+5ZFOIVN1QTsh6J10jznor8371zXVCIlHvZfQZCMmMouekDaL62nuB5BSLumxad8YG9OYs0VXWePAsZbD0Yh/dqHfmpfZK9YQGPII4BuFiTvn59txZf7kyUjG2ihcyaZpmkC+HB1ct/vRqJpyi/o/SHdNvQhf3GjFxl8g4dhVyPWCdMsKEC3eclAJlbtbQ5eTL+VMXcaArKIE59QCbsrpTf8qbGHIvy2JHWaXKDZ2Xo4Oepqv7mg1q6oqdOJrYvjFscfWP8yaD9Ev10N0ZDHWaQrmh8TnZvdd2nyIG3Z28T4HSY2aVr5V+A0UAo5rymV0NudrUQLllluNBXjAipdk2DYeLrx6Dxzg+abvqLGQkZSsZWNkxp5oyfZNbRmrSv8F15PGn/+etDmQcwaHBAx1XAPh9MJAKi405UIZMZ0d/vpKVKjPFYFYworTSZejxl00VT9P5aBSPsINv2fWo+mK9IygKBSKfrEWx4Uivr1ifPxGBpLptigPhwfDEfugLku+0pE8yUHs1/FsNjl+LjS3fWRtIeJaF+RpWlwo00F1nPxLtQQR18VSVGrVVTgrlFigrSvOSQiJrrRfsOe+pF9aN0AXFpfDa679+SB+Mp/MCZdoNmmErcAMnK0xAVGh5YvTVnbtOijc+Nlq0/FdURcIZVK/kNgURKKMiEFktjbppmPMbFHYCy5DCJV1mixqcBHjGIgz1+oLu99B/8QPqs5Jg1glSzDp/FlOVLkoDBea8joeJrYMH6TheSQ8+S2UleCEojR7OAfRiXlW2mSoHGGdUI0dQY4L3RXT4QOYZejz2fdQ26i4i9sFxGIj+2g2ORTlIMkVktsLuScXEgKEpdIm7D7s5XMXjT+gKIVX5PGnUBV2xcfrTiaidiy3rGNAAwRu+InTFE9k7n02AzzXCeelDa0O5tDiIvRCA5sNXCcWyEInYJxP/5sEWKkkB3Ho81Sbn1lXFIYXFxdD5Ve9tm6rC9++eT39ezYdHA5Hw5zKwufJyjoqlekpbqdXcXUS3ck168vSeN9ptysLvqWqCqUNdxoe97orRWfdDOyt7VifBzK3jlhkvY6Vg49YNA1/bjtTLlGpdiouem3mrYC/bzy+kccSVt1Yfq6KGnytDB6C6cHT7x4Y22n7kViefODcg/WGUfjHo77n8Hg/2NvB9pG47zEW7ot1O3Y+0vY9J7g99vuj4iWIOb+gZhS++Qw2nRlf1HbjOEmg6kPfzlo7rervU/6PjLrWWi59a9k9sNbNkln1dF5tElvT/Jf9dOOW9bptXJtmK98u3bqjo7aRZu/Mm6b5H3hhCE8= -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Exports a CSV file of disbursements. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx b/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx deleted file mode 100644 index f349a4269e..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/export-payments-csv.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: export-payments-csv -title: "Export Payments" -description: "Exports a CSV file of payments." -sidebar_label: "Export Payments" -hide_title: true -hide_table_of_contents: true -api: eJzNWG1v2zYQ/isEP7WFZDle6m7+5sVOl61NgzrpEKRGQUkni7VEqkcqqWvovw9HyY7cOM7LEqBfYkl3vHueI3kvWXIrZoYPLvj4e6HRGj71eAwmQllYqRUfrARMsIPJJ5bIDJhOWCEWOShrOtzjugAUpH0U8wEHp3/SyA8mn7jHC4EiBwtIrpZciRz4gBsrbGm4xyX5+VYCLvhN7yKyLBc2SplWzKbA6mUEgt4aIIQD4VspEWI+SERmwOPGLjJylGjMuUfIMh0DH1gsSRqlkAs+WHK7KGo8KNXsBoTT23ySSVXmFL3Rx+HhKff4x/FwdM49fjI+Hh0dv6Wn4dlkPOIen5wdHIwnE+7xw+HRO/fpYHh8MKbHqcettA5rE7hJHZuKUIu8cKLaSeWtA4gQgbwE/CLj3VE8OzsaMZsKyxAKBEM7wwRbrWeyjmwsrAiFgaeL5Qb+sB/2+29E7PejqOfv96PE/yOEN/7r/l4sRARv4v3f2/QiBGEh/iLsF5FYwN0cP6hswRBsiWp9OmvOAoE1tpgzxGwqDbGFDjvUmAs7YOfn5+f++/f+aPRM7Hvdbt/v7vnd3i0cQ0g0wlOQrC39QiyNRrub2KGELGalgZhZzUh/I8U84dVORJnZjci37nHr47RqEYglQuSg7mQxWqmxRKNjIdXsuYkIE7UY1G8EixhMyaMptDJgyEqv26WfTdTb8jr3eKSVpSxHzuG7DSJzSc+3Q0rcIaOLLpXABa+qqvL4fnfvpsszJUqbapQ/IN509Sp4tdWLDr9CRFtVINUbK2tCgKjxljNpUZi7LTRV6FpPlXkISCZyMEbMYIt5x2x96tcw+LG2bIPZNYqVn/3uXsvyzytqy6IoMhm5mhp8NRSx5bN5c1v0280tOtQYyjgG9Sz7sz181z4fEoaNVbTOQFSitAvXbPwJAgGHpU354GJKNyIHm2pqVWbgAAsS8aBuXEzQugIG8HLVtJSY8QHnZGBlf0JBqHm2vazJikL+AzezxN//ntaZjpIE7QYo29D0mJEzBTG7kjZlQrHxpPe6zwqUl8ICm8OCkkiTlIbNRop2YkpBxHR6K3pPtEPTtBYTC1kmkI2kCUs0QCzZSSYsXVw2PDniHie6NcpeZ6/TpRiUeU63uW6Edtt4MRmdvGSSegurdcbCUmbW0dQ4E6qBaijF52IOLCyzeauOaSbYDHVZUCZCiGQhnUBfupp97V2BvdI472zt1X4tiJ/VZ3VKhZhcKqYLUL7RJUbACtR0Z+r6LU0DhbpcXaxazZ/MeUyo2AkiHQOLhGIhsESXKl61x4nOMn1FdQeh0EZajRLMgHD47MLU9oLm149bQfKLJkh+KKI5qHj6IrW2MIMgmEmblmEn0nnwIAsvB8yRX0NZMMolQlKEU2CNmmMlVYLCWCwjW2JDkPbF3rWnnQcwS9Clsv9DbWXiLm5XELKV7qPZpJDlfpQKtGYn5JZeYBEgyIVUQfNhJ5+7aPwFWc6cIYc/hiLTCzpedzJhpSG9eRkCKrBgOp8pTVnA3HxIJoCXMqK8tKLVwOxonAVOydeJbxo1j2cyAmVc5l8lwEJEKbCey1N1fiZbgyC4urrqCCd11pqlJnh3dDA+noz9XqfbSW2euTxZaGNzoVqG65mXnVxXgo00s7wuiPcYj5ti4HqoIhNSUWvh0C6b2nPRDM3GVaPG59TjqTaWpMslTWVnmFUVfa57T6pJsTQizFrd5A6Y95+jtwKew6I9sl+KrARXD72HwHj4ILoDzOb4+0hETzk27sC6ZZZ9VsD3HAHvh3g9mT4S8h3D3a7zVg+Oj/R79zi2w3V75Lv2P6UXlATAtZPequGi61gvHEYRFG3U6+lpo/l8O6Z/GIkbHePcdYzNA1ldidSiZfPn3q92TX8pRFuXLJd1P1pVa/1adOuKhtpKm6IzrarqPxK+AXI= -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Exports a CSV file of payments. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx b/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx deleted file mode 100644 index bb5d9e34e4..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: export-receivers-csv -title: "Export Receivers" -description: "Exports a CSV file of receivers." -sidebar_label: "Export Receivers" -hide_title: true -hide_table_of_contents: true -api: eJzNWNtu2zgQ/RWCT20hW0622we9eWsnm912W8RpiyA1CkoaWawlUiVHdr2G/n0xlGTLieNcNgH6ElnicOacGXIuWXMUM8uDKz7+WWiDlk89HoONjCxQasWDdoEJ9nbymSUyA6YTZiACuQBj+9zjugAjSPws5gEHt+G8FXg7+cw9XggjckAwZGzNlciBB/wH97gkIz9KMCt+3fSQWRAmShmCyVlpIWaomZNlmBpdzlKGKWzAsCLVCr6pMg/BeAxyITOPCRWzsxHhNPCjlAZiHiQis+Bxi6uMcCTa5Nwj5JmOgQdoSlqNUsgFD9YcVwWJWTRSzXhVeRsGFgWW9jCN8U8RIcsFRinTyiGut5Ejd/AvRZYBPiFUj4Mqc4rv6Hx4csE9fj4eji7d8/RscjE+H4+4x0/eDU9PxyMKPkp0djbx++IwTWqeFVkWeeFEapUdZ0QGBEL8TeA3kSCYw275oLIVM4ClUdvjxDAVyIQB1ihjThPDVFoWC4Q+O9EmFxiwy8vLy977973R6AlD2+V3PBi86Q2OeoPjW0iGkGgDT8KyVvUL0bTa4GFmJxKyeHMrSX5L8ClPcAyJKDPccX3nYHc+Trs3M5YGIgf1IItRK8YSbRwLqWa76e0ZmAgbdSjUb4SLKEzJoi20smBJy/FgQI9d2HtzMfd4pBWCQmcdfqIf2QX9vh1T4o4ZD3golTArXlVV5fHXg6ObNj8pUWKqjfwX4l1Tr/xXe63o8DtEFKzCUI1AWTMCY7S55VSiEfZuDU3a3crVOZ9U5GCtmMG+tF11z/0GBv9HI9thtkXR2nk9OOpovr6j1iyKIpORq4P+d0seWz+bNRei326G6ESbUMYxqGeJz373bW0+xA07u2ifhag0EleuP/gDhAEzLDHlwdWUrkQOmGpqL2bgAAta4n7dbFi/ewcsmEXbaJQm4wHnpKE1MCEv1ES7ZjZsRSH/hpuJ4q8vF3WyozxB4QCFDU+PWTlTELOlxJQJxcaT49/fsMLIhUBgc1hRGmny0rCJpOjmphRETMe3ovdEOzRNIZ4gZJkwbCRtWBoLOShkHzOBdHPZ8OMZ9zjRrVEe94/6A/JBmed0nQN+kQI7rOPFZPTxJZPU4qHWGQtLmaGjqc1MqAaqpSyfizmwsMzmrBAr0uK+CjYzuiyaXCQL6Rb0wtXtrXUFuNRm3r/h2l8P4lf1VV1QLSaTiukCVM/q0kTACqPp0tQlXNoGCvV1umgbumvq6h6UFiIdA4uEYiGwRJcqbhvCRGeZXtalp9BWojYSbEA4euzK1vr85tmLO07qFY2TeqGI5qDi6YsUsbCB788kpmXYj3TuP0jDy4A58hsoK0bJREjycAqsEXOspEqMsGjKCEvTEKS44F0x7T+AWWJcLvs/1FoVd3FbQsha2UezSSHLe1EqDNqDkDtyPhoAPxdS+c2Hg3zuovEnZDlzihz+GIpMr+h43cmElZbk5mUIRgGC7X+lNEUjmP2QTMAsZER5qaXVwOxrM/OdUE8nPduIeTyTESjrUn+bAAsRpcCOXZ6q8zPpCnx/uVz2hVt12pqt1n939nb8z2TcO+4P+inmmcuThbaYC9VRXE+q7LxTCnbyzHpbEu8z1TblwLVRRSakou7C4V035eeqmXXrdre1OvV4qi3S8nodCgufTFZV9LnuQKksxdKKMOu0lLcCfeoZeC+rOayaaXwhshJcxfQegvIxI+4BJJup+pFwnnS0PIBzz8D7vIjvOSbeD/JmfH0k5jsGwEPxrYfLR9q9x8h2wHZ3LtwCmNKLkYTAdZxe25LRba03DqMIii7szYC105+ejunfLOJGTzl3PWXzg7S2S2rV0Xm9O6xN01/y0d4t63XdsVbVRr5eunVHQ62VJu9Mq6r6D9uw+Rc= -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Exports a CSV file of receivers. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx b/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx deleted file mode 100644 index 7708ea7ab1..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/forgot-password.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: forgot-password -title: "Forgot Password" -description: "Sends an email with a token to an SDP user who has gone through the Forgot Password process." -sidebar_label: "Forgot Password" -hide_title: true -hide_table_of_contents: true -api: eJzNVk1v4zYQ/SsET7sLyUqDtgfd8lVs+rXG2kUPTrAYSWOJtURyh6M4XsP/vRhKTlyniLEtClQXSeTwcd4M5w23mqEOOl/oi54btGxKYOOsvk90haEk4+Nvrmdoq6DAKuzAtGptuFGg2K3QKnYyMbueqj4gqXXjVANB1c6i4oZcXzeKG1Q/OKodqymEsHZUKU+uxBAmOtHOI8Wdbyud62U03NvpRBN+7jHwpas2Ot8euTbC+j3saKwqYNCJLp1ltCzr3mXv5BXKBjuQLzE1hJVEIBIT4rzxqHPtij+wZJ1oT+IdGwyyZDDLt3uzwGRsrY/jdRPD5JaRuIRFJ0KrA9b5iLETXiV4Lhv4FCN5GnYeA750pAivLqbzq/cX6gFaUw1p28mTHNBi6jEOBO9sGBicn52dDuKQ5oCWVehLSdOyb9vNV8SzwxCgxtMR3Ru+IC9U2HArQ78MRh9HInog+u3fUbmESn0czsAJd09kmsjR6ZRcI4Npg4LC9RzTPSzcJRofmSCc3ClSwUfofIsHG+tbG1OrjPW9LHqGWxpsq09L56RY9t/KBPWUgGQcL4CebAogZRGrIBVboBStsYw10nBwxI3HtHQV1mjTsYzSwlWb1EIn/sv34AjaYJwV6djqFW50/urKRD9A2z8h7O4T3SE3Tordu5gnD9zoXGdD7af+ufgD0gPSsFVPrc51BAhY9mR4M5N0Dhm7RCAkkbKDmIM3P+HmRdp+/H0udVnFYoK/qF+igqktVqPKWXUzO//ue+XJPACjWuFGJGsMiezmyHwZCjDRRsAbhCpGVf6XLnozHuQZY9sCqWsTip4CdlJi0xZY1EFdTG8lWEhh8PJ88s3kTGLQdx2QhHneoHod483sevpWDoPos2tV0ZuWI01HNdjR1XgIOlihKvp2pTxsBCWOgqrJ9V7Ui7A03sQJ94AUj/d+d4u8drSavBSp/52Ld/bOzhsT4pZWOY82Da6nEqUJSU0qboBlenDFSVfze/0+gksU2CpOyIlXJVippqXrbRUXNvLTtm5tbK0IvQuGHRkMufiRqkUY8LLxnVYHQUr9GKS0gHKFtrp/0zD7kGdZbbjpi0npuuyrEN7mKpJ/cmWjRBXBSIQbVKNZZGXskiAw9SX3NBKUvPCpnE6+gtmSoij/G2p7iFPc1liove0/ZtNg26VlA8ThVZcP7DImxKwDY7Nx4FU+p2i8x7ZTESj6X6Fv3UaO10kmqg9it+oLJIuMYXInMsVIXfiwnCE9mFJ0aU9rdHPiqM6iUeqWaRjNEt2aEqX/5tsnAfRQNqjOo04N+ixYeZat1+sJxNmINi4N2c+3Vze/zm7S88nZpOGujTopbaADewB8dF08lpntc2v/r2+nYydhfOTMt2CsNPdIdTv2rYU+7lv3iW6ks+ULvd0WEPA3anc7Gf7coyj54l66IhkopC8s7nfJvm0899SrgWE6Fweem6hcZHbJ3uiiLNHz8fRhi51+mM11MvReuXC5SswI1nK1hnXsqLvdnySKRJ4= -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Sends an email with a token to an SDP user who has gone through the Forgot Password process. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx deleted file mode 100644 index f6cf5ccf82..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-all-assets.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-all-assets -title: "Get All Assets" -description: "Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement." -sidebar_label: "Get All Assets" -hide_title: true -hide_table_of_contents: true -api: eJzVV11z2jgU/SsaPW1nbOzwkez4jZYkzTabpgtpZpsyO7J9wSqypJWuoZThv+9INgQS2vRjO7PLA9jS1dE5V9I9YkWRTS1N7uhrM2WSf2LIlaTjgOZgM8O1f03oGWBWgCVYABHcIlETwuaMC5YKIMxaQEtQEa10JRiCD8yN0rlaSJKqj4RL33YFCzLgNq2MhRIkkolQixa5UgiJD1A7PEhZWSSFEjlhJGWCyQwcECOaGeRZJZipJ3dzVxYIx7o/35miRQOqNBgPeZHThJ4D9oXoe9Y0oAasVtKCpcmKtuPY/ezL79+L3gzKlESQ6GKZ1oJnHj76YN2AFbVZASVzT7jUQBPKjGFLGlCOUNqddpV+gAxpQLVxJJHXNHi+E2PRcDmlAYWPrNTCNU0mDLJu2gm7x2kcdvO0G7Ju1g2Ps04v/jXunZzEPbp2NHM4hPRAn8+hj92d5GY4eOFAuLUVmK+FqaMJy3MD1u4Bnj9/PuieXJwdX96+Ork++X1w+nb44vaPk8H1ze3bztWfncHozenbs8vuVX/U7b952Xl3eXl22a+VGGAI+V8MDxGZKFO6HpozhBB5ua+kHbc7YdwO487oKE66vaR39M6BVjr/90FzEPCDoMcNaK8BXT9M9agAMkQQ9ydgu5GQo0fyq0HX7hPQbnz0eFvfSFZhoQz/BPl3bOnPbF0wRh3YLGunEg37is1vkWG1GyerMgXjIEqwlk0PbOla5jaPWxr0SiHZk3nPYjNPNz7aQX444mcC10vTebw0Z8qkPM9B/vx1OazunsBXBHgdFrLKcFzS5G5FnwMzYPoVFjS5G6/HLg1YKFd9p+C5MddFo21BtWDmYKwfXRlBE0rdsA3q0Kmshexi39dXzV/B8lFJ+u125IwhJxNlfO5BYpPAgFg+lZCTBceCMElOh+3eMdGGz52DzWDpnEOy0h+mZtlqfwwod+AFsNxtS1ci5UR5Ns3h25zNPa+7Fgzd8Sf96wsaUCe3ZtluHbVil4OqLJlZPjjfhzF+GQ6unxFuCSOolCBpxQV6mbsW6l25ZDMgaSVmRLOlQ/GtjEyNqrRzNQMZ19x3qDkYb8Sb2SXgQplZ61Fq/3sU38v3clRw66eURGmQoVWVyYBoo9yhIFgw51ANFSUJKg9/AC4gTOa+wxkjyZgkKZCJqmTuBxbuRQi14HJKDGhlOSrDwSaOR0jubI0XNb/h7qUk1E2SwpRlM5D5+JcCUdskiqYciyptZaqMvgnhWUK8+C2VJXGVg3FZ39uaMK+Ky4lhFk2VYWUagW5d8Kk1bX2DsonxhetHpG0gntK2gJRsYr9bTQGiDLOCGbRfpLwTF6EBiErGZdQ0fFHPUzJegiiJB/L8c9BCLd32elIJqayLm1UpGAkItvXelSkEU9rXkyGYOc9cXdrIami2lJlGPihUk9A2YQEVPANpfb3fFEDNsgJI29epuj47rCSKFotFi/lej9YMtdHlxYvTq+Fp2G7FrQJL4eukVhZLJneAzwFJXwiyvY7vVZnVvfv97/+ENE6F8BEjLRiX/gbqUrlq7PCONnY4DmihLLqW1SplFm6MWK9d898VOIO4Gwd0zgx30r3DBhs3cv45A+ch/SwD7bx2zkRVe+SD28OeL5+fjmhA2SNbnXlbbR4c+qZLLnewHxpkTcF9r4PPDFmtatNer7fxdddnRzQSN9Eug+P1ev0PXdMlYQ== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches the list of available assets to populate the dropdown box in the New Disbursement flow. Note: the organization must hold a balance in a particular asset to use it in a disbursement. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx deleted file mode 100644 index b2f213c225..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-all-roles.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-all-roles -title: "Get All Roles" -description: "Fetches available SDP roles, such as owner, financial controller, business user, and developer." -sidebar_label: "Get All Roles" -hide_title: true -hide_table_of_contents: true -api: eJzNVsFy2zYQ/ZWdPSUzlOi4aQ+8uY2TpukknsieHhRNByRXIiIQYBdLKapG/95ZiLLl2ImbNun0IorYxcN7C2IftihmEbGY4lUkjjjLsKZYse3EBo8FPiepGopgVsY6UzqCybML4OAoZhD7qgETIaw9cQZz642vrHFQBS8cnNPRso/WU4zQR301voaaVuRCRzzGDPVpdLWXNRb4guTMubeKjxkyxS74SBGLLZ6enOjjNr83rzBDXY68aNR0nbNVwsvfR03ZYqwaao3+k01HWGAo31MlmGHHurrY/QJJ1VGaYTYbzNAKtcfjUdj6Be52uwzpg2k7R0fTp3gtDzO8rsnvNzXBDA9FUf1aPJx9ZTCFe3ry5G7BrrzppQls/6T665WOmAPfUyLVJGziwwhRjPTHeb5vS2KFaClGs6B7d+B21QYa+DoI3JJ5w+KwztOTJ0fIH8/4lsD7rfnu7tY8D1zauib/7fflfnU3BP5GQtIRqerZygaL6RZ/JMPEZ700WExnu5mWQZqgx3pBiZvREObaCWLOwyGPxCvtPQrRs8MCUeceoCcqda/meIGbU9rZV6TH9HYxf/ntUjtODfPAaQPIy1DFDKJdeKphbaUB4+F8cvr9D9CxXRkhWNJG+5I3rcKfDXuXZmozUPCGTK3f5k7f5yGxsaK1womQc4bhmY1lz5Fa8gIXzsg8cAtnFy8xQ5W7Z3k6fjI+0Rr0bWt4gwVeNgSfx3g0eXbxGGwEAxKCg7K3TpLMwAvjB6oRJEBrlgRl75bQmY2ipFEDCw59B2EOTJXtbAqEFTHI0eqeZB14Ob5T2v8fxXf+nb9sbExLeggd+VEMPVcEHQc9GSCNEQ3vqQQPEhL8PXB7k9JAFWqCyngoCeah93Wa2OiLc2Ft/QKYuhCtBLYUC+Uxgmnc4+XDc1QfFWnUDUUalaZakq9njxqRLhZ5vrDS9OW4Cm3+RQiPC0jir6lskgEbqxVuCIa0pMr6OZso3FfS8yBQ90Ue2tPxFyibc+pe/0baAeIhbWsq4ZD7j9U05NpR1RiW+FnKR3m5MFHeGuvzYeCzeh6S8TO5FhJQ4l9T58JGP68HlYCa/wKWfUnsSSiO32mbEuI2vplPiFe20r50kDXQHAde5ClpFOajOKRl6GxFPqamf2iAnakagtPUp/b9WbGKPF+v12OTogltmBrzX1/+dP56cj46HZ+MG2ld6pNdiNIafwT8ggTOnIPDZe9Wk9neOOB/cAcdrETog+SdM9brtSNp3Q6mNcVkWnonTXRnGTYhiga229JEumK32+nwHz1pI5/OMlwZtso32WF2cA31uSVprz+rKurUGFfG9Xsv+8jqb5noi/NLzNDcsb9lsr/hj6IfQn5zhP2xke0p6O8u+8SU7XZvrrvddf4+9MkZg8RDthZSL6N/AR1/ZDM= -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches available SDP roles, such as owner, financial controller, business user, and developer. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx deleted file mode 100644 index ce94658433..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-all-tenants.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-all-tenants -title: "Get All Tenants" -description: "Get All Tenants" -sidebar_label: "Get All Tenants" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Get All Tenants - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx deleted file mode 100644 index 5533067cec..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-all-users.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-all-users -title: "Get All Users" -description: "Fetches all SDP users within the organization, whether they are active yet or not." -sidebar_label: "Get All Users" -hide_title: true -hide_table_of_contents: true -api: eJzNV99v2zYQ/lcIPrWA5F+x48RPy5a06zZ0wZJiD2lQnKSTxZoiVfJk1zX0vw9HyY6dpMnaocBeJFs8fvy+O/I+aSMJ5l7ObuQ7j87L20hm6FOnKlLWyJl8hZQW6AVoLa7OL0XNYWKlqFBGUIHCujkY9QU4PhKrAqlAxyNrAQ4FpKSWKNZIwjphLPVkJG2FLkx4k8mZfI10pnW7fiQd+soaj17ONnI0GPDtkNJfSLUzXoCoYK4MEGZCK0/C5oJRxDkSKM1gqTWEhhgDqkqrNKza/+gZaCN9WmAJ/IvWFcqZBOdgLSOpCMtAwOGnWjnMOENYgtIykrlynj4YKJEjM774D61OGUkNd4POagw57eBt8hFTkpGsHKeAVKtSZXsUPDll5jKS+BnKSvOj4fToOMHsKJ4mp6N4PD0exCd5PoonwzwZnCAOpqe5bA6IPYn3my0Mx99RfTL83CJHt/IfRDZbmU9k8d6MZj9jd8OJtRrBhPHd6jdteuQUxunxZDKJh/n0KB6fJkcxjIbDOD+dJNkoOcH0dHBYm07ngcygZSelvf8Urr3UlruKzW5khkvUXCQu3x5bcjU2UUdqko+zfJhlcXoyzuPxyQjikzFk8WQ8zPNsfIzTCTwgBQa/l1SuDJhUgf7AG9tZrR/wy0F7bHjLKQrV4xPBRdr/72XTcJbHg+HD4/XOQE2FdeoLZt9xhL6yx9E56x7dPfiZHPjnETwB1ftxpi6TVluJ3sP8kW3cytxtph0N+daSOJB5x2K7zngw3EO+P+NHArelOXpYmlfWJSrL0Pz4ujyu7o7AvwgIOjymtVO0Dif5ZwSH7qymQs5ubnmXlkiF5aM0x8ANeEj2684MPLol/+LJtePTIXnWFvSKRbY69qHvGlGlfkfuRIdp/O3va/axTOTWhdSjoS5/kfBqbjALDifAiIur0eRYVE4tgVAscM3+1Z3bs65qYSb3OwYvEDLeldzkTG4Dm+7oXRFqDU6cK5/UzmOJhsSlBsqtK8XZ5RsZSZbbshz1hj1uab4uS3BrOZPXBYqnMV5cnV++FIq9kazVIqmVpiBz36a9ICtKWKBIar0QFawZJTwFMXe2rthKHaaqUmHALltL361ukFbWLXoPUvv/o/jevDfXhfJhSSNshSb2tnYpispZPhOCCiAebqlYI8gG+EfgIgEmCwOpzVCkYESCIre1ycLEgv9obVfKzIXDynpF1in0M+YRixvf4vW7e5ztJSmuuiTFCaQLNNnti4Ko8rN+f66oqBP2g/43IbyciSB+R2UtuHGA4gwXKLqwoEqZ3IEnV6dUu04g14Weq2nvG5TlLvSt/yJtC/GcthUmYhv73WoK1GWcFuDIP0l5L65PDrFfgjL97sGTep6T8SvqUgSgwD/DSts1b69nlYjac9yiTtAZJPS999ymCF3p/8yv0C1Vyn1pK6uj2bNu3g9Bsc1j34VFUqsUjQ/tftsAK0gLFKPQp9r+zFizfn+1WvUgjAa0bqrv//Hml4u3VxfxqDfoFVTq0Ccr66kEswf8GkmcaS22HwUHTWZz530/5vOkcw/Cz9SvNKjwshzkbTqHupH19nOpsJ74wWaTgMd3TjcNP/5UI/fsm9tILsEpSMLL7G0TbQ2CLW2B3NbP0hQrdr8l6Lq1rXt+fuCUry+uZSThgdMtgtN1Pxh9O2TWe9j3PaulwFd+q310ymbT+mjT7OLboa/O6CRuozmBt03T/AOX6wb/ -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches all SDP users within the organization, whether they are active yet or not. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx deleted file mode 100644 index 9b8346dfef..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-all-wallets.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-all-wallets -title: "Get All Wallets" -description: "Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets." -sidebar_label: "Get All Wallets" -hide_title: true -hide_table_of_contents: true -api: eJztV99v2zYQ/lcIPrWAZDtufnR689a06za0AZKuwNIgOElnizVFcuTJrmvofx+OkmMnTpO2Q4E9LA+xTd59/L4jdR+1lgSzILNL+dbPwKjPQMoamcj3oDVSkFeJLDEUXrk4kcmXSEWFQVCFQqtAwk4FLEBpyDWKZUwTztuFKtEHQVY46xoNhDGl9NaVdmlEbj8JZeLYG1yKFyrkjQ9YoyEx1XY5EBcVCrvDSoTKNroUhbW+VIYRl4qqCHFnXZHj1HoUATUWpMxMgHDgSRWNBr8XPbVegCh3KHSrK6NIge50epwyWBCgtTh/cZYWtnZAais7DGQirUMf6b4uZSZfIU203hQzkR6DsyZgkNlajkcj/rhd38lNVZc3WYU1hIY4GJzTqogLDD8GzljLUFRYA3+jlUOZSfAeVjKRirAOO+M2/4gFyUQ6zzRJdTxUuRMTyCszk4nET1A7zUNHUMJPWB6lh0dHkB6ePB+nMEJMD45HJ8cnOCoxP5BtIg3U+DDSnyr3YEhMQlCBOKeyNTqYPZJXEbmQDYeLLh+cGxS25vyA7vpgdF1ohYauS1uDMg9jgVNpiYvBPlaJ6K61MvPrvYp+NadhKB3DM17hEQjLa6D7kKbW1zwjSyBMSdV4C348Gj9LRyfps4OL8Sg7GmWHR4Pjw+d/MXDjyh8B3CaSFMWg7sTKlv8SeTg62D+o7ww0VFmvPmP5HWf0C2cRvbd+X1XLCsjDV5zmQEDNbpxp6hw9Q9QYwr1nrZN5U6MbGvKNJXFL5pbFZp3D0cEO8t2MHwncbc2z/a15aX2uyhLNj9+X+9VtCXxFQNQRsGi8opXMLtfyZwSPftJQJbPLq/aKy0CV5YY6w8gNeEoOty0yoF+gDzG98VpmUnLeBvacZXZKdsG3HdOp35Fb5u1C/vb+QjQBy84hGqrQUF/BRAQ1M1h2HgRGnJ6Pj46F82rBzjTHFbtB1xLlpN+3jbtyj5IVQsnnsuXfUxvZ9I/fOaFmo7rlimcaiJ9tMTl7LRPJcjuW48HBYMQ1aOoa/Epmks3rYYwn5y/OngoVBAiyVou8UZqizF3Ljf5dwxxF3ui5cLBilDgKYuZt49ioPBbKqThhF+ijIW9WN0hL6+eDvdL+9yh+MB/MRaVCXNII69CkwTa+QL4p8FMhqALi6Y6KNYJshL8HLhFgyjhR2BJFAUbkKKa2MWVMrPiH1nbJtxOPzgZF1isMGfNIxWXo8Ib9Z7p7PUldX6Q0h2KOprx6srGjmaKqyTsr+haEp5mI4m+orAS3DlCmu+v1YVGVMlMPgXxTUON7gbwv9NieDr5B2dTHzvVvpG0gHtO2xFxsYr9bTYW6TosKPIUHKe/EDckjDvnKMuwHHtTzmIxfUdciAkX+JTptV3y8HlUimsBx8yZHb5AwDD5wmyL0dXg7PUe/UMXunaenObB+NoxBqZ2moQ9LpFYFmhAb/qYBOigqFOPYp7r+zFjZcLhcLgcQZyNanxqGf7z+5fTN+Wk6HowGFdU69klnA9VgdoBfIYmJ1mJ7xb7VZtZb//v/zeWRN5feCgk/0dBpvke3/V6te8O9lMvta2FlA/HQep1DwHdety0P/90gW9DlVSIX4BXXNpp4svE7dug5sktNigId2/kCdNO58J0Lyi3rf3V6IRMJe8Y9j8bdf2H0zZRZ7WDfteCOAv9vky+krNfdtaBtb+K7qS9m9BI30VzCq7Zt/wEuCm2D -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. The initial list reflects all SDP-compatible wallets. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx deleted file mode 100644 index 89fb6dc344..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-api-key.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: get-api-key -title: "Get API Key Details" -description: "Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons." -sidebar_label: "Get API Key Details" -hide_title: true -hide_table_of_contents: true -api: eJzVWE1z2zYQ/SsYnpKMJDpu2oNubuwmbjOtx3YmB8fjAcmViJgkGAC0omr43/sWBG3qI3ac1jPNSSSx+3bfYrG70Cpycm6j6UV0cHIs/qCljS5HUUY2Nap2SlfRNDolZxTdkBVS2JpSNVOpYPFrWopkKZSz4vhwIiDXmMoKl9PtckZOqsIKVaVFk6lqLmoypbIW0MCrMmHIAj5lW3YkksaJTMNUpV1QIg8oU9fIwmPeyKIhMdNGWEobo9wSINJCfxKNIg0DktGOM/j+hhxcAS+s1NLIkhwZ5ruKKrxAQmVYUsyzli6PNsmfw3ZTqc+wqDKqHMiTEXo2ZAklQ58bZQgmnWloFNk0p1JG01XkljWbYZLVPGrbSxa2Nbwly+v7e3v8s261D58Joc+EbdKUrJ01RcH2Ul05eMOasq4LlXrK8SfL6qtt8zr5RKnjIBgOkFOdcZDfcnEzAu+32HPoh/TbUQjmQ1Bvm1JWY2xWJpOCBCvtAhukyABTGiOZunJU2h2R3TT2TlnHGzVMuLmRiFsmnIZNZYdGZVHoBWVXqv4vjAY0cXwiZJZhw7HbAkxfHx+eCjgxR/yhTF9qZZZXmXQ7o4fYlBKbHLHA2CnEeNPgESP4zRcstJmZsJEi3uB8Jd13mviQU7V2qBfSioA6NJAsvyGZLPJnketef9PZps6ewNlCYlcC9NDKozwegmy6zWtXjX0ixy17DStOuYK66sAVrW3546u9l9v1430lG5dro/6mbL1avIhfPKZAkDHa7Mx7+uKMtA8jWCddM5SrmjIhwxAljoWc78j8jhl9kWVd0MCN6E90hTVmd170dhCPAfKmRoe8q2Q+lTW/RT9tb9Fv2iQqQ1F9kv3ZHb47m48Jw5qWp/Pq6x2L+/ZMN9WPmnaPTI+e6q7MeDXMjFOyujEpDQLUm+unGD+V/ErSkDlADuH1kqcFjCy55llmTp4mTynTKJa1GiPgNl6prI0Yxdz0o01jCohErN2Dn3Hku9AMTdw1ulp1U9L6tv7+4dzXH9+mObN5COhCMxJWzSssLZTLMcqJo7P9n38RtVE33IjgG49jYco6CIfCa/YDV45BgLek5feZ9t6EEnfmqCikEYfKJo2xcL1y4qSQjispl0hgMN3Oy/3Jy8kex6ApS2mWYWy7H+PZ2eHJc6F4qHVaF5g8VeE8TW3msgquWh4VSnlNWC+uRS2XjOK/SkwTuqm54xoMxbXyCxpe+TLeW6/ILbS5nuycLP9fLn6sPlbnPBaxyUrgOFXjkLU4XHzMoCYdL3euYOhwuu5njg24kR/veSHVGOJTICbUpb5XzPmFxyS+FRiqtVUOKUJ2yn6MxYXt8OLwO84GQRrXIUjjRKbXVGWXz3LnajuN4znSsUkmqS7jRyE8nwpP/taVpeACJlW40gQxzwrpiuOOUR+3EhMI9oPsvXs6eQSzmfH1899Q6yEe4ragRPSy380mp6Icp7k0zt7r8kAudoYoLuFHHD7cy+chGm+BLDyQ9z+jutBLTq8HmaDIsdx1gx6B/CULajixuCyW9q/ZGWqrSrku9bSCmxMcxNgLjfVsbIMY5kH84ILHFa0vgLVEBRb7vk519ZmxALVYLCbSr3q0oGrjd8evj/48OxpDZZK7svB1Erwd7lADYNxwRbi7i8Putr1ZalZ3nfgHu8yH5uTQXmMkAbpGG6K3Co3wIuobIcSnuM+i5+UIEq+sVom09N4UbcufcYvl3nCBxxtpFF9BfbdEqvEzWuxMFpbuCd6z03DNfy6+8X+BnQT6lluxhA8Ad+tRxCr+D4n2ElKhO7KH3cJBmlLtBipbc8rauPDm6ByycqvNd46FB0bf6c5mw+5c6K47X1FZrbohom1v5bulr2oEirfMmQFGon8AeweBYw== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Retrieves a specific API key by its ID. Returns the API key details including permissions and restrictions, but does not include the actual key value for security reasons. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx deleted file mode 100644 index 7cf1933567..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration.api.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: get-bridge-integration -title: "Get Bridge Integration Status" -description: "Retrieves the current Bridge integration status and information for the organization." -sidebar_label: "Get Bridge Integration Status" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Retrieves the current Bridge integration status and information for the organization. -Returns live data from the Bridge API including KYC status and virtual account details. - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx deleted file mode 100644 index 9a02a638f8..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-organization-circle-balances -title: "Get Organization (Circle) Balances" -description: "ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`." -sidebar_label: "Get Organization (Circle) Balances" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -ATTENTION, this endpoint is only enabled when the tenant distribution account type is `CIRCLE`. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx deleted file mode 100644 index 59647aee5e..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-organization-info.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-organization-info -title: "Get Organization Info" -description: "This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account." -sidebar_label: "Get Organization Info" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint returns the organization's info. It is used in many places across the UI. It returns the name in the navbar and the public key of the organization’s distribution account. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx deleted file mode 100644 index 6467cf18a5..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-organization-logo.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-organization-logo -title: "Retrieve Organization Logo" -description: "Retrieves the logo of the organization for display in the UI navbar." -sidebar_label: "Retrieve Organization Logo" -hide_title: true -hide_table_of_contents: true -api: eJzNVcFu20YQ/ZXBnBKAEl0D7YE3tzFSN0FtVA56sHVYkiNyq+XudnYoVRX078WsKEdJUBtpeygvJHeGb98bku/tUUyXsHrAW+6Mt38ascHjssCWUsM25tsKfyFhSxtKID2BC12AsMrX4ew5WAWG1qbozA6sz/UPN+DNpjY8xwJDJM6dNy1W+JbkfNf3oQtYIFOKwSdKWO3x8uJCT5+SuX2HBTbBC3nRqonR2SZjlKERklkSJjNoLTU9DUavZBcJK0zC1ndY4CrwYAQrrK03vMODHgUOJH1Qdh0JFhiN9FhheS6zdEemiXhDrNPb48gOK8TDUpebka3sFrr1Ucb3ZJj4alSsJyYm2ne0w89H/dOv9zAmavMwzSg9eZnUFZBs56mFrZUejIfrxeW330FkuzFCsKadDtmbQeF1t8CnN1qgVfCeTEuMKtT6VchsrDjtXwg5Zxje2FSPnGggL3DnjOig4OruBgtUuUeWl/Nv5hc6g3EYdHoV3vcEz2O8Wry5ew02gQEJwUE9WidZ5vl0E0iAwawJ6tGtIZqdouRVAx2HMeqnx9TYaHMhbIjzp3ba3ZNsA6/nX4z2/0fx0T/6+96mvKWHEMnPUhi5IYgcfqNGQHojWj5SCR4kxNPP9xlcAca3udCElqAxHmqCVRh9mx/s9ca5sLW+A6YYkpXAllKlPGbwkI545XSetWdDmsVpSLPaNGvy7fJVLxJTVZadlX6s500Yyq9CeF1BFv9EZQf6Wxvrjz4ztWVV1q/YJOGxkZEngfpe5KV3Ov8KZSvOrvJvpJ0gXtK2pRpOvf9YTU9umDW9YUnPUj7rK4WJysFYX04Lz+p5ScaP5AbIQEfzp+jCTj+vF5XAmLRvPdbEnoTS/FFtSoiHdLtaEG9so750kjXRnAfuytw0C6tZmtoKdLYhn0gd7WSA0TQ9wWX2qaM/K1ZVltvtdm5yNaNNj6by/c0P1z8vrmeX84t5L4PLPhlDksH4M+BTGMJ5esEUX584zv5jTP1XETqFh9AfUkZnrMfDpG4/hdUDngPqaJTZssA+JNHyfl+bRB/YHQ66/PtIauAPywI3hq2pNQ4elofilBaab2tSj79qGooaixvjxmOG/U30ahA+Renb63s8HP4CJa4Ftw== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Retrieves the logo of the organization for display in the UI navbar. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx b/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx deleted file mode 100644 index 547938c8eb..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/get-profile.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: get-profile -title: "Get Profile" -description: "Fetches the individual information of the logged in user to populate the Profile page." -sidebar_label: "Get Profile" -hide_title: true -hide_table_of_contents: true -api: eJzNVlFv4zYM/iuCnu4Ax+4KbA9+Wrd2XW/DViwd9pAGg2wzthpZ0ig6uVzg/z5QttOkXdvdhgHLQ+KIH6nvo2hSe0mqDjJfyFt0K21ALhNZQShRe9LOylx+B1Q2EAQ1ILSt9EZXnTJC25XDVjFIuFW0GlfXUAltRRcABTnhne+MIojmcQfhVQ2pTKTzgNH/ppK5vAaaKCQSIXhnAwSZ7+X52Rn/nLL6BahDG4ad/MGxdJbAEuOV90aXcYPsIbDTXoaygVbxE+08yFy64gFKkon0yHRID1uuNAb63aoWjrCBUNtaJhI+qtYbXvqgLMg+kUb9Lfili2holTavIx8qB18zLHVYsw86M1AbfRSi2slEaoI2PI/V94l0WCurP8UMvECOYYdNT2UP2k6kRf4H+k84HiguZAUbMJxOLqa/YCHnBMYoFBe6Ym2kKYqezr/nTyIDlB1q2sl8sZffgELAi44amS+W/TKRLVDjuHJqiAeo2CSzx1oIgBvAEN07ZMaS/aawc66FIafHwR8z7PUPwCk+LbwPv91x0VVi5VCojhqwNJZZIoKuLVRiq6kRyoqr+fmXXwmPesPvwBp2XPZjDng3h2Ni+CA5eAOqAozHwu9XZDMmZ8rZpQ5FhwFasCRujSJ+DcXF7Y1MJMsdWJ6nX6RnnIOubRXuZC7vGhCvx3g3v7x9L3QQSpBzRhSdNhRlHp9h4Pe6VWsQRWfWwqsdR4mrStToOs/tAKHUXkeD23AvONrdAm0drtNnqf3/Uby39/au0SFuaYXzYGfBdVgC9xxuHYIaRWweqDgryPmpIT4Jlwhlq2goXQWiVFYUIFaus1V0bPiPMW6rbS0QvAuaHGoIOfOYiUUY4mXj76w6StLMj0maFapcg62W7xoiH/IsqzU1XZGWrs0+K8L7XETxByo7wf1VaTtMgxEWVWm7QhUIu5I6HAXyudBbZ5p+hrIVxvb+b6RNId7StoVCTNh/rKYB087KRiGFVykf4TJCgKxV2mbjwqt63pLxPZhWxECRfwXeuB2X15tKRBcYt+4KQAsEIb3nNkWAbfh5NQfc6JL70iRrpMmzIIugmVvNwghLpNEl2BCnzNQAvSobEOexTw39mWPlWbbdblMVrTHa6BqyH2++vfppfjU7T8/ShloT+6R3gVpljwJfA4nHq8RJi9k/XhD+u3vNOD8IPlLmjdKWZ1wUuB+n1EL6x9tW4wLx0n5fqAC/oul7Xv6jA+7bi2UiNwq1KngKLJZ9Mg0JHmtr4NZ+UZbgeQZulOmG0fXk6nMyL6+v7mQi1bNpt47Tbnzg6JPJ7o5iP51bAwX+7pMXXPb7YZb2/QE/mF70GCVOaE7hsu/7PwGOS8iP -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches the individual information of the logged in user to populate the Profile page. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx b/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx deleted file mode 100644 index 97cf24be1a..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: list-all-disbursement-receivers -title: "List All Disbursement Receivers" -description: "Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination." -sidebar_label: "List All Disbursement Receivers" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches a list of receivers within a specific disbursement using the disbursement `id `. This endpoint supports pagination. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx b/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx deleted file mode 100644 index 2aa61d6b8d..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: list-all-disbursements -title: "List All Disbursements" -description: "Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement." -sidebar_label: "List All Disbursements" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches all disbursements the organization has created. This endpoint supports pagination. The response includes basic aggregations on payments within the disbursement. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx b/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx deleted file mode 100644 index 38f44e2d40..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/list-all-payments.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: list-all-payments -title: "List All Payments" -description: "Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information." -sidebar_label: "List All Payments" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Returns all individual payments matching the request criteria. This endpoint supports pagination and filtering on payment status, receiver ID, and timestamp. Each payment has details on the transaction itself, receiver, disbursement, asset, status history, and blockchain information. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx b/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx deleted file mode 100644 index 2d27461f6b..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/list-all-receivers.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: list-all-receivers -title: "List All Receivers" -description: "Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver." -sidebar_label: "List All Receivers" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Returns all receivers matching the request criteria. This endpoint supports pagination and filtering on receiver status, receiver attributes, and timestamp. Each payment has details on the receiver, high-level payments metrics, and wallets associated with the receiver. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx b/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx deleted file mode 100644 index 017ab5aad9..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/list-api-keys.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: list-api-keys -title: "List API Keys" -description: "Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons." -sidebar_label: "List API Keys" -hide_title: true -hide_table_of_contents: true -api: eJzdV01z2zYQ/SsYnuyMKDrux8E3N3YbN5nUE9mTg+PxgORKREQSLABaVjX6730LkjJNy19pPdOpDyYFYN++XWD3gavAyZkNDi6Cw9MT8YGWNrgcBSnZxKjKKV0GB8FnckbRNVkh81zwujnWicSQdJSKeClcRiKpjaHSidqSGYszjBiyde5gZUhok5JpFns7IIsU5kLhCW9UpqqcNcvETqGtg3nCeFNlrNsdd37FtcxrakBL7WCf5HUKZAC5xmmlS0tiqo2wBFbKLTEqLUbHwSjQFRnv/yRFbB+VdUD2gY+CzhgJWQX7e3v8uJuLTfSmTUoqbJ0kZO20zvMlMBJdOvBmU1lVuUq8s+ibZftVYJOMCslvblkREKUxku2Uo8L2xnX8jRKHicowZacaVirtrbHgUM6C4Yadl+rPGqlNwUNNFTLKyeDstPSD9SgoZUFPQ72vC1mGSF8q4xwZh9E2MBAslLWwsc8IrfW1HjrjzRB6KnpoYmZkyafMafhUtu8Up1EvKL1S1b/htEUTJ6dCpilOAo4BzqN4d3L0WYDEDPmHMd1Uyiyv+Oxuyx5yU0hsfsALQqeQ46HDY0boVQB8D7LZVtaVdN/p4ktGZR9ULOSmXvsO4uUzDhPqWSwyvan3Adm6Sl+BbC6xKy1038uLGPdBhrR57gq96nWIW2YNL065nJq28YH98t8o+HHv7f3Ocl7K2mXaqL9ge6eNvInebO0cD3QIMkabrQefbpyRz+gx1klX99eVdRGTYYgCdSFnW45+ExndyKLKqUcj+IQmfSeyWxadH+Sjhzy0aJC39dLX8ua36If7W/SrNrFK0VVfZX+2p+/W50vScMeK7TolhNKvgl8I6mkOETR+Xq4vOR1IAOvhjDxhyVNBJCsVzhtpRE1dk7HevjY5ZgM27HAnHHwTXx/9titXigtgWEK/fznzxeI1hXeBFasJbySsmpWYWiiXCVmK48n+Tz+Lyqhr7pqgxWreqFhw2G6gt+Tmz+AZVItP7Zp/T7Vn09bjxFGeSyOOlI1rY0EdN43TXDoue65nYHC4Dcv98dvxHuegLgppkMOArzePY+xMjk53BQRLQrp0LuJa5c6Hqc1Mli1Vy7pWyDlhPp+LSi4ZxY9KSJ+uK5YH3IRUpfyEBivfczrvJbmFNvPxvdT+9yh+Lb+WZ6zh7LIUqIkytLo2CWFXNdcKzKTj6YYKFNLpqhPIAdwIGE1XT3SKf0CM+W5SY1Q3fXmqWdP5Xmmo0lY5HBGyB8wjFBe2wYvaZ5j2khRWbZLCWCZzXE4vdzLnKnsQRTMcxzoeJ7qIXoSweyB88BsquAmjh0jFGQbZdpmPCscVTcuZOnG1aQPsbl2P7un4BZFNjW9h/yS0DuKp2BYUi27td0eTUV6ESSaNs49S7q2LnCGKCvCI2oFH43kqjPdAFh7I80+pyvWSj9eTkaDJ8bp5DRnF+SWL0FCxDhdd+8d0gt6qEu5LXVgtzTEKMfKLQj0NbbsMlxc88JnCHa1rgJVEBxb7vk81/ZmxALVYLMbSz3q01tRGH0/eHX+aHIcwGWeuyH2fRNwOF/4esL8eb74NB01mdSuD/7OvxFa2HK4PEY4H9GTd5nXVquNFsFFH6GAGLjy2WsXS0rnJ12sexmcY68UFXq+lUfwN5SV31IkTyynfSLGD+IqsWHw9dS+ZA6m/I9S/HZ9hrbynsnOvsu0Lo3dT5bKHPdTLhkJzNX7AZLVqNByBdeubqQct2hC71ZzDS1xG/gZb8Mig -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Retrieves all API keys created by the current user. The results are ordered by creation date in descending order (most recent first). API key values are not included in the response for security reasons. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx b/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx deleted file mode 100644 index 971460fdf7..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/log-in.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: log-in -title: "Log In" -description: "Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols." -sidebar_label: "Log In" -hide_title: true -hide_table_of_contents: true -api: eJztV1tT2zgU/isaPbWdXAjby+KnDZS2pkAoSQsNZagsn9hKZEmVZIzL5L/vHNmhoWVhuruzs7OzT9bl6Ds3+XxH19SzzNHojA5Ln4PygjMvtKLnHZqC41aYMI3oUEpdOcItpCjGJKRk/PKIlA6sI14TqTMiFI58DmErZS5PNLMpqYTPCSOGOVdpm/bIofYQESblzZojRek8SYAwTyQw58mvhOfMMu5Rg9QqI0ylhBGui0SoYCfRM1IaA5YzB0SCR9kOkbr6fkmVRRIGiOHqItHS9WiHagM2QMUpjei+zmJFO9TClxKc39ZpTaNryrXyoDwOn/Sf4MfxHAqGIxQVFlIMIhRMSNqhK6cwjL42QCOqkzlwj3sWVXoBDk83J6LrlZjzVqiMLtcw7tq0wJnxPGcXXi9A/SjzffomKEZm2hILO8Ojyc6bIblkUqTB9x45vlkNgEQ4snKMlEqCcyGtn1/G4+H2/u7F8W4r/5lwrWYiK5so4kEHPlwDW0KPLpcdClesMBLW/KVznatUw2847XFdrActokXtgFvwdLlcLjtrIZ4x6SCsOKOVa2K4ubGBn9sOj97SznremDGyvdz9udPqdhLvT9IfxPg711opCvVenrzmYiT2Xr3/Gg8ORexidfyM78TP44U5/bCzt9WDem/ANz/U8dy8iAu5iOdapKeHkouBme7ELi4++I8n0uH69GSQs5OrYfOtyo+bWz4WleDFlpueHoiR9C/i4lmenLxHpZP0dFtyNTV8c6uO1SCdjSsxPc2reK6vDud8MJp8rEeTd7/M3vWeTudb9fYpz7uifPXxVXfBL3bzN0dXc1OZC8gORvvJ6PJpMn07Ghy8uuTFbjZ9diBP3wwuBrPpLHt/xQ63+cFOenzw/OD1+MtbzavXavh/ZO6JDMbm6V03dpul5LipO3/f1QVrtb2zhMCVt8w9jOA88+W6XFNJEaIA51gGd/0Z3//2jRk0VqHorNGIo+umrJQ93dhYg785hmSjWAFE2xvioP+wrqDuqst1ChmobssU3USndRflaURx3KgC5YRWSLDXdAE1je492aGXTJY3CMtztMvnGkui0eFaGOZzGtG+1JlAonJgL8E2CkqLlTUcc8BLK3w9xmvS5HEbmAWLNL+WL2bEW6h/YIu9kwn6nwbCYLc6gw5xIlOw4nRFdsebz54TY8Ul80AWUCOrtoFAbdqKr01P0aECwXNgKd6fJc5nOlgjPOaOjj1IySx5KVxSWgcFKE+OJPMzbQsyPIoxRGBdY+Vmb9DbwBiURcEsBneCnce9GI/GL48eI0kx4rWWJCmF9MFNbTOmWlNDQ1OwBZCklAtiWI0oYZWRzOrSYONhgQsjwoa+BNv0Pa12Bb7SdtH7kYj/dSZ+Up/UJBcuqFREG1Bdp0vLgRirsSYQnzOP240pGru8AH8HXNNg4Qbec8KZwp5upkuVhoM5TrCXFCojFox2wmsrwEVoR5ecuQav33676VqQuqYNUjdhfAEqPX+Ue29c1O9nwudlgq1E/6cQHkckOH9jSo0NjWdCNR1PKxa8EmpmmfO25L60rYOYF/9QTns/4dnMhsr/V1xbQTzkWwUJWcn+aW9ykEUXG3Xv7jV5Ta7vLUC/YEL124V7/XnIjTcgi/BUaP6SFIzUNV6vBz0hpUO5RZmAVeDB9T5hmfJgCzeajcFeCo51aeVWa2ZP26wfhLp61nWtWIdKwUG5QEKrAmgYz4FshjrV1GfEivr9qqp6LOwGtPao6+/HO7uH493uZm+jl/tChjqJxb9gag14X2ckvFRuVZe1l8p/9sHWMpeHK983kgmFnUgI7XXLjme0YcfzDs2RNaMzen2dMAfvrVwucflLCcgXZ+fIuFawBNnn7HzZWZHTN77eaQLanaDabwSNz8BlZyU05ByMX9v+oWW7xeVHo/GEdhqSj65poVM8Y1mFL09WBRJfLn8HWQuC8g== -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx b/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx deleted file mode 100644 index 4ba566c4a3..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: patch-organization-circle -title: "Circle Account Setup" -description: "Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time." -sidebar_label: "Circle Account Setup" -hide_title: true -hide_table_of_contents: true -api: eJztV1Fz2zYM/is4PuzaO9nOctse/JYmuTXbrs3V6e0h9fUgCbJYU6RKgnE1n//7DpRsa2mWtFsf9jA/2DIJgPgA8AO0VYyroOa36rVfodV/IGtn1TJTJYXC6zb9nau3bYlMAbgmONe+MASFs5VeRZ80oHI+bbqRmSm8tqYDLAoXLYPbWPIBarwjaMk3OgTRZAelA651mMIrxzQHbZOpSvvAwLq5d1YGaAxUmkwZAD1Bg7ZEdr7LII8MWDF50Aw6QE5kD9pUAjIYwsDgbEEZdC5CgRY8tQYLAoSg7cpQb12kMTkwVZlyLfXnX5Vqrq6Ri3ocsz4qKlOePkYK/MKVnZpv78Xxwdixg5wgphCXKlOFs0yWRRvb1ugiic0+BDGxVaGoqUF54q4lNVcu/0AFq0y1XpxkTaHX1e/X1I0EA3ttV+p+cm+OST27voI1dbDRXI+SFMTH69eLG/gOfr68AfZoQ0U+qF2mNmgM8XtdftlJVxfgqnEhbdAQQ+VdA5uaPPXJj7YMsNHGSGyChGMnnz6+2lOp5uwjpYXQOht60KcnJ18Y9SHeEGJRUAhVNKb7dsFvKARc0UMhoU/YtIae8KuHu8vUDw8heoElvOkL7dv5TN47/3QSL4hRmwCYu8gpWb3iTqCxx/DkSQnXIQyHg9WVvUOjS9C2jazG5tJ9fF85p+bHZ7ngh2rIhvUc/UEmRw+WqAzDFUML2jKtyA/R3WUqUBG95k7Nb7fqBaEnfxa5VvPb5W6ZqU+TwpW0IjsZ7vUkd2U3sdgIPHnu/SSb7kmyki7do5qZukMTDxbkoIa4dsIsrTCLRAzFCzUbM+qsSBUz6StGiff+Tq6hHBu9UXOVjO1BLSTzfXLH0A7pwVb/St1nGf7l9xuIgcrE6hi5JstDUWUQ9MpS2TMEWrhcnP74E7Re3yGTcIdw5RAeOc35fVPJlBbjNWGZEpApKdA3R7q8PFbEgbuORTiimf3iTkxWLgHSnK7UgskY9HChQx59oIYsw7VBrpxvhN4k9uRDD/R0+v30RMIYmwZ9NzDU4zaeLS6un0vpIbBzBvKoDadIjTOVSq7BNUEezRpa7MRKWkVYeRdbYUFPhW512nB31HfQ/emWeOP8evogif63XHxn39mbWod0pAXXkp0EF31B0HonDABcY9+Qkyup6bX7PnDPXAZoy7QhFyj155ygctGWSVG6gzPGbbRdSed2QbPzmsJc/JjAbejtzYbfSTkK0qQdgjTJsViTLZfPauY2zGezleY65tPCNbOvsvB8Dgn8wZVOGJ1R235eGsQSKm0rj4F9LDj6AeB+dHo0p9OvQFb51A/+DbS9iaewbSiHvew/RlOTaSZFjZ7Doy6P5GbsiWYNajsbFh7F8xSMl2QaSIaS/yW1xnVSXk8igSgTI6xjTt4SU5i+E6Zj8k14XS3I3+lCeGkPa3Bz6vxqloQmrpqEQSxTRhdkQ6LAPYe2WNQEp4mneooXW/PZbLPZTDHtJmuDapj9dnV++WpxOTmdnkxrbkyi2tYFbtCODO8nvmE6XxDH9j7XbI+jxf+vANm+azJ94llrUFvpQCkn26Fd36oxehnN/tKwl5mqXWCR225zDPTWm91Olj9Gkv5zu5TRwGvMpZvdLnfZvl8eB4vzPiWTG/HmOEl8Nvntsr3GWVFQy4/KjieQ67Ob85cq62cTmWVdKUoeN/J6gxuZMuR9iPuJZ9uvbZVBu4pp6FW9USk8/GziWKeJY3gQWPst241cvD879EjkW3A9qLLd9vPMbneQ77f+VmOI7V5aErrc7XZ/Ai5DXfM= -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the Circle configuration for the organization. Only account owners have permission to do this. Note: in the first time configuration, all fields are mandatory, but after it is been configured at least once, you can replace a single field at a time. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx b/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx deleted file mode 100644 index 2f426c9e15..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: provide-signed-challenge-transaction -title: "Provide Signed Challenge Transaction" -description: "Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable." -sidebar_label: "Provide Signed Challenge Transaction" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows the wallet to post the signed SEP-10 challenge transaction. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the toml file under the `WEB_AUTH_ENDPOINT ` variable. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx b/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx deleted file mode 100644 index d1e6fba27f..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/refresh-token.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: refresh-token -title: "Refresh Token" -description: "A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires." -sidebar_label: "Refresh Token" -hide_title: true -hide_table_of_contents: true -api: eJztV+FS2zgQfhWNfrUzTkJSaAf/AwqtaSGUhAJJM4wsr20ltiQkOcbNZKavca93T3Ij2YEALVzvrjM3N/cnjqXdT7uftPvJC2xIorE/xjuFSYEbRolhguOJhyPQVDHpXn28gwoN6vdvv2lkxAw4ghvJFGhEYgMKdbdQznhhQLfRMGUaAY+kYNyglPAoA40UxAp0yniCTAoP0UpmUlEYFDGtCmkaK6bsMqAYcAptFBjENDKKJQkoiJwT4w7u1UZLAxXcDvJIlCiEWChwc/fibWMPCwnKpRlE2MendWBDa4U9rEBLwTVo7C9wb2PDPu5TcQqmUFwjgjiUiFAKukkDe5gKboAb60WkzBo+O1NtXRdY0xRyYv+ZSgL2sQinQA32sFQ2LMPqhWu4OzNtFOMJXi49DDcklxmsWWGoDtPwHWV9dnhw9jXoHrNAB/x0i+4Fr4OZvPi8d7jdhuqwS3ufq2Aq3wR5NgumgkUXxxllXTnaC3SQfzaX55m246PzbkrOb3bqZ1lc9rZNwEpG8209ujhi/cy8CfKtNDw/s4sOo4vdjPKRpL3tKuDdKB6UbHSRlsFU3BxPabc/vKz6w0+v4k/tzdF0u9q9oGmLFQeXB60ZvdpP35/cTGUpryA56n8M+/PNcPSh3z06mNN8PxltHWUX77tX3XgUJ2c35HiXHu1Fp0evj94Nrj8IWr7jO/8z8wQzlpvN753kXRKhU7guQJt/7uiCUkI9ProPG8pbMIRlGpHQ1r2t09rR7aNRRD+70vLBnjcL44DPScYixLgsrNMdXMwgi65iIbB/99/2FAXXBVMQYa8ZD4m6tQmJQhwgskWOQkCEI8YNJKActzW73cfsnnFSmFQo9tUB/1p6/zxtWBtiinU7XuQhOOZz0Jok8L3G8wOyj4VB99K8i2K1zuZGdw35ocevBHbYGmihmKmwP17gXSAKlBU77I8ny4n1N6mwOiCFqwJJ7BzuNHrVWjV2DWoOSjuUQmXYx9i6r9AHdvtqftfXuOWRSPYBqkdVcHg+tFIYoVgoF/ydBntIs4Q3MmcP3f6gt/UaScXmxACaQWW1jJPcwu80edfq7WFmwVMgkTuk9j0WLhpmLM14YCDLiEJvmQ4LpSEHbtBJRkwsVI52TgLsYZtuHWWv3W1vWA6KPCeqwj4epoCexngxeHvy0tYWQUaIDIUFy4xLU6iE8CZUV1M5mQEKi2yGJKksihslKFGikEjESAFlkrkJMQflusVqdQ6mFGrWfkTtvy/EL/wLd5cjuyRHQgJvaVEoCkgqYWsVmZS4S04diuDICAf/HTgPER65CSoiQJRw25xiUfDIOab2JctEaS9TCqTQzAjFQPs2jhYa6xqv0zxb0RpJLdmQ1AoJnQGPJi9SY6T2O52EmbQI21TknZ9CeOnXN8PbUCpkWyJhluEUUGPmsmI8VkQbVVBTqCZBuy/muT1t/0RmsXId+e+ktoJ4LrcSQrSy/cvZpJDlLZoSZfSTIa/ZdYwC6OSE8U4z8GQ+z6XxHrIcOSAXfwQyE9XqRv90rRXa2s2KEBQH+5nwxbYpAyrX/XgAas6o7UurtJow20IlHWfUEnFLN2YezhgFrp1erBqgJDQF1HN9qu7PFsvvdMqybBM369AaV935GOztHw/2W732Rjs1eeb6pBWBnPA14ObzAK2+D+41mcWdqv+nvpAa0TJwYzoyI4zby4FjddEI5BjfF8iJh1MroP4YLxYh0XCmsuXSDl8XYCVjPPHwnChGQitA48nSW+mTVdQZWFXZoRSkFeE5yYpaNR9clO4p9kl/MMQeJo+UduaUtvlj4VdTvFoDf6iZdQz2d+n9wGWxqHV8uby1r6d+6NHkuLK2TE6Wy+UfvFR/mQ== -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx b/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx deleted file mode 100644 index 0e88fdf953..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: request-challenge-transaction -title: "Request Challenge Transaction" -description: "Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable." -sidebar_label: "Request Challenge Transaction" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows the wallet to get the SEP-10 challenge transaction to be signed. More information [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md#challenge). The endpoint url can change but is provided in the Get Stellar toml endpoint response under the `WEB_AUTH_ENDPOINT` variable. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx b/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx deleted file mode 100644 index d21a2fb924..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/request-registration-url.api.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: request-registration-url -title: "Request Registration URL" -description: "The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit." -sidebar_label: "Request Registration URL" -hide_title: true -hide_table_of_contents: true -api: eJztV21v2zYQ/isH7sPaQbYyJ002A8Pg5WV12iVZnKRA06CgqLPFmSJV8mTVC/Lfh6PkxEm7ZC8YsAHzF1nS8eFzD+9N14LkLIjhpTjFmQ7kJWlnxVUicgzK6yreDsVZgZBj5YImQJtXTlsCaYxrAkhopDFIQA5mSLd22k6dLyMgTL0rQVqQVhXOJwDBgYQ6oIdCBkYCKvDeEouYY86g2mrSkhDkCrv/zr6zY2YQHBikEFe34BAqVHq6BJnnmpGkuYdLhaRoHncv60AQ6qyMhAm9VKQXaJaw0BIkVK6qK3AesMwwZ0KZdw2vbLTNXcP8MgSZGeS/K35wYlAGBFWgmsfdciSpDeaQO1WXaKllc1mgx6tnBVEVhmk601TUWV+5Mg2Exki/uvYq78gpZ9LMuCwtZSD0KSoXloGwTANWvY2NwVa/zL/oWPQGz/vvrEiEq7A92HEuhuIUP9QYaP3Az09fi0TgR0JvpdlzKojh9YMQONA2h9L59pSAeYtE1N6IofiH6IubRHgMlbMBI6PBxsanxEarsAKPH2rtMdwdLzmYamPA1ffj0VkOW8wqOUMoXCA+2OVaFPVFIpSzhJZ4x6/Sr/gSVIGl5H+0rFAMhct+QUUiEZVnkUm3PNu3t1aBvLYz8TCpRqaRywChTZ216Huv6kCuRP+eOb9vM6EfT0iWlWHIp6xZung2T5E4P339eQGAc77L7FC42uR8aYAKHYBXkbvTmXO4zZX7NFeBISvd757G6Jgv1dS45nuplKstfffjaPfNztHx0cXW5k9vxwcvd49f7f58OHo1OZyMJ5Px7sHF+eFgd3v/7fjNi52dzePzzZd721sXY3ZT5097eXbr15ehVZrLwngPps63Hq2qVgqNpiL3spEmBhQGuqdFw/FUB2yXjfdYhw81+la8lLy0gQ/G2btKSa6rBIEk1QHcNBqv4O9J9s1gWoSdwbfT7c282FhsiZv2l4gSqXCcwZULMeYkFWIo0rPT0dHkYP/0/WT/9CJeTjiV1qmEtPMvXQsckYiAfoGeG8B1l8ri5oofq9prWk443tuQ/gGlRz+qectbtWWlX+HyE7UP35yxQnlUV9ZUoCWtYuYlEPTMYh5V5o6wPxm82IbK6wVX+DkuWQ0rS4bn3ZzXv7ZNKRGawQuUOXrBgnC8RzaaonSTttbAng5Z7QNymYUTI4kTH0YnY5EIdrdlOeh/3d9gDeqylH7ZRcnjGM8meyfPQXO0k3MGslobim46P5O2oxr4wEs5R8hqM4dKLhklPpUw8447yhQ8Kl3p+MItuFat7W6RGufn/c8G8r+LIrfiM04F3tKCq9D2gqu9Qqi84/LYtlwdOircg121yoEHcAlIm8cXyuUISlpur1NX2zwuLPiG5w5tZ+DbmHZeYxgyjx5cPuw7+ZpIvaoTqZdJNUeb/6HG+yjC8yFE52+pLIHbhtS27UKdWfRK26mXgXytqPadg239eeJM+3/Cs6mPXevvuLaCeMq3BjNY2f5lbwo0ZU8V0lN4lPKaXUoeMS2ltmn34FF/nnLjJZoSIlDkn2Nl3JLD60lPoA5sN68z9BYJQztuEfoyHE8n6BdarXfBjmbf+VkajXpu2gudWSKMVmhDHBxWBbCSqkAYxDp1N2oN07Rpmr6MbyNatzSkr8e7+0eT/d6gv9EvqDSxTnK/KKVdA+5mQFgfAqGdAu/Vm+u7Iej/b4D/9DdA17EJP1JaGant2oTYDhKX4ncGCV69NkrEGIngsSXfjRNXieBJkpGurzMZ8Nybmxt+HOcjMby8SsRCes1K8d1NsurmPH/MkXvwSCmsGHkhTc2MefTmmeR2+jk5npyJm5vfAD7MREc= -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The deposit endpoint allows a wallet to get deposit information from an anchor, so a user has all the information needed to initiate a deposit. - -It also lets the anchor specify additional information that the user must submit interactively via a popup or embedded browser window to be able to deposit. Please check the detailed documentation [here](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md#deposit-2). - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx b/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx deleted file mode 100644 index 861b11fe88..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/reset-password.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: reset-password -title: "Reset Rassword" -description: "Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email." -sidebar_label: "Reset Rassword" -hide_title: true -hide_table_of_contents: true -api: eJzNVlFv2zYQ/isHPrWFZGXBtge9pU2HZRtao86whyQoTtJJYi2R7JGy4xr+78NRcmw3RYJuD5tfLInH7+6+493HrQrYeJXfqIshtGSCLjFoa9RdoiryJWsXX3N10XV27QENLC7nMHhiWLcWWvTQWEMQWrZD00JoCX6x3NgAc/R+bbkCx7Yk7yFY8BTERDMYWoPbW6x1aAEh2CUZ8GQCrDQC9ai7mUqUdcQxrqtK5YrJU9iDq0QxfR7Ih9e22qh8+1XcH8T44GiyhQoDqkSV1gQyQba9yl7Jny9b6lGexFQzVcKOO/bmKXyMkQpLYeNI5coWn6gMKlGOJdigyQvGw758u7f0gbVp1Nf8vjumo7YciRSa1e7U57NI15HEwVMlhOtKqlpvAGGFna6OqRBmJkLUTn7JUdKBBxpdO2v8mM752dljhuengH4opdj10HWbE4YF/sdvAbzGCj5MYZyUBJ3rpgOZffLWnNbnaeaJ2fLzZF1SQN15wMIO8WTCuHGXKLoPjP5ZT5E2usfedXTkWF2ZkW9t3CCbDnC1pq76WFur8sMzaA8P5CfT9wL5waZA6RmqYhsVJJ2oTaBGTshuqt59WtqKGjLpVNa0sNUmNdhL/PI8BkLGa2uk77dqSRuVP7kzUSvshgeE3V2iegqtlV50NhbNYWhVrrJ4BNKjbvHEK+LR08CdylXc76kcWIfNQqo5Fuw1IRPLGDqiHJ3+nTaPqvbbX9fjAZdGwZPJlYDXjaH9SDHwdnH+08/gWK8wECxpIwNlYkS8WdZfxpmXKC3gLWEVSZX32sZodJDiqkWgrkOGS+2LgT31MqnmHYbacg8X8yvhitiPUZ7PfpidCQdD3yMLy9ctwdMYLxaX85dyFmQY2g6KQXchpmm5QTOFGs9Aj0uCYuiW4HAjKPErQsN2cGBrYCq103HBrmicKHvvhsLa8nL2eHr870K8NbfmutU+ujRgHZnU24FLEmGRloTQYpDlMRRrINgI/w24BNBUcUEOPJRopJlqO5gqbmzlRbROmwaYnPU6WNbkc4kjhRs/4mXTf1odkZS6iaS0wHJJprp70YbgfJ5ljQ7tUMxK22ffhfAyh5j8QygbkAmJWhhuCSazmJU2NaMPPJRh4CnBvZQ8WdPZd2RWcxzQ/ya1PcRzua2pgL3tP86mpa5PyxY5+CdDPrLLAhNlPWqTTR+ezOe5NH6lrocIFOOvyHV2I8fr2Uxg8GK3HApiQ4H87FbGVCDu/ft6QbzSpcylfVpTmDPLTRaNUlunfjJLVKdLMj6q1H4AOixbgvM4p8b5LFh5lq3X6xnG1Yg2bfXZH1dv3r5bvE3PZ2ezNvRdnJOiAj2aI+Dx2vXhIAQnU2Z7UPn/9mI5yUyg+5C5DrUR4Y88bCdNu1FfadpdoloRvfxGbbcFevqTu91OPn8eSKb8zZ0IJmssRDNu7nbJXlIOcvtmTD+9Fv8HfZU76C7ZG12UJblwtPzoPnQixfP3i2uVjBqdb1VvK9nDuJZLK66j9O52fwOrz0ME -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx deleted file mode 100644 index eef33ad2d4..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: retrieve-a-disbursement -title: "Retrieve a Disbursement" -description: "Fetches information on a specific disbursement by `id `." -sidebar_label: "Retrieve a Disbursement" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches information on a specific disbursement by `id `. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx deleted file mode 100644 index 5361404d47..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: retrieve-a-payment -title: "Retrieve a Payment" -description: "Fetches detailed information on a specific payment by `id `." -sidebar_label: "Retrieve a Payment" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches detailed information on a specific payment by `id `. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx deleted file mode 100644 index d6c81f4267..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: retrieve-a-receiver -title: "Retrieve a Receiver" -description: "Fetches detailed information on a specific receiver by `id `, including all associated wallets." -sidebar_label: "Retrieve a Receiver" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches detailed information on a specific receiver by `id `, including all associated wallets. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx deleted file mode 100644 index c5a90a6adb..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: retrieve-a-tenant -title: "Retrieve a Tenant" -description: "Retrieve a Tenant" -sidebar_label: "Retrieve a Tenant" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Retrieve a Tenant - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx deleted file mode 100644 index e3a4c4c711..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: retrieve-all-statistics -title: "Retrieve All Statistics" -description: "Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets." -sidebar_label: "Retrieve All Statistics" -hide_title: true -hide_table_of_contents: true -api: eJzVWNty2zYQ/RUMnpIZ6mLF6YPelMRN03ZST+RMHhSNZ0WuSEQgwAJLKYqG/95ZkJKoi+3YvUz6YovE7sHZC/ZA2kiC1MvhRI4JSHlSsZfTSCboY6cKUtbIofwZKc7QC9Ba5EhOxV5YEx4T5Wel85ijIS8oQ2FdCkZ9A/YVGXgROwTCpCtuMhQOfWGNR6FMrMsEvZiBV7GANHWYBqeAXcA6QEbCYYxqia71UaxAa+RFMIkA75F8V0bSFugCxLtEDuUHZopLHGndCi6SWwpeDjdy0O/zv8N436JBB1rs3Xa8ZSRjawgNsRsUhVZx2LL3xbPvRvo4wxz4E60LlENpZ18wJhnJwjFBUvXOZAn07UH+Wk7KEKbo5HEpbthLmDKfoRN2fph/Gcm5dTlQDfDTpYwkfoW80CiHg34VySatt7EtDaHzD9NMHMzpLLG7t7qoOMuQrB/pN2CGaBJl0kd6vgixlR6TJ1D1ZRyjP5/9uz1fVpGcg9JP2jIU/7F+lxV7KuIHeV1X8vW2kK3iQs4v/e1sfRvORmsfcA7WMpKKMP+O4gf329gm2LL15LhALWby4/jN6zMMHt9dZ7Av+v1uvy/PtNQZ48HO+LSPzpi/2JsfN8+9TE475oz5y535SZvcCw5LdJA+kPG9+XErnTO+bKxP+2fUVOrupVfrUWiiKlSgHsC3zQD+QedI7ZcqT+iedDznGtL0PzvYB+f6Q5PiT3WG2+e7VoydHj5BLfa+98bR7/fblBo5bIloVfH6Zf/iVDs/Gigps059w+SfE0t0zrrTJq+YNTn4jv7zBFS27eqsMESO3p89cHWYu7zsaMj3lsRBmHsW230u+xct5GOPfxM4YHuMS6doLYeTjXyF4NCNSsrkcDKtpuxPmeVLUoohVcBLsufb9ySPrm6zyUaWTsuhlOy6RR5z6erctvH3UlOo33B90pK/froRPGrF3LpAHA01XREJr1KDiVgpygQYcTUevPxJFE4tgVAscM2XPAM5w4+amIMnKxqDZwgJ17Ti57kNbJomHhNqDU68aV2YxLUG4nMgRtfvZCQ53JrloHvR7XMOyjwHt+ajlKG4H+PZ+M31c6G8AEHWajErlaYQZvtK7AVZkcMCxazUi909l9+CSJ0ti+agqkKFBcsXXmrtbpBW1i26p6f9h6P42Xw2N5nyYUsjbIGm423pYhSFs3xOBWVAvFxTsUaQDfBn4OrrPi/wjUTEYMQMxdyWJgmOGT9obVfKpMJhYb0i6xT6IfPoiImv8XrN/0778twpmiR1ZhAv0CTTZxlR4Ye9XqooK2fd2Oa9RyE8H4oQ/I7KWvA4BGXqb0qNWYhKmbkDT66MqXRNgFwXeqim3UdENndhGv+d0LYQD8W2wpnY2j45mgx13okzcOTvpdyy65FD7OWgTK95cW88D4XxC+pcBKDAP8FC2zW314ORiNKz3aKcoTNI6LufeUwRutz/MR+jW6qY59I2rIZm17q0F4w6dt7xjVkktYqRv34ON7sBWECcoRiEOVXPZ8Ya9nqr1aoLYTWgNa6+9/u711fvx1edQbffzSjXYU4W1lMOpgW8/d4sRrr9Ffh43Gz22v6/+YGgkSbCr9QrNCjD8h9yt2k0cCL9wQ8hmfXEbzebGXj86HRV8es/S2RVmEwjuQSnYMYaM5lW0VaCWDQXyMIximMsWGSXoMtaGI/uQQeC/PbqRkYSTrR0EbS0+cDo2yWzbmEfq2JNgf9W0R0um02t1FW1s6+X7vRoQtxacxanVVX9BYk1YOY= -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches all metrics on all disbursements the organization has created. The response includes basic aggregations on payments, receivers, receiver wallets, and assets. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx deleted file mode 100644 index cf8c9b86cb..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: retrieve-disbursement-statistics -title: "Retrieve Disbursement Statistics" -description: "Fetches metrics on a specific disbursement by `id `." -sidebar_label: "Retrieve Disbursement Statistics" -hide_title: true -hide_table_of_contents: true -api: eJzNWFFz2zYM/is8PrV3suW46R70ljbplm3X5eL0+pDmUkqCLdYSyZKQXc2n/74DJdly7Dh1tu76YlsiAH4fAAIwVxzFzPHolk9QoHQoE8fvAp6CS6w0KLXiEX8HmGTgWAFoZeKYVkwwZyCRU5mwVLq4tA4KUMjiirHPMmWfhzzg2oAVZOMy5RG/Jm1YwHlPvrdrwI2wogAES4BWXIkCeMRlygMuCYYRmPGH2C7PmZ4yzIB97hv2+1v4WkoLKY/QlhBwh1VOJp0sTA484PDN5DoFHk1F7kggyaAQPFpxrIyXRCvVjNf1HVlzRisHjtbHoxF9bWO5BiytcsytWbGptlsO4gFPtEL6Fa24MCaXiXdR+MWRjdUuBh1/gYQUjSWHomwQGFGRwftEl6rx2VMaqRVT7IlJhTADywM+1bYQ2Lz65dQ7RngXRSc1ERdpdaTeuA64AZWS947TfEWaonQUtqOhujJJwLkjNV/XAZ8KmT9rS9Qo8mP1TmvSlOjT8aqJ5NsukN4BTXBFQS/dfVzdC+egHz1hrajoaCAU3xF8r36f+Gx/mN49ZPzD5PztHgTHZ9ce2yej0XA04ntSao/weC28m0d7xF9txB8mz0EkuxmzR/z1WnwnTQ4aFwuwYvaExzfiD1Npn/BpK72bP2dtpB5felOd+SSqfQQSkAuw90uR54DuJ60jjd5MOgT7rOM5zcVs9r8d7K1zfd26+GPj4f759rbvuxjsr1fbveWGNJgqixgsdbyN7kEeo1EfUb9Dul7vrWuSOh2d7Pa0D0qUmGkr/4b0v2teYK22e/osQUcrviMJqceWfbnGNWSiAOf2nrqG5to5axj8vUa2RXODotvndHTSs/xQ40cabkLzajc077SNZZqC+vFx2c9uA+A7BDwPB0lpJVZ+wHsDwoI9KzHj0e0djVgFYKZpVpyBx0YDX8TDzTwV9mcpF65kWnOyahfd1FjanEeck7VuswmRb/j1t9x0UiP/gGrnxP3+8YZRJ/EzHIUEFLZ+DZiTMwUpW0rMmFDsYjJ+/QszVi4EAptDReNnO8CetdH0mt0sm4FIKVtrep5qj6Y9pBOEPBeW9Q8ru8oF0jFnZ1eXPOBEt0E5Hp4MR+SDsiiErahSZMAO23gxOb96yaRjgqHWOYtLmaOnqe1MqBaqY6hZIebA4jKfs3Yg8G8Fm1ldmrYOSSP9gl6A9ZN4t7sCXGo7H+4Ws58O4if1Sd1k0vktFdMG1MDp0ibAjNV0VhhmAmm5gaIVQ226/x4PzAVMqNQv0MDFEqFYDGyqS5V6xYwe8lwvpZoxC0Y7idpKcBHhGLBb19gL2+9BP+0HpnXSIBbJHFR69yJDNC4Kw5nErIyHiS7Coyy8jJgnv4ZSMSooQpKHM2CtmGcl1dQKh7ZMsLQtQYoLPhXT4RHMptbXs39DrTPxFLclxKyTfTabDPJikGTCojsIuScXogUICyFV2L44yOcpGr9BXjBvqPnPCSbXFaXXk0xY6UhuXsZgFSC44ScqUwi2cH9NJ2AXMqG61NFqYQ61nYVeaKCnA9eKBTyXCSjn20BXAI1IMmBjX6ea+ky2ojBcLpdD4Ve9tVbVhX9evr14P7kYjIejYYZF7uuk0Q4LoXqGuxuFbV5bdwpbdWe1aZPPvtNoewbCNwxNLqSiicOTWrX96pa7LQT9jsUDHsmUblgy7ZBkV6tYOPhg87qm119LoCJ+exfwhbBSxNQSbldkhX6n66uKR4m9uG5vPV6yQ3cje3l0DVFRN1yIvKQnHvA5VM1NTH1XB13vIljNwlmSgMGeys4IstXcf7244QEXO0147ptw+4Os74XzsJ02EOizDh5RWa2aFl/Xa/lm6VGNluKaOTGo6/ofs/+oyA== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Fetches metrics on a specific disbursement by `id `. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx b/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx deleted file mode 100644 index 53531040ab..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file.api.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: retrieve-stellar-info-file -title: "Retrieve Stellar Info File" -description: "Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url." -sidebar_label: "Retrieve Stellar Info File" -hide_title: true -hide_table_of_contents: true -api: eJzNVltvIjcY/Suf/NSVuGQJm0hUeSAwBBJ2YBnIjUHIzHwwLh57antgKeK/VzaQsu1m022ranlBY38+PseXc7wlhi40qY3JABdMG0UNk4JMCiRGHSmWuc8aqXMu1xpMgrCmnKMBI2GOJkpcW+D1i+/PQKNaoYJc8cJLE1sIJhaQ5TPOIljiBqiIXW+lejKgRApEZrifvxOTGhmgUQxXGBjknKqOmMsW40gKRKHOpNCoSW1LKmdn9u9LukO5RAFMw4pyFrsZHXWcZXSBsGacwwyBSxpjDEKqlHK+sRwiKQwKYyENfjZlI1NuP/AzTTOOdikajd7IHwZX45DcXDcq7fuHVqflXz7ctlu9wf11o3l32xs8vvILSQFCctOsn1dvnysXreeni+pjI3iqXjRGftDuPl5eVLrt28dPrwNMIOjc+B3/ZnrnPV19Hez10eB7w4fe4G7arwdBvz2oB95VSIaoDQTNFvho1lIt4WcIMDOYzlBB5ez9h5BAuzfoPPf86WjQvQpJYkyma+VyIhX7TYqiQW0EmpLeb1dJqkVI4MG7ntZHw/bU85v9XscfnoykWfFQXIyZnuVKY4rCFDNOzVyqtDij0RJFXIxxdQpbprlJQgLDQd0PWt5gGniDe/fXPzurVP+LGTRmlWpIQjEeN3uN0UfPH9aHnZ4/mUBvcDP16x/toh1OJtRZvK9tjAYDz290vGAygUjGCFcQEm806DVCAkzrHJVrurm+blYvO62L7sPdZf/yY9O7DxoPg8tmf/Rwf+4/nTeHn7z7Vrfq14fV+qf2+XO32+rWPziUKdUazZSKKJEKY7gCo3KE/feh02yy/eRzRk1IQBtqcu1aOFthSMBemFN6r/MfBc0fmP6eXSjIbrfbFUiKJpHWPhZoSIFk1CSkRsqlNXJeXAq5FuXjRrurXSB7D7IeuCW54qRGyG5im6NcMbMJogTTvdVcI1Wo6rmF3BLLkdQIzdgdbsifDfP2YQi5xhjmUoE9sCgMi5y7FZwpYgxrZhKgAryg8uECMsVW1KC1SGtEgqbObXLjbtjelwuEWfAEaYyKWL1MzKVjw4xzp+OZbJ6cd+gfzjvU+x1SIFbunmWl9L50ZtcgT1OqNtY5rZt/E+OnoNl/Z72VgpGSwyxn3DiZUi2oOFDVNiBSukSY5XwJGd1YFNdKYaFknoGcg8KIZcx1SBsE5mR2sXei0l+W9sejGIpQDBOm3ZQCZIaiqGWuIoRMyV8wMmASamz3nooUYKSD/wpc4SWv3BWMqLBZNZe5iN3AxH7YPLa5qjCTmhmpGOqa5VGE8eGAl/+W901+Orrlgpkkn5UimZa/C+FdDZz4FyobsClKmdg/GA5lThUTc0W1UXlkcnUQaPfFvLWnpe9QNlcuxP+NtCPEW9rWOINj7T9WkyBPi1FCldHfpHxSVzYKsZxSJsqHhm/qeUtGG3kKDsjxjzHjcmOP15tKINe2bpnPUAk0qEuhtSmDKtW9eYBqxSLrS0dZpynriopyXtSHsgLhLEKh0Tra0QAzGiUIFedTe3+2WLVyeb1el6jrdWiHobrc7TQ8P/CKldJZKTEpdz6ZSW1SKk6Aj+/LF332hQmHJ+YXjrP941X4/zyED9HiHqAZp0yQ3UH79pBoY3KSaNbATzNtUiCJ1MZWbbczqnGk+G5nm3/N0br8eFIgK6oYndnMGE92hWOk2BBcog2CehRhZiN0RXn+wsbh23h8ydkbb0h2u98BxMo+qQ== -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Allows the wallet to fetch the SEP-10 server url, SEP-10 signing public key and SEP-24 server url. - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx b/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx deleted file mode 100644 index c5df0dbf56..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: send-one-time-passcode -title: "Send One-Time Passcode" -description: "This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header." -sidebar_label: "Send One-Time Passcode" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request's Authorization header. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/sidebar.ts b/platforms/stellar-disbursement-platform/api-reference/sidebar.ts deleted file mode 100644 index 1dd8dce2c7..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/sidebar.ts +++ /dev/null @@ -1,550 +0,0 @@ -import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; - -const sidebar: SidebarsConfig = { - apisidebar: [ - { - type: "doc", - id: "api-reference/stellar-disbursement-platform-api", - }, - { - type: "category", - label: "Admin (Tenant Management)", - link: { - type: "doc", - id: "api-reference/admin", - }, - items: [ - { - type: "doc", - id: "api-reference/get-all-tenants", - label: "Get All Tenants", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-tenant", - label: "Create Tenant", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/retrieve-a-tenant", - label: "Retrieve a Tenant", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/soft-delete-a-tenant", - label: "Soft delete a Tenant", - className: "api-method delete", - }, - { - type: "doc", - id: "api-reference/update-a-tenant", - label: "Update a Tenant", - className: "api-method patch", - }, - { - type: "doc", - id: "api-reference/default-tenant", - label: "Default Tenant", - className: "api-method post", - }, - ], - }, - { - type: "category", - label: "Authentication", - link: { - type: "doc", - id: "api-reference/authentication", - }, - items: [ - { - type: "doc", - id: "api-reference/log-in", - label: "Log In", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/refresh-token", - label: "Refresh Token", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/authenticate-mfa", - label: "Provide Multi-Factor Authentication", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/forgot-password", - label: "Forgot Password", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/reset-password", - label: "Reset Rassword", - className: "api-method post", - }, - ], - }, - { - type: "category", - label: "API Keys", - link: { - type: "doc", - id: "api-reference/api-keys", - }, - items: [ - { - type: "doc", - id: "api-reference/list-api-keys", - label: "List API Keys", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-api-key", - label: "Create API Key", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/get-api-key", - label: "Get API Key Details", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-api-key", - label: "Update API Key", - className: "api-method patch", - }, - { - type: "doc", - id: "api-reference/delete-api-key", - label: "Delete API Key", - className: "api-method delete", - }, - ], - }, - { - type: "category", - label: "Balances", - link: { - type: "doc", - id: "api-reference/balances", - }, - items: [ - { - type: "doc", - id: "api-reference/get-organization-circle-balances", - label: "Get Organization (Circle) Balances", - className: "api-method get", - }, - ], - }, - { - type: "category", - label: "Bridge Integration", - link: { - type: "doc", - id: "api-reference/bridge-integration", - }, - items: [ - { - type: "doc", - id: "api-reference/get-bridge-integration", - label: "Get Bridge Integration Status", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-bridge-integration", - label: "Update Bridge Integration Status", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Disbursements", - link: { - type: "doc", - id: "api-reference/disbursements", - }, - items: [ - { - type: "doc", - id: "api-reference/list-all-disbursements", - label: "List All Disbursements", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-disbursement", - label: "Create Disbursement", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/retrieve-a-disbursement", - label: "Retrieve a Disbursement", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/delete-a-disbursement", - label: "Deletes a Draft Disbursement", - className: "api-method delete", - }, - { - type: "doc", - id: "api-reference/list-all-disbursement-receivers", - label: "List All Disbursement Receivers", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/download-disbursement-instructions", - label: "Download Disbursement Instructions", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/upload-disbursement-instructions", - label: "Upload Disbursement Instructions", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/update-a-disbursement-status", - label: "Update a Disbursement Status", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Organization", - link: { - type: "doc", - id: "api-reference/organization", - }, - items: [ - { - type: "doc", - id: "api-reference/get-organization-info", - label: "Get Organization Info", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-organization-profile", - label: "Update Organization Profile", - className: "api-method patch", - }, - { - type: "doc", - id: "api-reference/get-organization-logo", - label: "Retrieve Organization Logo", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/patch-organization-circle", - label: "Circle Account Setup", - className: "api-method patch", - }, - { - type: "doc", - id: "api-reference/get-all-assets", - label: "Get All Assets", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-asset", - label: "Create Asset", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/delete-asset", - label: "Delete Asset", - className: "api-method delete", - }, - { - type: "doc", - id: "api-reference/get-all-wallets", - label: "Get All Wallets", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-wallet", - label: "Create Wallet", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/update-wallet", - label: "Update Wallet", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Payments", - link: { - type: "doc", - id: "api-reference/payments", - }, - items: [ - { - type: "doc", - id: "api-reference/list-all-payments", - label: "List All Payments", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-direct-payment", - label: "Create Direct Payment", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/retrieve-a-payment", - label: "Retrieve a Payment", - className: "api-method get", - }, - ], - }, - { - type: "category", - label: "Profile", - link: { - type: "doc", - id: "api-reference/profile", - }, - items: [ - { - type: "doc", - id: "api-reference/get-profile", - label: "Get Profile", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-user-profile", - label: "Update User Profile", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Receivers", - link: { - type: "doc", - id: "api-reference/receivers", - }, - items: [ - { - type: "doc", - id: "api-reference/list-all-receivers", - label: "List All Receivers", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-receiver", - label: "Create Receiver", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/retrieve-a-receiver", - label: "Retrieve a Receiver", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-receiver", - label: "Update a Receiver", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Registration", - link: { - type: "doc", - id: "api-reference/registration", - }, - items: [ - { - type: "doc", - id: "api-reference/start-wallet-registration", - label: "Start Wallet Registration", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/send-one-time-passcode", - label: "Send One-Time Passcode", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/verify-receiver-registration", - label: "Verify Receiver Registration", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/retrieve-stellar-info-file", - label: "Retrieve Stellar Info File", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/request-challenge-transaction", - label: "Request Challenge Transaction", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/provide-signed-challenge-transaction", - label: "Provide Signed Challenge Transaction", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/request-registration-url", - label: "Request Registration URL", - className: "api-method post", - }, - ], - }, - { - type: "category", - label: "Statistics", - link: { - type: "doc", - id: "api-reference/statistics", - }, - items: [ - { - type: "doc", - id: "api-reference/retrieve-all-statistics", - label: "Retrieve All Statistics", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/retrieve-disbursement-statistics", - label: "Retrieve Disbursement Statistics", - className: "api-method get", - }, - ], - }, - { - type: "category", - label: "Users", - link: { - type: "doc", - id: "api-reference/users", - }, - items: [ - { - type: "doc", - id: "api-reference/get-all-users", - label: "Get All Users", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-user", - label: "Create User", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/update-user-activation-status", - label: "Update User Activation Status", - className: "api-method patch", - }, - { - type: "doc", - id: "api-reference/get-all-roles", - label: "Get All Roles", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/update-user-role", - label: "Update User Role", - className: "api-method patch", - }, - ], - }, - { - type: "category", - label: "Exports", - items: [ - { - type: "doc", - id: "api-reference/export-disbursements", - label: "Export Disbursements", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/export-payments-csv", - label: "Export Payments", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/export-receivers-csv", - label: "Export Receivers", - className: "api-method get", - }, - ], - }, - { - type: "category", - label: "Wallets", - items: [ - { - type: "doc", - id: "api-reference/get-all-wallets", - label: "Get All Wallets", - className: "api-method get", - }, - { - type: "doc", - id: "api-reference/create-wallet", - label: "Create Wallet", - className: "api-method post", - }, - { - type: "doc", - id: "api-reference/update-wallet", - label: "Update Wallet", - className: "api-method patch", - }, - ], - }, - ], -}; - -export default sidebar.apisidebar; diff --git a/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx b/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx deleted file mode 100644 index 780aed7504..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: soft-delete-a-tenant -title: "Soft delete a Tenant" -description: "Soft delete a Tenant" -sidebar_label: "Soft delete a Tenant" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "delete api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Soft delete a Tenant - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx b/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx deleted file mode 100644 index 88de9daca7..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: start-wallet-registration -title: "Start Wallet Registration" -description: "This is the endpoint the browser reaches with the first token so that the receiver can confirm their verification information through a webflow. Requires a valid SEP-24 token in the request." -sidebar_label: "Start Wallet Registration" -hide_title: true -hide_table_of_contents: true -api: eJzVV1Fv2zYQ/isEn1pAttKg24Pf0jVYs3VdMKfoQxoUJ+kksaZI9niK6xn+78NRsuOkabysK7A92RLJ4/d9R353WmuGJurZpf4DGxOZgI13+irTFcaSTEiPM33RmqhMVNyiQlcFbxynh4L8MiIpQihbjGppuE0DtaHIiv0CnYpecQvDAsISzTWSKsGp0rvaUCcDhtQ1kqlNmSAo42pP3fCfW/J90ypQSyxq65dT9Qd+6g1hVKCuwZpKzU/PJ8fPxw2NG/f61GPkqc60DzhwO6v0TM8ZiN+Btci3eGc6AEGHjCSirLWDDvVMp6g600a0+NQjrfSXCuFtDH3EStWeFPTcouORmM40DdgrPWPqMdORV1Z2EcI60/g5WF/hbrRssQM9W2teBZkWmYxr9GaT3eAjcBFKif/BVIeB7s1XplIQoy8NMFY3+dvn8i9ivpJQMXgXMcr48dGR/NyBOCQxjqkFVyVISywCNKiWxlpVoLIeKqyUk3Ni7UrSXHrH6DjtjJ85b7mz8vA1QHfFeXXx22uVNtlG2mw2m0w/vw/mC6jSOcTIj9naFx+xlBWB5FSyGZRAIk+HEb5EBmOjgsL3w40aFm4kCUwQD+6UCOFn6IJkcLexPnOD3MaFnvV+uNqgrT7U3kvCt/8lP7tTkY3vC6DdnAJIOcQqKvaSLpB7ydggJVEHWZ99KetbJzfGk/kzBf5Ouv59vXRk4H5/nuu7ApPkHcYIDd530r+i8hvP6ha/GxTbfZ4fPduLfHfFEBlCsKOj5B+j6Lb+brttElFuvVhng0kg4FbPdL5MHjqhPRPNo5irznREut76aE9Wz7SW6x+x7Mnwai75GwR+gUBIJ73E3AkJwfyKX9rXL+8uvmatmYqmcVsTA6dO58c//KgCmWtgVAtMFjFa5snIcWvKyTFbhCodT3mufUJjOBndnNFaIPXSxKKniB06VucWWBxQnZyf6UwL3QHl8fTZ9Eg06LsOaLWtDw/GeDJ/ef5UbhUo9t6qojeWE01PDbgRarpNHSxQFb1dqAAriZLegmrI90H5WqqsCSYNeCm2vLe7Q156WkzvL2H/KYjv3Xu3bT3AKR/QTaLvqUQVyMtlHRoLE0co0iz4FP6ecNmukpS+wtSAFKhq37sqLZSuxVvrl8Y1ijD4aNiTwTgTHBN1GYd4+fg7qfZEmoRRpEkB5QJddfWkZQ5xlueN4bYvpqXv8kdFeDpTifwOyipVJTBuaMTGaYmVcTVBZOpL7mkkKHnhQzmdPoJZTcmLv4XaNsQhbkss1HbuP2bTou0mZQvE8UHIe/NyJsS8A+Py8cWDfA7ReIW2UylQwl9hsH4lx+sgE9VHmbfoCySHjHH6XmyKkbr4ez1Hujal+NKW1ghz6qnJ06SJrydxnJZpa0p0MdWGrQEG6djVcfKpwZ8l1izPl8vlFNJoijYujfnrs59O38xPJ8fTo2mqwuKTwUfuwO0FTs21Grprdae9vmU465va/v//wBirVmpRggXjpD1Isq7Hanmp76mWUiNSvbzKdOsjy7T1uoCIb8luNvJ6aOOlilYmQmGlCa/BRnxAzicj/OqpesSHyb0cFrja+wK6BttjKuXZN+B5/PfHQ9DufvzcYLySBzICUs8urzbZtsKLmsPqk7LEwHurbppMWb7re34+vdCbzV+5a2QA -sidebar_class_name: "get api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This is the endpoint the browser reaches with the first token so that the receiver can confirm their verification information through a webflow. Requires a valid SEP-24 token in the request. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx deleted file mode 100644 index 3d8f15ff89..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-a-disbursement-status -title: "Update a Disbursement Status" -description: "Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready." -sidebar_label: "Update a Disbursement Status" -hide_title: true -hide_table_of_contents: true -api: eJztWN9v2zYQ/lcOfGoB2Uqzbg96c5sWzX50QZ1iD2mAUNLZYi2R7PHk1DP0vw9HyY6dOMm6odtQ7CWyxLvj992RvI9ZK9bzoLILdWJC3lLABi0HdZmoEkNBxrNxVmXqvS81YwCuEAJrbgO4GWgod9xAF4Wj0tg5sNtaIjS6qIzFMZxXuO/QtIGhcUuEGbkG4KokPWO4En+4ItTlCq7AWHBUIsnXwJo4xt6f2ZbAZOZzJPB6FUmM4Wz4BdemrgdXHSA4Z+XJlQmAtvTOWAYToDI8hsl+5EJb0HVwkGNEWoKxEZ3XbcASrgaS+Qq0henJGbShh+oJlxJh1hJXO7h6rnMneXJtj50wosMSriu0wm8FmhBiCsYqUc4jaanFabmtxmS3ZtNYFJUor0k3yEhS1rWyukGVKVOqRBmppNdcqdvlPT2Rct5Oq0oU4afWEJYqY2oxUYFXtcQLpvE1qkThZ1+7ElU203UQg6LCRqtsrXjloyWTsXPVdZcSLXhnAwYZPz46ksc+kF8wBD1HeDdYqkQVzrKAydZKe1+bIuYh/RjEYb0z4Q3WC9X0cWQhDzhc/hELoeRJksmmR7ExPAA4UWw4sh1QbUF1wlvHDOyG2NtEMFRUdZ2Een6I7Qtdwjv81GLgLyH6MCMkcnSAj2Bm0uHxCP0G37GzbZMjSYgH0tXtZ2WAETnSluMNhM0kz4+OkvtSaAJYx/0ukC2V425W/+Hp+io+u1vF91a3XDkyv2P5zZbxrWPYo3kotc92U3vL42sG7kvz3d3SvHaUm7JE+/XrcpjdDYA/YdDTeH6XhjB+7Vr7bS+v2cDw0AJ4fu+mtVvPrxw7hg9YtGR4FXvrC9SENGm5UtnFpTS4BrlyZd9liyp2YxlU6W5bDenalF0aNh07IC037bqlWmVKSazNVFOpaJ/y3Qm3qdXe/ISrOy39x9/OISqUmaO4XdDysFgSCGZuRWwYrkS2vJoef/8DeDJLkTILjJJjUA6TYadFz42IqFCXUupO3mcuohl65ZSxrjXBXiLPas0zRw1Mzk5VooRuj/J4/Gx8JDlom0bTSmVKROLDMZ5MT86eymGtgZ2rIW9NzZGmo7m2A9QgJ3ijFwh5Wy9u1Bc70DAn13qRPISF8SYOuKXotp3ZLfK1o8X4Tmr/exA/2A/2XOSsTGnBebSj4FoqEDw52b7AlY4drofiLLDzG9F3K1zS6+kKoXAlRgmcY78RomMlL3XtrkXCEnoXDDsyGDLBMYKL0MdLh+dod/WP/JCkUa6LBdry8knF7EOWpnPDVZuPC9ekXxThaQaR/BbKCuSU1Mb2F5bBLLIydkY6MLUFtzQQlLrwYzUdfwGzGcVD+u9Q24R4jNs15rCx/ctsKqybUVFp4vAg5B27lAkxbbSx6fDhQT6P0XiDdQMxUMRfoq/dKt4kH91rbRC7RZsjWWQM4w9yTDFSE36dTZGWppBzaUNrgDl2NE+j0cjNRmEwS1RtChSJn22vThOviwrhOJ5T/fkssbI0vb6+Hus4GqMNriH9+fTlq7fTV6Pj8dG44qaO56R3gRttdwL3tzjQ+7y2F7m9M2d90/f/v4v/y3fxoe8yfubU19pYkTxxYayHfn+h9vq9SlQWL+BDy79MVOUCi916neuA76nuOvn8qUVpgheXiVpqMjqXlnqxlnDyu9xes+9dHE/eDbfgp3Dvpf4ggY2asCIllrpu5U0laoGr/v8H3WWXbBq/YOoHJkWBnndc7ojSPV10Njl/+UYlSt/RMIuoYYYfEv8goNtqpAchf7vkHpf1uldIXbe174fu9RhIbrkLh67r/gAA78jm -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the status of a disbursement according to the state machine. The disbursement must move from `draft ` to `ready ` in order to start the disbursement and trigger payments. Payments will start as soon as this endpoint is hit. A disbursement can also be moved into `paused ` state by an SDP user to prevent further payments from going out and restarted when they are ready. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx deleted file mode 100644 index e468041e9a..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-a-tenant.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-a-tenant -title: "Update a Tenant" -description: "This endpoint updates the Tenant data." -sidebar_label: "Update a Tenant" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint updates the Tenant data. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx deleted file mode 100644 index 37ff9fa5b5..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-api-key.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-api-key -title: "Update API Key" -description: "Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation." -sidebar_label: "Update API Key" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates an existing API key's permissions and IP restrictions. The API key name and expiration date cannot be modified after creation. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx deleted file mode 100644 index f7e6b348e9..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration.api.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: update-bridge-integration -title: "Update Bridge Integration Status" -description: "Updates the Bridge integration status. Supports two main operations:" -sidebar_label: "Update Bridge Integration Status" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the Bridge integration status. Supports two main operations: -1. Opt-in to Bridge (status: "OPTED_IN") - Creates KYC link for organization onboarding -2. Create Virtual Account (status: "READY_FOR_DEPOSIT") - Creates virtual account after KYC approval - - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx deleted file mode 100644 index 99346698cd..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-organization-profile.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-organization-profile -title: "Update Organization Profile" -description: "Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client." -sidebar_label: "Update Organization Profile" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the organization profile details. Only account owners have permission to do this. Note: both fields are optional but at least one should be sent in the request. It is not necessary to set the header Content-Type for this request. It is set automatically by the HTTP client. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx deleted file mode 100644 index c281969ef3..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-receiver.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-receiver -title: "Update a Receiver" -description: "This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver." -sidebar_label: "Update a Receiver" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint allows an organization to add and update information on the receiver, including email address, external ID, date of birth, personal PIN, and national ID number. The response includes all information on the receiver. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx deleted file mode 100644 index 700651a292..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-user-activation-status -title: "Update User Activation Status" -description: "Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password." -sidebar_label: "Update User Activation Status" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the SDP user’s activation status. This endpoint is primarily used to move a user into active status when they accept the invite to join an SDP organization account and create a password. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx deleted file mode 100644 index 4c9806858a..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-user-profile.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-user-profile -title: "Update User Profile" -description: "Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request." -sidebar_label: "Update User Profile" -hide_title: true -hide_table_of_contents: true -api: eJzdV91v2zYQ/1cIPq2FbKVZtwc9Lf1Cu3ZpsCTYg2sMlHSyWFMkyzvF8Qz978NRkj+SzFk3FBj2YtG8z9+P1N1pI0ktUGYzeRFcpQ3IeSJLwCJoT9pZmclrXyoCFFSD8L2SKIGUNihcFbeNWyygFNqKFiEkQtvCtKW2C1HUyi544RXiyoVSVC4I1VINlnShCMr00Bqn4twRZEIZIyoNpkShAggX81FG5C0JRcKAQhLOgsDataYUOQgES+yHcwrwpQWkqUyk8xAUW78rt3iuEcIIOZGD8gtXrmW2kYWzBJZ4+TR9yg8samgUr2jtQWbS5Z+hIJlIH9g9aUCWVjog/W5VA3u6SEHbhewSadQxKTRKmwclI3sPCNnuVjXewN348g3/Oef1QWT5QW23h5D986f4Oy1cI/dDymaNUAQg2XUcjsnSAUqZVcogxB30zmJPwenJCT8OL9HH9zLZp1V5b/j4tbPpZ2SVfY53EWayAUS1iPfyOPWj4oMUkSYmSP7SK/06JCwP2du6kHwTt7e9jTemFNgWBSBWrTHrgYvnJ8/ug722fMFd0H9A+TWwj+ODEFx4+N7cUlD4uAckRe2+nm2bHAK7OELenRs2pCHPHYkDmLssxjjPT57teb5r8S0d90fz/f2jeeNCrssS7Lc/l4fR7RL4GwoRB0LRBk1rmc028gWoAOGspVpms3k3T+TtpHAlLMBOhiI2yV25ngyvOq97CsGidhajlyWsZXbUMpE3yrRbDxyoAaodlwOvqKhjheAsZOq3ZRQh3EDoY7SB60q0HBFcMqM9afs4tswpr98Dp3t4Zj//dsWd4V7r0M4mAvXCQilWmmqhrHh9efrDj8IHfaMIxBLWXP8HLs6GKxItZSI1O69BlfwKdPy/cjGboVZcEhijgnilMW8DQsPd5cIoqlxoxNnFO2YJAvZZnk6fTU+Yg7ZpVGB+r2oQx318d/nq4onQKJQg57i1aUMRpgsLZYdUUZATjVqCyFuzFF6t2UvcVWIRXOu5DwcotNdR4G4gxB44RrdAKxeW03vU/vdS/GQ/2ataYwxphfNgJ+jaUMThg19AQbUiFvepOCvI+XESueMuEcqWUcBXXRTK8phQudaW0bDmP8a4FY8oAbxDTS5owIzzmIgZ9v7S4Tkp90ia+IGkSa6KJdhy/l1N5DFL04Wmus25k6Zf5eFJJiL4bSprwVVKadvPX4NaRKVtFRRSaAtqwwCQz4UeO9PpVyCrQiyS/wba6OIxbCvIxaj7j9HUYJpJUatAeDTlPb2UAkDaKG3TYeMonsdgvAXTiOgo5l+CN27N1+tRJKJF1lu2OQQLBDj9xGWKIDT4sbqEcKMLrksjrCHNqQuLNCpNXDXBQS2RRhfAI0622RZAr4oaxGmsU319Zl9Zmq5Wq6mK0uhtMMX0w7uXr88vX09OpyfTmhoT66R3SI2ye477kVrwTC12Q/VBqdkbqv8HXxRDwyK4pdQbpS3PUJHRzdAWZ9LvPqhqh8Rbm02uEK6D6Tre/tICN4rZnLtt0CrntjObd8nYlXa9+mVP3uSKA++aM3+ddMmodFYU4GlPfG+sOejjF2dXL9/KpO/wPP26ko2CWvEXkVrF9p1Ida9JL2OTHhac4yiy673gd9ttnyP/csYPmmw2/QjQdVv9XvSXFgNRozYfxLzruj8B2ak/fQ== -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates the profile details of the logged in user, including changing password for authenticated/logged in users. Note: all fields are optional but at least one should be sent in the request. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx deleted file mode 100644 index 564a1cfb41..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-user-role.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-user-role -title: "Update User Role" -description: "Updates an SDP user’s role by `user_ID `." -sidebar_label: "Update User Role" -hide_title: true -hide_table_of_contents: true -api: eJzNV1Fv20YM/iuHe1oLyXLcpkD1ljYdmnVogznBHlxjPeko62rpTiVPcTTDwP7G/t5+ycCT7NhNlrTrCuwlkkXyu+8jJZJZS68WJNOZvCRAkvNIaqAcTeONszKVl41WHkgoK6an56IlwL/++JMEugpE1gnxgR/9dnYqPoxkJF0DqDj0TO+CGfkXV4GMJMKnFsi/cLqT6Vrmznqwnm8fJ4/5QnkJteI73zUgU+myj5B7GckGGdsbILaGQ43ecySPxi7kJpJMjfYsClF1MpLGQ013RGw2kYRrVTcVHEDL41xNnozz57FWz4/jp5k+irOJmsRKHeuxLp4dQ6Hl7ryZ1HAFFbOU801AZbkGQcu0UBVBeEKNs9Tzm4zHfDlM+Ls3MtpPjGqayuQhp8lHYpcvz1INRGoBd2k+kLzzC+JDbUmsAEG0oYJaUJvnQFS0VdV9czTHPx0f3dZ+aVXrS4fmd9D/XRYA0eGdbwpce1T0MAJ55dt9P9vWGSBD3JPiz9I00JBvnRcHMm9YbM95Oj7aQ/484nsC96V5crs0PzrMjNZgv39d7lZ3Q+ALHIIOgrxF4zuZztbyBSgEPGl9KdPZfDOP5HWcOw0LsPHQleLM6S62qmYyfN+nECwZZymgLKGT6b2RkbxSVbtD4INq8KXjftIon5ecBsUsZMKfCyV9+2C6eMUtmM9psZKpDNFbFVPOap+4fS03Xa4xb4ApH9btp18vuGlrUTgMtQbrh4JFgszCghYr40tu8K+mk+NnokFzpTyIJXTc0Yd8nAyvSYjkZsrgJSjNn8GGfxcusDGeyyKnHqpKoTg1lLVIUIP14rxSvnBYi5PzM84UIPUsJ6Oj0Zhz0Na1Qs7xRQnifowfpqfnj4QhoYR3rhJZayofZDpcKDtQJeGdqNUSRNZWS9GojlHCUyUW6NpGuEIg5KYxweCuAIXfO92CXzlcjm6l9v9H8b19by9KQ+FIK1wDNibXYg6iQccfofCl8mzuqTgrvAvwd8BFQlkdDPy6i1xZkYEoXGt1CCz5R1W5lbELgdA4Mt6hAUqZRyxm1OMlwzXWe0mKmyFJcabyJVg9/6H0vqE0SRbGl202yl2dfBXCo1QE8TsqneBOpQxnuAQxuAVVxhaoyGOb+xYHgVwX/1BNR1+hrMDQKL9F2hbiIW0ryMTW91+rKaGq47xU6Oleynt+iUeApFbGJsODe/U8JOM1VLUIQIG/hqZyHb9eDyoRLbHfss0ALXig0XtuUx6wpnfFFPDK5NyXtrIGmiOHiyQ4xa6IaXCLZGVysBTmy7YBNiovQUxCn+r7M2OlSbJarUYqWAPaEErJz2cvX72dvoono/Go9HUV+mTjyNfK7gH3S7LgLVkMa/JBn9lbk792Gx9Gg4drnzSVMpY3lsB9PQyhWdjZaLfFziNZOvJsWK8zRXCJ1WbDjz+1wI15NucJh0Zl3OZn8020nQI38/Flzze+4ONvBiKv+Jto63SS59D4PfOtVeJgdp6fXLx8LaN+qvLS6TQHoVoxd7UK4zKS6tZQXIahONwwx63JdnuHfz7eeo78lxnfGbJe9yN3s9n596Z/jBgStfXmcvA/Cn8DgWvBcw== -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Updates an SDP user’s role by `user_ID `. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx b/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx deleted file mode 100644 index 4bbd108e2f..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/update-wallet.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: update-wallet -title: "Update Wallet" -description: "This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement." -sidebar_label: "Update Wallet" -hide_title: true -hide_table_of_contents: true -api: eJzdV1tv2zYU/isEn9rCtrKg24Pf0iZAs0saNCn6kAYrJR1bbChS4yWeZ/i/75wjynauXjcMGOaHRCI/nsvHc9NKRjUPcnol3/u5svoPFbWzciQ/KWMgBnk9kjWEyuuON6bystFBgK07p20U+JwC1CI6XFOlAeG8qHXgRyUWLEV03t3qGvxEnLkIUxEbwm31idC4ZGpROedrbVUEsdCxYdw9EaKEmfMgAhioorZz1NIpH3WVjPIP0IhFABpUJh+gBRsn6JzrwLPi0xo9+tjVqLF3GDdRmmohgidaVtLiC4J0jVuaCOhUbOR9Vk6PhZvt2ouEJJaLUA+/Je0BdUWfYCRDXBqSGXTbGQLA751xNS7NlAkEqBpolZyuZFx2jIweXZXr9XUvDUJ84+olIe7a8WmjvYRsABleORvRd8KrrjO6Yu+Lr4EOrXb0bU29kv2F1hQC2QxXfkXSiSNPFEYNgQ4NwK29pXMGlH1A0yUSlNEiRBVTuEsbc6GYFeZqTb/7BPJC6JwNvfrDg4MnicgUiJCqCkKYJWOWd/l4Vbx6moIWz6g57KdgAD5yZXhUR77vX3rQh2y87J17/Zj5b1Qt8kWPMMMSerMUleJcK5fM2JdM5Bcx04DJ0+oQKB9m3rUMyOdFiZEy2eP0ngv23vmHvt2/3WOISpsgVOlSZBP6g2u61ehV2KuJCdlEwEaxPLW3yuhaaNulPkgGcez7rzPnELV5prK0ucZRXi+V32DwWViAOuRMURZFR5iD50vpr+X1k1FlXcTKkmz9b7D619mSfQrt4GxqS2DCnwnI3r/H6sAjzJ/tuLo1a1CMJO2okhjZLvkKdgga1GFFbVzdl8+q4TKLZXQqiz7xQ7HS9RqXA/jbofQmbxAhqegFqJLXcXlB3PbOvwHlwR8lErNxUnX6J1g+iMwfP132fYr7AR7BG8vOj0TQc4tb3HEwEE4uDr//ATuIvqU+dAOcO7kLkDbnt12SG0IDqubAGUki8sO2Pp/s8DnUyFzBtJ05tjvXhosIhhrY8U6rEudGRbS4FUfnp6iNiOn9OZx8NzkgtlLbKr/MlfV5GS8ujs9fUmYoDHpnRJm0iUzIbivmjGjVDeC+ucHWuiQpvKrE3LvUUcX2UOlO84ZDqzjXB+0W4sL5m8mjxf+/ZeJn+9nyPEMqrcDUsuMcwZholHJ4TPGU05uCo0p03dCz7okboYyaNyps5litLZUWTgM+2NCLMW5BVdpD54KOGEwQpmTHWFyFXl6R/493x5Zxl0kal6q6wfnr+kUTYxemRTHHwE3lpHJt8U0SXk4FO78xBTsMFjOliWE0NsPYKwxXTH2M3Somnx2ke4n77nTyDZ5h56Ja+k9cG0Ts820BpRiwf9ubBkw7rhqcPsOzJu/giugBihbtKPLCs/7sc+MdShYsiO2vAefIJYXXXk+wHBLuJmG/wPiFgK5hxuLY24b3swuswrqiujS4lc2cYCIWDBq72Thk2EhiKwEaaaabgfmoU1irxSHXqb6SkywUtVgsJop3WVo+GoqfT9+enF2cjPHIpImt4YqKfsdW2R3B/bguNvP6nSKz2vbj/8WXSm5rEVtvgUGB/Wad2VzlDnolcwdF9FTztN4gZ7SxWpUqwEdv1mtaxrZEreIKH2+V1+Q4t9lMQr35/HiS0Rcf8lD1Ujz7wfOo1UOHttSecZxL9IaP2GH776v1NaJyMyW7+o23vfbxJR3fHnwwvqxHw4kjHPW7uIOluYyGiM0Mcn50+fYdAsr8DdXyx5f0akFfa/iXDXPMAM8avLaSRtl56kedXif9/gSILmh9 -sidebar_class_name: "patch api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx b/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx deleted file mode 100644 index 58ed14ad06..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: upload-disbursement-instructions -title: "Upload Disbursement Instructions" -description: "Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called." -sidebar_label: "Upload Disbursement Instructions" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Adds a file containing a list of receivers to a `DRAFT` disbursement. This step is required before a disbursement can begin. The file must be a CSV and has a different possible formats according with the disbursement configuration, and they can be found at [public/resources/disbursementTemplates](https://github.com/stellar/stellar-disbursement-platform-frontend/tree/58873bbf36cff4614e603daf449079b1d9fad24a/public/resources/disbursementTemplates). The operation is idempotent, guaranteed by deleting and recreating the disbursement attributes when this endpoint is called. - - - - - - - - - - - - - - - - - diff --git a/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx b/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx deleted file mode 100644 index 9122a4117b..0000000000 --- a/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration.api.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: verify-receiver-registration -title: "Verify Receiver Registration" -description: "This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request." -sidebar_label: "Verify Receiver Registration" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: platforms/stellar-disbursement-platform/api-reference/stellar-disbursement-platform-api -custom_edit_url: null ---- - -import { SepBadge } from "@site/src/components/SepBadge"; - - - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -This endpoint verifies the receiver's registration by validating the OTP and other verification values provided in the request body. A valid SEP-24 token should be included in the Authorization header of the request. - - - - - - - - - - - - - - - - - diff --git a/redocly.yaml b/redocly.yaml index 071977dbb7..444eedf16d 100644 --- a/redocly.yaml +++ b/redocly.yaml @@ -1,4 +1,5 @@ # See https://redocly.com/docs/cli/configuration/ +telemetry: off apis: horizon: @@ -7,8 +8,6 @@ apis: root: ./openapi/anchor-platform/main-platform.yaml ap-callbacks: root: ./openapi/anchor-platform/main-callbacks.yaml - ap-custody: - root: ./openapi/anchor-platform/main-custody.yaml stellar-disbursement-platform: root: ./openapi/stellar-disbursement-platform/main.yaml @@ -27,10 +26,3 @@ rules: no-identical-paths: error no-ambiguous-paths: error security-defined: off - -theme: - generateCodeSamples: - languages: - - lang: curl - - lang: Node.js - - lang: Python diff --git a/routes.txt b/routes.txt index daf2ccffb4..a938acb244 100644 --- a/routes.txt +++ b/routes.txt @@ -5,7 +5,9 @@ /docs/build/apps /docs/build/apps/application-design-considerations /docs/build/apps/dapp-frontend +/docs/build/apps/example-application-tutorial /docs/build/apps/example-application-tutorial/account-creation +/docs/build/apps/example-application-tutorial/anchor-integration /docs/build/apps/example-application-tutorial/anchor-integration/sep1 /docs/build/apps/example-application-tutorial/anchor-integration/sep10 /docs/build/apps/example-application-tutorial/anchor-integration/sep24 @@ -25,11 +27,12 @@ /docs/build/apps/guestbook/passkeys-prerequisites /docs/build/apps/guestbook/setup-passkeys /docs/build/apps/guestbook/smart-contract +/docs/build/apps/ingest-sdk /docs/build/apps/ingest-sdk/ingestion-pipeline-code /docs/build/apps/ingest-sdk/overview /docs/build/apps/overview -/docs/build/apps/smart-wallets /docs/build/apps/swift-payment-app +/docs/build/apps/wallet /docs/build/apps/wallet/intro /docs/build/apps/wallet/overview /docs/build/apps/wallet/sep10 @@ -39,6 +42,7 @@ /docs/build/apps/wallet/sep6 /docs/build/apps/wallet/sep7 /docs/build/apps/wallet/stellar +/docs/build/apps/zk /docs/build/guides /docs/build/guides/archival /docs/build/guides/archival/create-restoration-footprint-js @@ -53,6 +57,10 @@ /docs/build/guides/basics/automate-reset-data /docs/build/guides/basics/classic-transition /docs/build/guides/basics/verify-trustlines +/docs/build/guides/contract-accounts +/docs/build/guides/contract-accounts/advanced-patterns +/docs/build/guides/contract-accounts/examples +/docs/build/guides/contract-accounts/smart-wallets /docs/build/guides/conventions /docs/build/guides/conventions/cross-contract /docs/build/guides/conventions/deploy-contract @@ -120,14 +128,16 @@ /docs/build/guides/transactions/create-account /docs/build/guides/transactions/fee-bump-transactions /docs/build/guides/transactions/install-deploy-contract-with-code -/docs/build/guides/transactions/install-wasm-bytecode /docs/build/guides/transactions/invoke-contract-tx-sdk /docs/build/guides/transactions/path-payments /docs/build/guides/transactions/pooled-accounts-muxed-accounts-memos +/docs/build/guides/transactions/send-and-receive-c-accounts /docs/build/guides/transactions/send-and-receive-payments +/docs/build/guides/transactions/signing-soroban-invocations /docs/build/guides/transactions/simulateTransaction-Deep-Dive /docs/build/guides/transactions/sponsored-reserves /docs/build/guides/transactions/submit-transaction-wait-js +/docs/build/guides/transactions/upload-wasm-bytecode /docs/build/security-docs /docs/build/security-docs/securing-web-based-projects /docs/build/security-docs/threat-modeling @@ -142,8 +152,8 @@ /docs/build/smart-contracts/example-contracts/atomic-swap /docs/build/smart-contracts/example-contracts/auth /docs/build/smart-contracts/example-contracts/bls-signature +/docs/build/smart-contracts/example-contracts/complex-account /docs/build/smart-contracts/example-contracts/cross-contract-call -/docs/build/smart-contracts/example-contracts/custom-account /docs/build/smart-contracts/example-contracts/custom-types /docs/build/smart-contracts/example-contracts/deployer /docs/build/smart-contracts/example-contracts/errors @@ -154,6 +164,7 @@ /docs/build/smart-contracts/example-contracts/logging /docs/build/smart-contracts/example-contracts/mint-lock /docs/build/smart-contracts/example-contracts/non-fungible-token +/docs/build/smart-contracts/example-contracts/simple-account /docs/build/smart-contracts/example-contracts/single-offer-sale /docs/build/smart-contracts/example-contracts/storage /docs/build/smart-contracts/example-contracts/timelock @@ -168,10 +179,6 @@ /docs/build/smart-contracts/getting-started/setup /docs/build/smart-contracts/getting-started/storing-data /docs/build/smart-contracts/overview -/docs/category/anchor-integration -/docs/category/build-a-payment-app-with-the-js-sdk -/docs/category/build-a-wallet-with-the-wallet-sdk -/docs/category/build-custom-network-ingestion-pipeline /docs/data /docs/data/analytics /docs/data/analytics/analytics-providers @@ -463,8 +470,6 @@ /docs/data/indexers/build-your-own/processors/token-transfer-processor/examples /docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/event_stats /docs/data/indexers/build-your-own/processors/token-transfer-processor/examples/filter_events -/docs/data/indexers/build-your-own/tutorials -/docs/data/indexers/indexer-providers /docs/data/oracles /docs/data/oracles/oracle-providers /docs/learn/fundamentals @@ -523,9 +528,185 @@ /docs/learn/migrate/evm/smart-contract-deployment /docs/learn/migrate/evm/solidity-and-rust-advanced-concepts /docs/learn/migrate/evm/solidity-and-rust-basics +/docs/learn/migrate/evm/solidity-support-via-solang /docs/networks /docs/networks/resource-limits-fees /docs/networks/software-versions +/docs/platforms +/docs/platforms/anchor-platform +/docs/platforms/anchor-platform/admin-guide +/docs/platforms/anchor-platform/admin-guide/architecture +/docs/platforms/anchor-platform/admin-guide/assets-and-client-wallets +/docs/platforms/anchor-platform/admin-guide/events +/docs/platforms/anchor-platform/admin-guide/events/delivery +/docs/platforms/anchor-platform/admin-guide/events/getting-started +/docs/platforms/anchor-platform/admin-guide/events/integration +/docs/platforms/anchor-platform/admin-guide/getting-started +/docs/platforms/anchor-platform/api-reference +/docs/platforms/anchor-platform/api-reference/callbacks +/docs/platforms/anchor-platform/api-reference/callbacks/del-customer +/docs/platforms/anchor-platform/api-reference/callbacks/get-customer +/docs/platforms/anchor-platform/api-reference/callbacks/get-rates +/docs/platforms/anchor-platform/api-reference/callbacks/post-event +/docs/platforms/anchor-platform/api-reference/callbacks/put-customer +/docs/platforms/anchor-platform/api-reference/platform +/docs/platforms/anchor-platform/api-reference/platform/rpc +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds +/docs/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust +/docs/platforms/anchor-platform/api-reference/platform/rpc/overview +/docs/platforms/anchor-platform/api-reference/platform/transactions +/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transaction +/docs/platforms/anchor-platform/api-reference/platform/transactions/get-transactions +/docs/platforms/anchor-platform/sep-guide +/docs/platforms/anchor-platform/sep-guide/sep1 +/docs/platforms/anchor-platform/sep-guide/sep10 +/docs/platforms/anchor-platform/sep-guide/sep24 +/docs/platforms/anchor-platform/sep-guide/sep24/configuration +/docs/platforms/anchor-platform/sep-guide/sep24/example +/docs/platforms/anchor-platform/sep-guide/sep24/faq +/docs/platforms/anchor-platform/sep-guide/sep24/getting-started +/docs/platforms/anchor-platform/sep-guide/sep24/integration +/docs/platforms/anchor-platform/sep-guide/sep24/setting-up-production-server +/docs/platforms/anchor-platform/sep-guide/sep31 +/docs/platforms/anchor-platform/sep-guide/sep31/configuration +/docs/platforms/anchor-platform/sep-guide/sep31/getting-started +/docs/platforms/anchor-platform/sep-guide/sep31/integration +/docs/platforms/anchor-platform/sep-guide/sep45 +/docs/platforms/anchor-platform/sep-guide/sep6 +/docs/platforms/anchor-platform/sep-guide/sep6/configuration +/docs/platforms/anchor-platform/sep-guide/sep6/getting-started +/docs/platforms/anchor-platform/sep-guide/sep6/integration +/docs/platforms/stellar-disbursement-platform +/docs/platforms/stellar-disbursement-platform/admin-guide +/docs/platforms/stellar-disbursement-platform/admin-guide/advanced-configuration +/docs/platforms/stellar-disbursement-platform/admin-guide/cli-manual +/docs/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp +/docs/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp +/docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture +/docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets +/docs/platforms/stellar-disbursement-platform/admin-guide/getting-started +/docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready +/docs/platforms/stellar-disbursement-platform/admin-guide/monitoring +/docs/platforms/stellar-disbursement-platform/admin-guide/overview +/docs/platforms/stellar-disbursement-platform/admin-guide/security +/docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers +/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets +/docs/platforms/stellar-disbursement-platform/api-reference +/docs/platforms/stellar-disbursement-platform/api-reference/admin +/docs/platforms/stellar-disbursement-platform/api-reference/api-keys +/docs/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa +/docs/platforms/stellar-disbursement-platform/api-reference/authentication +/docs/platforms/stellar-disbursement-platform/api-reference/balances +/docs/platforms/stellar-disbursement-platform/api-reference/bridge-integration +/docs/platforms/stellar-disbursement-platform/api-reference/create-api-key +/docs/platforms/stellar-disbursement-platform/api-reference/create-asset +/docs/platforms/stellar-disbursement-platform/api-reference/create-direct-payment +/docs/platforms/stellar-disbursement-platform/api-reference/create-disbursement +/docs/platforms/stellar-disbursement-platform/api-reference/create-receiver +/docs/platforms/stellar-disbursement-platform/api-reference/create-tenant +/docs/platforms/stellar-disbursement-platform/api-reference/create-user +/docs/platforms/stellar-disbursement-platform/api-reference/create-wallet +/docs/platforms/stellar-disbursement-platform/api-reference/default-tenant +/docs/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement +/docs/platforms/stellar-disbursement-platform/api-reference/delete-api-key +/docs/platforms/stellar-disbursement-platform/api-reference/delete-asset +/docs/platforms/stellar-disbursement-platform/api-reference/delete-wallet +/docs/platforms/stellar-disbursement-platform/api-reference/disbursements +/docs/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions +/docs/platforms/stellar-disbursement-platform/api-reference/export-disbursements +/docs/platforms/stellar-disbursement-platform/api-reference/export-payments-csv +/docs/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv +/docs/platforms/stellar-disbursement-platform/api-reference/forgot-password +/docs/platforms/stellar-disbursement-platform/api-reference/get-all-assets +/docs/platforms/stellar-disbursement-platform/api-reference/get-all-roles +/docs/platforms/stellar-disbursement-platform/api-reference/get-all-tenants +/docs/platforms/stellar-disbursement-platform/api-reference/get-all-users +/docs/platforms/stellar-disbursement-platform/api-reference/get-all-wallets +/docs/platforms/stellar-disbursement-platform/api-reference/get-api-key +/docs/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration +/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances +/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-info +/docs/platforms/stellar-disbursement-platform/api-reference/get-organization-logo +/docs/platforms/stellar-disbursement-platform/api-reference/get-profile +/docs/platforms/stellar-disbursement-platform/api-reference/get-receiver-registration-info +/docs/platforms/stellar-disbursement-platform/api-reference/get-sep-24-info +/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers +/docs/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements +/docs/platforms/stellar-disbursement-platform/api-reference/list-all-payments +/docs/platforms/stellar-disbursement-platform/api-reference/list-all-receivers +/docs/platforms/stellar-disbursement-platform/api-reference/list-api-keys +/docs/platforms/stellar-disbursement-platform/api-reference/list-receiver-verification-types +/docs/platforms/stellar-disbursement-platform/api-reference/list-registration-contact-types +/docs/platforms/stellar-disbursement-platform/api-reference/log-in +/docs/platforms/stellar-disbursement-platform/api-reference/organization +/docs/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle +/docs/platforms/stellar-disbursement-platform/api-reference/payments +/docs/platforms/stellar-disbursement-platform/api-reference/profile +/docs/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction +/docs/platforms/stellar-disbursement-platform/api-reference/receivers +/docs/platforms/stellar-disbursement-platform/api-reference/refresh-token +/docs/platforms/stellar-disbursement-platform/api-reference/registration +/docs/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction +/docs/platforms/stellar-disbursement-platform/api-reference/request-registration-url +/docs/platforms/stellar-disbursement-platform/api-reference/reset-password +/docs/platforms/stellar-disbursement-platform/api-reference/reset-user-password +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics +/docs/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file +/docs/platforms/stellar-disbursement-platform/api-reference/retry-payments +/docs/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode +/docs/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant +/docs/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration +/docs/platforms/stellar-disbursement-platform/api-reference/statistics +/docs/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status +/docs/platforms/stellar-disbursement-platform/api-reference/update-a-tenant +/docs/platforms/stellar-disbursement-platform/api-reference/update-api-key +/docs/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration +/docs/platforms/stellar-disbursement-platform/api-reference/update-organization-profile +/docs/platforms/stellar-disbursement-platform/api-reference/update-payment-status +/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver +/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet +/docs/platforms/stellar-disbursement-platform/api-reference/update-receiver-wallet-status +/docs/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status +/docs/platforms/stellar-disbursement-platform/api-reference/update-user-profile +/docs/platforms/stellar-disbursement-platform/api-reference/update-user-role +/docs/platforms/stellar-disbursement-platform/api-reference/update-wallet +/docs/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions +/docs/platforms/stellar-disbursement-platform/api-reference/users +/docs/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration /docs/tokens /docs/tokens/anatomy-of-an-asset /docs/tokens/control-asset-access @@ -538,14 +719,13 @@ /docs/tools/cli /docs/tools/cli/cookbook /docs/tools/cli/cookbook/asset-management +/docs/tools/cli/cookbook/contract-build-meta /docs/tools/cli/cookbook/contract-lifecycle /docs/tools/cli/cookbook/deploy-contract /docs/tools/cli/cookbook/deploy-stellar-asset-contract /docs/tools/cli/cookbook/extend-contract-instance /docs/tools/cli/cookbook/extend-contract-storage /docs/tools/cli/cookbook/extend-contract-wasm -/docs/tools/cli/cookbook/install-deploy -/docs/tools/cli/cookbook/install-wasm /docs/tools/cli/cookbook/payments-and-assets /docs/tools/cli/cookbook/restore-contract-instance /docs/tools/cli/cookbook/restore-contract-storage @@ -554,8 +734,11 @@ /docs/tools/cli/cookbook/tx-new-create-claimable-balance /docs/tools/cli/cookbook/tx-op-add /docs/tools/cli/cookbook/tx-sign +/docs/tools/cli/cookbook/upload-deploy +/docs/tools/cli/cookbook/upload-wasm /docs/tools/cli/install-cli /docs/tools/cli/plugins +/docs/tools/cli/plugins-list /docs/tools/cli/stellar-cli /docs/tools/developer-tools /docs/tools/developer-tools/ai-bot @@ -563,10 +746,12 @@ /docs/tools/developer-tools/anchor-tools /docs/tools/developer-tools/asset-tools /docs/tools/developer-tools/block-explorers +/docs/tools/developer-tools/building-with-ai /docs/tools/developer-tools/jupyter-notebooks /docs/tools/developer-tools/network-insights /docs/tools/developer-tools/network-status /docs/tools/developer-tools/node-operator-tools +/docs/tools/developer-tools/online-ide /docs/tools/developer-tools/security-tools /docs/tools/developer-tools/wallets /docs/tools/infra-tools @@ -577,11 +762,22 @@ /docs/tools/lab/api-explorer/horizon-endpoint /docs/tools/lab/api-explorer/rpc-methods /docs/tools/lab/quickstart-with-lab +/docs/tools/lab/saved +/docs/tools/lab/saved/keypairs +/docs/tools/lab/saved/requests +/docs/tools/lab/saved/transactions /docs/tools/lab/smart-contracts /docs/tools/lab/smart-contracts/contract-explorer /docs/tools/lab/smart-contracts/smart-contract-list +/docs/tools/lab/smart-contracts/upload-deploy-contract +/docs/tools/lab/transaction-dashboard /docs/tools/lab/transactions +/docs/tools/lab/view-xdr +/docs/tools/lab/view-xdr/diff-xdr +/docs/tools/lab/view-xdr/json-to-xdr +/docs/tools/lab/view-xdr/xdr-to-json /docs/tools/openzeppelin-contracts +/docs/tools/openzeppelin-relayer /docs/tools/quickstart /docs/tools/quickstart/advanced-usage /docs/tools/quickstart/advanced-usage/container @@ -684,6 +880,11 @@ /meetings/2025/10/02 /meetings/2025/10/09 /meetings/2025/10/16 +/meetings/2025/10/23 +/meetings/2025/10/30 +/meetings/2025/11/06 +/meetings/2026/01/22 +/meetings/2026/01/29 /meetings/archive /meetings/authors /meetings/authors/carstenjacobsen @@ -695,623 +896,12 @@ /meetings/page/3 /meetings/page/4 /meetings/page/5 +/meetings/page/6 /meetings/tags -/meetings/tags/desarrollador /meetings/tags/developer /meetings/tags/developer/page/2 /meetings/tags/developer/page/3 /meetings/tags/developer/page/4 +/meetings/tags/developer/page/5 /meetings/tags/protocol -/platforms -/platforms/anchor-platform -/platforms/anchor-platform/2.10 -/platforms/anchor-platform/2.10/admin-guide -/platforms/anchor-platform/2.10/admin-guide/architecture -/platforms/anchor-platform/2.10/admin-guide/custody-services -/platforms/anchor-platform/2.10/admin-guide/custody-services/configuration -/platforms/anchor-platform/2.10/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/2.10/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/2.10/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/2.10/admin-guide/events -/platforms/anchor-platform/2.10/admin-guide/events/delivery -/platforms/anchor-platform/2.10/admin-guide/events/getting-started -/platforms/anchor-platform/2.10/admin-guide/events/integration -/platforms/anchor-platform/2.10/admin-guide/getting-started -/platforms/anchor-platform/2.10/admin-guide/overview -/platforms/anchor-platform/2.10/admin-guide/sep1 -/platforms/anchor-platform/2.10/admin-guide/sep10 -/platforms/anchor-platform/2.10/admin-guide/sep24 -/platforms/anchor-platform/2.10/admin-guide/sep24/configuration -/platforms/anchor-platform/2.10/admin-guide/sep24/example -/platforms/anchor-platform/2.10/admin-guide/sep24/faq -/platforms/anchor-platform/2.10/admin-guide/sep24/getting-started -/platforms/anchor-platform/2.10/admin-guide/sep24/integration -/platforms/anchor-platform/2.10/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/2.10/admin-guide/sep31 -/platforms/anchor-platform/2.10/admin-guide/sep31/configuration -/platforms/anchor-platform/2.10/admin-guide/sep31/getting-started -/platforms/anchor-platform/2.10/admin-guide/sep31/integration -/platforms/anchor-platform/2.10/admin-guide/sep6 -/platforms/anchor-platform/2.10/admin-guide/sep6/configuration -/platforms/anchor-platform/2.10/admin-guide/sep6/getting-started -/platforms/anchor-platform/2.10/admin-guide/sep6/integration -/platforms/anchor-platform/2.10/api-reference -/platforms/anchor-platform/2.10/api-reference/callbacks -/platforms/anchor-platform/2.10/api-reference/callbacks/del-customer -/platforms/anchor-platform/2.10/api-reference/callbacks/gen-address -/platforms/anchor-platform/2.10/api-reference/callbacks/get-customer -/platforms/anchor-platform/2.10/api-reference/callbacks/get-fee -/platforms/anchor-platform/2.10/api-reference/callbacks/get-rates -/platforms/anchor-platform/2.10/api-reference/callbacks/post-event -/platforms/anchor-platform/2.10/api-reference/callbacks/put-customer -/platforms/anchor-platform/2.10/api-reference/custody -/platforms/anchor-platform/2.10/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/2.10/api-reference/custody/generate-unique-address -/platforms/anchor-platform/2.10/api-reference/custody/send-payment -/platforms/anchor-platform/2.10/api-reference/custody/send-refund -/platforms/anchor-platform/2.10/api-reference/platform -/platforms/anchor-platform/2.10/api-reference/platform/rpc -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/2.10/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/2.10/api-reference/platform/rpc/overview -/platforms/anchor-platform/2.10/api-reference/platform/transactions -/platforms/anchor-platform/2.10/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/2.10/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/2.11 -/platforms/anchor-platform/2.11/admin-guide -/platforms/anchor-platform/2.11/admin-guide/architecture -/platforms/anchor-platform/2.11/admin-guide/custody-services -/platforms/anchor-platform/2.11/admin-guide/custody-services/configuration -/platforms/anchor-platform/2.11/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/2.11/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/2.11/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/2.11/admin-guide/events -/platforms/anchor-platform/2.11/admin-guide/events/delivery -/platforms/anchor-platform/2.11/admin-guide/events/getting-started -/platforms/anchor-platform/2.11/admin-guide/events/integration -/platforms/anchor-platform/2.11/admin-guide/getting-started -/platforms/anchor-platform/2.11/admin-guide/overview -/platforms/anchor-platform/2.11/admin-guide/sep1 -/platforms/anchor-platform/2.11/admin-guide/sep10 -/platforms/anchor-platform/2.11/admin-guide/sep24 -/platforms/anchor-platform/2.11/admin-guide/sep24/configuration -/platforms/anchor-platform/2.11/admin-guide/sep24/example -/platforms/anchor-platform/2.11/admin-guide/sep24/faq -/platforms/anchor-platform/2.11/admin-guide/sep24/getting-started -/platforms/anchor-platform/2.11/admin-guide/sep24/integration -/platforms/anchor-platform/2.11/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/2.11/admin-guide/sep31 -/platforms/anchor-platform/2.11/admin-guide/sep31/configuration -/platforms/anchor-platform/2.11/admin-guide/sep31/getting-started -/platforms/anchor-platform/2.11/admin-guide/sep31/integration -/platforms/anchor-platform/2.11/admin-guide/sep6 -/platforms/anchor-platform/2.11/admin-guide/sep6/configuration -/platforms/anchor-platform/2.11/admin-guide/sep6/getting-started -/platforms/anchor-platform/2.11/admin-guide/sep6/integration -/platforms/anchor-platform/2.11/api-reference -/platforms/anchor-platform/2.11/api-reference/callbacks -/platforms/anchor-platform/2.11/api-reference/callbacks/del-customer -/platforms/anchor-platform/2.11/api-reference/callbacks/gen-address -/platforms/anchor-platform/2.11/api-reference/callbacks/get-customer -/platforms/anchor-platform/2.11/api-reference/callbacks/get-fee -/platforms/anchor-platform/2.11/api-reference/callbacks/get-rates -/platforms/anchor-platform/2.11/api-reference/callbacks/post-event -/platforms/anchor-platform/2.11/api-reference/callbacks/put-customer -/platforms/anchor-platform/2.11/api-reference/custody -/platforms/anchor-platform/2.11/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/2.11/api-reference/custody/generate-unique-address -/platforms/anchor-platform/2.11/api-reference/custody/send-payment -/platforms/anchor-platform/2.11/api-reference/custody/send-refund -/platforms/anchor-platform/2.11/api-reference/platform -/platforms/anchor-platform/2.11/api-reference/platform/rpc -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/2.11/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/2.11/api-reference/platform/rpc/overview -/platforms/anchor-platform/2.11/api-reference/platform/transactions -/platforms/anchor-platform/2.11/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/2.11/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/2.8 -/platforms/anchor-platform/2.8/admin-guide -/platforms/anchor-platform/2.8/admin-guide/architecture -/platforms/anchor-platform/2.8/admin-guide/custody-services -/platforms/anchor-platform/2.8/admin-guide/custody-services/configuration -/platforms/anchor-platform/2.8/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/2.8/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/2.8/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/2.8/admin-guide/events -/platforms/anchor-platform/2.8/admin-guide/events/delivery -/platforms/anchor-platform/2.8/admin-guide/events/getting-started -/platforms/anchor-platform/2.8/admin-guide/events/integration -/platforms/anchor-platform/2.8/admin-guide/getting-started -/platforms/anchor-platform/2.8/admin-guide/overview -/platforms/anchor-platform/2.8/admin-guide/sep1 -/platforms/anchor-platform/2.8/admin-guide/sep10 -/platforms/anchor-platform/2.8/admin-guide/sep24 -/platforms/anchor-platform/2.8/admin-guide/sep24/configuration -/platforms/anchor-platform/2.8/admin-guide/sep24/example -/platforms/anchor-platform/2.8/admin-guide/sep24/faq -/platforms/anchor-platform/2.8/admin-guide/sep24/getting-started -/platforms/anchor-platform/2.8/admin-guide/sep24/integration -/platforms/anchor-platform/2.8/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/2.8/admin-guide/sep31 -/platforms/anchor-platform/2.8/admin-guide/sep31/configuration -/platforms/anchor-platform/2.8/admin-guide/sep31/getting-started -/platforms/anchor-platform/2.8/admin-guide/sep31/integration -/platforms/anchor-platform/2.8/admin-guide/sep6 -/platforms/anchor-platform/2.8/admin-guide/sep6/configuration -/platforms/anchor-platform/2.8/admin-guide/sep6/getting-started -/platforms/anchor-platform/2.8/admin-guide/sep6/integration -/platforms/anchor-platform/2.8/api-reference -/platforms/anchor-platform/2.8/api-reference/callbacks -/platforms/anchor-platform/2.8/api-reference/callbacks/del-customer -/platforms/anchor-platform/2.8/api-reference/callbacks/gen-address -/platforms/anchor-platform/2.8/api-reference/callbacks/get-customer -/platforms/anchor-platform/2.8/api-reference/callbacks/get-fee -/platforms/anchor-platform/2.8/api-reference/callbacks/get-rates -/platforms/anchor-platform/2.8/api-reference/callbacks/post-event -/platforms/anchor-platform/2.8/api-reference/callbacks/put-customer -/platforms/anchor-platform/2.8/api-reference/custody -/platforms/anchor-platform/2.8/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/2.8/api-reference/custody/generate-unique-address -/platforms/anchor-platform/2.8/api-reference/custody/send-payment -/platforms/anchor-platform/2.8/api-reference/custody/send-refund -/platforms/anchor-platform/2.8/api-reference/platform -/platforms/anchor-platform/2.8/api-reference/platform/rpc -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/request_customer_info_update -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/2.8/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/2.8/api-reference/platform/rpc/overview -/platforms/anchor-platform/2.8/api-reference/platform/transactions -/platforms/anchor-platform/2.8/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/2.8/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/2.9 -/platforms/anchor-platform/2.9/admin-guide -/platforms/anchor-platform/2.9/admin-guide/architecture -/platforms/anchor-platform/2.9/admin-guide/custody-services -/platforms/anchor-platform/2.9/admin-guide/custody-services/configuration -/platforms/anchor-platform/2.9/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/2.9/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/2.9/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/2.9/admin-guide/events -/platforms/anchor-platform/2.9/admin-guide/events/delivery -/platforms/anchor-platform/2.9/admin-guide/events/getting-started -/platforms/anchor-platform/2.9/admin-guide/events/integration -/platforms/anchor-platform/2.9/admin-guide/getting-started -/platforms/anchor-platform/2.9/admin-guide/overview -/platforms/anchor-platform/2.9/admin-guide/sep1 -/platforms/anchor-platform/2.9/admin-guide/sep10 -/platforms/anchor-platform/2.9/admin-guide/sep24 -/platforms/anchor-platform/2.9/admin-guide/sep24/configuration -/platforms/anchor-platform/2.9/admin-guide/sep24/example -/platforms/anchor-platform/2.9/admin-guide/sep24/faq -/platforms/anchor-platform/2.9/admin-guide/sep24/getting-started -/platforms/anchor-platform/2.9/admin-guide/sep24/integration -/platforms/anchor-platform/2.9/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/2.9/admin-guide/sep31 -/platforms/anchor-platform/2.9/admin-guide/sep31/configuration -/platforms/anchor-platform/2.9/admin-guide/sep31/getting-started -/platforms/anchor-platform/2.9/admin-guide/sep31/integration -/platforms/anchor-platform/2.9/admin-guide/sep6 -/platforms/anchor-platform/2.9/admin-guide/sep6/configuration -/platforms/anchor-platform/2.9/admin-guide/sep6/getting-started -/platforms/anchor-platform/2.9/admin-guide/sep6/integration -/platforms/anchor-platform/2.9/api-reference -/platforms/anchor-platform/2.9/api-reference/callbacks -/platforms/anchor-platform/2.9/api-reference/callbacks/del-customer -/platforms/anchor-platform/2.9/api-reference/callbacks/gen-address -/platforms/anchor-platform/2.9/api-reference/callbacks/get-customer -/platforms/anchor-platform/2.9/api-reference/callbacks/get-fee -/platforms/anchor-platform/2.9/api-reference/callbacks/get-rates -/platforms/anchor-platform/2.9/api-reference/callbacks/post-event -/platforms/anchor-platform/2.9/api-reference/callbacks/put-customer -/platforms/anchor-platform/2.9/api-reference/custody -/platforms/anchor-platform/2.9/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/2.9/api-reference/custody/generate-unique-address -/platforms/anchor-platform/2.9/api-reference/custody/send-payment -/platforms/anchor-platform/2.9/api-reference/custody/send-refund -/platforms/anchor-platform/2.9/api-reference/platform -/platforms/anchor-platform/2.9/api-reference/platform/rpc -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/2.9/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/2.9/api-reference/platform/rpc/overview -/platforms/anchor-platform/2.9/api-reference/platform/transactions -/platforms/anchor-platform/2.9/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/2.9/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/3.0 -/platforms/anchor-platform/3.0/admin-guide -/platforms/anchor-platform/3.0/admin-guide/architecture -/platforms/anchor-platform/3.0/admin-guide/custody-services -/platforms/anchor-platform/3.0/admin-guide/custody-services/configuration -/platforms/anchor-platform/3.0/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/3.0/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/3.0/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/3.0/admin-guide/events -/platforms/anchor-platform/3.0/admin-guide/events/delivery -/platforms/anchor-platform/3.0/admin-guide/events/getting-started -/platforms/anchor-platform/3.0/admin-guide/events/integration -/platforms/anchor-platform/3.0/admin-guide/getting-started -/platforms/anchor-platform/3.0/admin-guide/overview -/platforms/anchor-platform/3.0/admin-guide/sep1 -/platforms/anchor-platform/3.0/admin-guide/sep10 -/platforms/anchor-platform/3.0/admin-guide/sep24 -/platforms/anchor-platform/3.0/admin-guide/sep24/configuration -/platforms/anchor-platform/3.0/admin-guide/sep24/example -/platforms/anchor-platform/3.0/admin-guide/sep24/faq -/platforms/anchor-platform/3.0/admin-guide/sep24/getting-started -/platforms/anchor-platform/3.0/admin-guide/sep24/integration -/platforms/anchor-platform/3.0/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/3.0/admin-guide/sep31 -/platforms/anchor-platform/3.0/admin-guide/sep31/configuration -/platforms/anchor-platform/3.0/admin-guide/sep31/getting-started -/platforms/anchor-platform/3.0/admin-guide/sep31/integration -/platforms/anchor-platform/3.0/admin-guide/sep6 -/platforms/anchor-platform/3.0/admin-guide/sep6/configuration -/platforms/anchor-platform/3.0/admin-guide/sep6/getting-started -/platforms/anchor-platform/3.0/admin-guide/sep6/integration -/platforms/anchor-platform/3.0/api-reference -/platforms/anchor-platform/3.0/api-reference/callbacks -/platforms/anchor-platform/3.0/api-reference/callbacks/del-customer -/platforms/anchor-platform/3.0/api-reference/callbacks/get-customer -/platforms/anchor-platform/3.0/api-reference/callbacks/get-rates -/platforms/anchor-platform/3.0/api-reference/callbacks/post-event -/platforms/anchor-platform/3.0/api-reference/callbacks/put-customer -/platforms/anchor-platform/3.0/api-reference/custody -/platforms/anchor-platform/3.0/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/3.0/api-reference/custody/generate-unique-address -/platforms/anchor-platform/3.0/api-reference/custody/send-payment -/platforms/anchor-platform/3.0/api-reference/custody/send-refund -/platforms/anchor-platform/3.0/api-reference/platform -/platforms/anchor-platform/3.0/api-reference/platform/rpc -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/get_transaction -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/get_transactions -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/3.0/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/3.0/api-reference/platform/rpc/overview -/platforms/anchor-platform/3.0/api-reference/platform/transactions -/platforms/anchor-platform/3.0/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/3.0/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/admin-guide -/platforms/anchor-platform/admin-guide/architecture -/platforms/anchor-platform/admin-guide/custody-services -/platforms/anchor-platform/admin-guide/custody-services/configuration -/platforms/anchor-platform/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/admin-guide/events -/platforms/anchor-platform/admin-guide/events/delivery -/platforms/anchor-platform/admin-guide/events/getting-started -/platforms/anchor-platform/admin-guide/events/integration -/platforms/anchor-platform/admin-guide/getting-started -/platforms/anchor-platform/admin-guide/overview -/platforms/anchor-platform/admin-guide/sep1 -/platforms/anchor-platform/admin-guide/sep10 -/platforms/anchor-platform/admin-guide/sep24 -/platforms/anchor-platform/admin-guide/sep24/configuration -/platforms/anchor-platform/admin-guide/sep24/example -/platforms/anchor-platform/admin-guide/sep24/faq -/platforms/anchor-platform/admin-guide/sep24/getting-started -/platforms/anchor-platform/admin-guide/sep24/integration -/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/admin-guide/sep31 -/platforms/anchor-platform/admin-guide/sep31/configuration -/platforms/anchor-platform/admin-guide/sep31/getting-started -/platforms/anchor-platform/admin-guide/sep31/integration -/platforms/anchor-platform/admin-guide/sep6 -/platforms/anchor-platform/admin-guide/sep6/configuration -/platforms/anchor-platform/admin-guide/sep6/getting-started -/platforms/anchor-platform/admin-guide/sep6/integration -/platforms/anchor-platform/api-reference -/platforms/anchor-platform/api-reference/callbacks -/platforms/anchor-platform/api-reference/callbacks/del-customer -/platforms/anchor-platform/api-reference/callbacks/get-customer -/platforms/anchor-platform/api-reference/callbacks/get-rates -/platforms/anchor-platform/api-reference/callbacks/post-event -/platforms/anchor-platform/api-reference/callbacks/put-customer -/platforms/anchor-platform/api-reference/custody -/platforms/anchor-platform/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/api-reference/custody/generate-unique-address -/platforms/anchor-platform/api-reference/custody/send-payment -/platforms/anchor-platform/api-reference/custody/send-refund -/platforms/anchor-platform/api-reference/platform -/platforms/anchor-platform/api-reference/platform/rpc -/platforms/anchor-platform/api-reference/platform/rpc/methods -/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transaction -/platforms/anchor-platform/api-reference/platform/rpc/methods/get_transactions -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/api-reference/platform/rpc/overview -/platforms/anchor-platform/api-reference/platform/transactions -/platforms/anchor-platform/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/next -/platforms/anchor-platform/next/admin-guide -/platforms/anchor-platform/next/admin-guide/architecture -/platforms/anchor-platform/next/admin-guide/custody-services -/platforms/anchor-platform/next/admin-guide/custody-services/configuration -/platforms/anchor-platform/next/admin-guide/custody-services/fireblocks -/platforms/anchor-platform/next/admin-guide/custody-services/fireblocks/configuration -/platforms/anchor-platform/next/admin-guide/custody-services/fireblocks/example -/platforms/anchor-platform/next/admin-guide/events -/platforms/anchor-platform/next/admin-guide/events/delivery -/platforms/anchor-platform/next/admin-guide/events/getting-started -/platforms/anchor-platform/next/admin-guide/events/integration -/platforms/anchor-platform/next/admin-guide/getting-started -/platforms/anchor-platform/next/admin-guide/overview -/platforms/anchor-platform/next/admin-guide/sep1 -/platforms/anchor-platform/next/admin-guide/sep10 -/platforms/anchor-platform/next/admin-guide/sep24 -/platforms/anchor-platform/next/admin-guide/sep24/configuration -/platforms/anchor-platform/next/admin-guide/sep24/example -/platforms/anchor-platform/next/admin-guide/sep24/faq -/platforms/anchor-platform/next/admin-guide/sep24/getting-started -/platforms/anchor-platform/next/admin-guide/sep24/integration -/platforms/anchor-platform/next/admin-guide/sep24/setting-up-production-server -/platforms/anchor-platform/next/admin-guide/sep31 -/platforms/anchor-platform/next/admin-guide/sep31/configuration -/platforms/anchor-platform/next/admin-guide/sep31/getting-started -/platforms/anchor-platform/next/admin-guide/sep31/integration -/platforms/anchor-platform/next/admin-guide/sep45 -/platforms/anchor-platform/next/admin-guide/sep6 -/platforms/anchor-platform/next/admin-guide/sep6/configuration -/platforms/anchor-platform/next/admin-guide/sep6/getting-started -/platforms/anchor-platform/next/admin-guide/sep6/integration -/platforms/anchor-platform/next/api-reference -/platforms/anchor-platform/next/api-reference/callbacks -/platforms/anchor-platform/next/api-reference/callbacks/del-customer -/platforms/anchor-platform/next/api-reference/callbacks/get-customer -/platforms/anchor-platform/next/api-reference/callbacks/get-rates -/platforms/anchor-platform/next/api-reference/callbacks/post-event -/platforms/anchor-platform/next/api-reference/callbacks/put-customer -/platforms/anchor-platform/next/api-reference/custody -/platforms/anchor-platform/next/api-reference/custody/create-custody-transaction -/platforms/anchor-platform/next/api-reference/custody/generate-unique-address -/platforms/anchor-platform/next/api-reference/custody/send-payment -/platforms/anchor-platform/next/api-reference/custody/send-refund -/platforms/anchor-platform/next/api-reference/platform -/platforms/anchor-platform/next/api-reference/platform/rpc -/platforms/anchor-platform/next/api-reference/platform/rpc/methods -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/do_stellar_payment -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/do_stellar_refund -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/get_transaction -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/get_transactions -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_amounts_updated -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_customer_info_updated -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_interactive_flow_completed -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_offchain_funds_available -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_offchain_funds_pending -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_offchain_funds_received -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_offchain_funds_sent -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_onchain_funds_received -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_onchain_funds_sent -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_refund_pending -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_refund_sent -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_transaction_error -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_transaction_expired -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_transaction_on_hold -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_transaction_recovery -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/notify_trust_set -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/request_offchain_funds -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/request_onchain_funds -/platforms/anchor-platform/next/api-reference/platform/rpc/methods/request_trust -/platforms/anchor-platform/next/api-reference/platform/rpc/overview -/platforms/anchor-platform/next/api-reference/platform/transactions -/platforms/anchor-platform/next/api-reference/platform/transactions/get-transaction -/platforms/anchor-platform/next/api-reference/platform/transactions/get-transactions -/platforms/anchor-platform/next/whats-new -/platforms/stellar-disbursement-platform -/platforms/stellar-disbursement-platform/admin-guide -/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points -/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp -/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp -/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture -/platforms/stellar-disbursement-platform/admin-guide/getting-started -/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready -/platforms/stellar-disbursement-platform/admin-guide/overview -/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual -/platforms/stellar-disbursement-platform/admin-guide/single-tenant-to-multi-tenant-migration -/platforms/stellar-disbursement-platform/admin-guide/tenant-provisioning -/platforms/stellar-disbursement-platform/admin-guide/user-interface -/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics -/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration -/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home -/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements -/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments -/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers -/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets -/platforms/stellar-disbursement-platform/api-reference -/platforms/stellar-disbursement-platform/api-reference/admin -/platforms/stellar-disbursement-platform/api-reference/api-keys -/platforms/stellar-disbursement-platform/api-reference/authenticate-mfa -/platforms/stellar-disbursement-platform/api-reference/authentication -/platforms/stellar-disbursement-platform/api-reference/balances -/platforms/stellar-disbursement-platform/api-reference/bridge-integration -/platforms/stellar-disbursement-platform/api-reference/create-api-key -/platforms/stellar-disbursement-platform/api-reference/create-asset -/platforms/stellar-disbursement-platform/api-reference/create-direct-payment -/platforms/stellar-disbursement-platform/api-reference/create-disbursement -/platforms/stellar-disbursement-platform/api-reference/create-receiver -/platforms/stellar-disbursement-platform/api-reference/create-tenant -/platforms/stellar-disbursement-platform/api-reference/create-user -/platforms/stellar-disbursement-platform/api-reference/create-wallet -/platforms/stellar-disbursement-platform/api-reference/default-tenant -/platforms/stellar-disbursement-platform/api-reference/delete-a-disbursement -/platforms/stellar-disbursement-platform/api-reference/delete-api-key -/platforms/stellar-disbursement-platform/api-reference/delete-asset -/platforms/stellar-disbursement-platform/api-reference/disbursements -/platforms/stellar-disbursement-platform/api-reference/download-disbursement-instructions -/platforms/stellar-disbursement-platform/api-reference/export-disbursements -/platforms/stellar-disbursement-platform/api-reference/export-payments-csv -/platforms/stellar-disbursement-platform/api-reference/export-receivers-csv -/platforms/stellar-disbursement-platform/api-reference/forgot-password -/platforms/stellar-disbursement-platform/api-reference/get-all-assets -/platforms/stellar-disbursement-platform/api-reference/get-all-roles -/platforms/stellar-disbursement-platform/api-reference/get-all-tenants -/platforms/stellar-disbursement-platform/api-reference/get-all-users -/platforms/stellar-disbursement-platform/api-reference/get-all-wallets -/platforms/stellar-disbursement-platform/api-reference/get-api-key -/platforms/stellar-disbursement-platform/api-reference/get-bridge-integration -/platforms/stellar-disbursement-platform/api-reference/get-organization-circle-balances -/platforms/stellar-disbursement-platform/api-reference/get-organization-info -/platforms/stellar-disbursement-platform/api-reference/get-organization-logo -/platforms/stellar-disbursement-platform/api-reference/get-profile -/platforms/stellar-disbursement-platform/api-reference/list-all-disbursement-receivers -/platforms/stellar-disbursement-platform/api-reference/list-all-disbursements -/platforms/stellar-disbursement-platform/api-reference/list-all-payments -/platforms/stellar-disbursement-platform/api-reference/list-all-receivers -/platforms/stellar-disbursement-platform/api-reference/list-api-keys -/platforms/stellar-disbursement-platform/api-reference/log-in -/platforms/stellar-disbursement-platform/api-reference/organization -/platforms/stellar-disbursement-platform/api-reference/patch-organization-circle -/platforms/stellar-disbursement-platform/api-reference/payments -/platforms/stellar-disbursement-platform/api-reference/profile -/platforms/stellar-disbursement-platform/api-reference/provide-signed-challenge-transaction -/platforms/stellar-disbursement-platform/api-reference/receivers -/platforms/stellar-disbursement-platform/api-reference/refresh-token -/platforms/stellar-disbursement-platform/api-reference/registration -/platforms/stellar-disbursement-platform/api-reference/request-challenge-transaction -/platforms/stellar-disbursement-platform/api-reference/request-registration-url -/platforms/stellar-disbursement-platform/api-reference/reset-password -/platforms/stellar-disbursement-platform/api-reference/retrieve-a-disbursement -/platforms/stellar-disbursement-platform/api-reference/retrieve-a-payment -/platforms/stellar-disbursement-platform/api-reference/retrieve-a-receiver -/platforms/stellar-disbursement-platform/api-reference/retrieve-a-tenant -/platforms/stellar-disbursement-platform/api-reference/retrieve-all-statistics -/platforms/stellar-disbursement-platform/api-reference/retrieve-disbursement-statistics -/platforms/stellar-disbursement-platform/api-reference/retrieve-stellar-info-file -/platforms/stellar-disbursement-platform/api-reference/send-one-time-passcode -/platforms/stellar-disbursement-platform/api-reference/soft-delete-a-tenant -/platforms/stellar-disbursement-platform/api-reference/start-wallet-registration -/platforms/stellar-disbursement-platform/api-reference/statistics -/platforms/stellar-disbursement-platform/api-reference/update-a-disbursement-status -/platforms/stellar-disbursement-platform/api-reference/update-a-tenant -/platforms/stellar-disbursement-platform/api-reference/update-api-key -/platforms/stellar-disbursement-platform/api-reference/update-bridge-integration -/platforms/stellar-disbursement-platform/api-reference/update-organization-profile -/platforms/stellar-disbursement-platform/api-reference/update-receiver -/platforms/stellar-disbursement-platform/api-reference/update-user-activation-status -/platforms/stellar-disbursement-platform/api-reference/update-user-profile -/platforms/stellar-disbursement-platform/api-reference/update-user-role -/platforms/stellar-disbursement-platform/api-reference/update-wallet -/platforms/stellar-disbursement-platform/api-reference/upload-disbursement-instructions -/platforms/stellar-disbursement-platform/api-reference/users -/platforms/stellar-disbursement-platform/api-reference/verify-receiver-registration /search diff --git a/scripts/ap_new_version.mjs b/scripts/ap_new_version.mjs deleted file mode 100644 index 98c1ee3d05..0000000000 --- a/scripts/ap_new_version.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import fs from "fs"; -import { exit } from "process"; - -const VERSION = process.argv[2] - -let _, major, minor, patch - -try { - [_, major, minor, patch] = VERSION.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/) -} catch (e) { - console.error(`Error: invalid version string. Expected semantic version like \`1.2.3\`, received \`${VERSION}\``) - exit(1) -} - -fs.copyFileSync('openapi/anchor-platform/bundled-platform.yaml', `openapi/anchor-platform/versions/platform-${VERSION}.yaml`) -fs.copyFileSync('openapi/anchor-platform/bundled-callbacks.yaml', `openapi/anchor-platform/versions/callbacks-${VERSION}.yaml`) -fs.copyFileSync('openapi/anchor-platform/bundled-custody.yaml', `openapi/anchor-platform/versions/custody-${VERSION}.yaml`) diff --git a/scripts/copyIgnoredFiles.mjs b/scripts/copyIgnoredFiles.mjs index 022f52f9c7..11dd67a1ea 100644 --- a/scripts/copyIgnoredFiles.mjs +++ b/scripts/copyIgnoredFiles.mjs @@ -1,6 +1,7 @@ import fs from 'fs'; import path from 'path'; -import glob from 'glob'; +import { globSync } from 'glob'; +// import glob from 'glob'; import yaml from 'js-yaml'; // Define the list of language codes @@ -94,19 +95,18 @@ function copyIgnoredFilesForLanguages(config) { let srcPattern = source .replace(/^\//, '') // Strip the leading slash for the source path .replace(/\*\*\/\*$/, ''); // strips the glob patter from the end - srcPattern += ignorePattern - - glob(srcPattern, (err, files) => { - if (err) { - logMessage(`Error processing pattern ${srcPattern}: ${err.message}`); - return; - } - - files.forEach(srcPath => { - languages.forEach(languageCode => { - const destPath = getTranslationPath(translation, languageCode, srcPath, sources); - copyFileOrDirectory(srcPath, destPath); - }); + srcPattern += ignorePattern; + + const files = globSync(srcPattern); + if (!files) { + logMessage(`Error processing pattern ${srcPattern}`); + return; + } + + files.forEach(srcPath => { + languages.forEach(languageCode => { + const destPath = getTranslationPath(translation, languageCode, srcPath, sources); + copyFileOrDirectory(srcPath, destPath); }); }); }); diff --git a/scripts/stellar_cli.mjs b/scripts/stellar_cli.mjs index 2ef9fc87aa..aac91cfd98 100644 --- a/scripts/stellar_cli.mjs +++ b/scripts/stellar_cli.mjs @@ -48,7 +48,7 @@ const fullHelpDocsPath = path.join(localRepoPath, "FULL_HELP_DOCS.md"); const fullHelpDocsContent = fs.readFileSync(fullHelpDocsPath, "utf8"); const modifiedContent = `--- -sidebar_position: 30 +sidebar_position: 10 description: This document contains the help content for the stellar command-line program. --- diff --git a/scripts/stellar_cli_plugins.mjs b/scripts/stellar_cli_plugins.mjs new file mode 100644 index 0000000000..3c6a8daeb3 --- /dev/null +++ b/scripts/stellar_cli_plugins.mjs @@ -0,0 +1,61 @@ +import fs from "fs-extra"; +import https from "https"; + +// In case there are plugins to exclude from the list, add them here. +// E.g. "user/repo" +const excludePlugins = []; + +function exportMDX(data) { + const pluginsContent = data.items.reduce((buffer, item) => { + if (excludePlugins.includes(item.full_name)) { + return buffer; + } + + const plugin = `### [${item.full_name}](${item.html_url}) + +${item.description || ""} + +[${item.html_url}](${item.html_url}) +`; + + return buffer + plugin; + }, ""); + + const modifiedContent = `--- +title: Plugins List +description: See a list of published Stellar CLI plugin +sidebar_position: 30 +--- + +This is a list of all plugins made available by the community, so please review with care before using them. + +${pluginsContent} +`; + + fs.writeFileSync("docs/tools/cli/plugins-list.mdx", modifiedContent); + + console.log("Plugin list generated successfully."); +} + +const endpoint = + "https://api.github.com/search/repositories?q=topic%3Astellar-cli-plugin+fork%3Afalse+archived%3Afalse&per_page=100&sort=stars&order=desc"; + +https + .get( + endpoint, + { headers: { "user-agent": "https://github.com/stellar/stellar-docs" } }, + (res) => { + let data = ""; + + res.on("data", (chunk) => { + data += chunk; + }); + + res.on("end", () => { + exportMDX(JSON.parse(data)); + }); + }, + ) + .on("error", (err) => { + console.error("Error fetching plugin list:", err.message); + }); diff --git a/scripts/version_ap.sh b/scripts/version_ap.sh deleted file mode 100644 index 64e0354f10..0000000000 --- a/scripts/version_ap.sh +++ /dev/null @@ -1,41 +0,0 @@ -##### ANCHOR PLATFORM VERSIONING PROCESS - -# Steps I'm using to cut a new version of the Anchor Platform (probably don't -# _actually_ run this as a script, but more use it for copy/pasta inspiration) - -# 1. use docusaurus to create a new version of the `ap` plugin instance -yarn docusaurus docs:version:ap 2.8.4 # this creates the new /ap_versioned_etc directories - -# 2. copy existing (bundled) specs to versioned specfile dir -cp openapi/anchor-platform/bundled-platform.yaml openapi/anchor-platform/versions/platform-2.8.4.yaml -cp openapi/anchor-platform/bundled-callbacks.yaml openapi/anchor-platform/versions/callbacks-2.8.4.yaml -cp openapi/anchor-platform/bundled-custody.yaml openapi/anchor-platform/versions/custody-2.8.4.yaml - -# 3. add version to openapi plugin configurations in -# `/config/anchorPlatform.config.ts`. this lets us update the versioned -# generated docs when needed. (Just duplicate what's already there, but -# replace the version numbers where necessary) - -# 4. generate the 2.x branch of the api docs -# (cleaning is optional, i think?) -yarn docusaurus clean-api-docs:version -p ap-apis ap_platform:2.8.4 -yarn docusaurus clean-api-docs:version -p ap-apis ap_callbacks:2.8.4 -yarn docusaurus clean-api-docs:version -p ap-apis ap_custody:2.8.4 -# generate the mdx pages -yarn docusaurus gen-api-docs:version -p ap-apis ap_platform:2.8.4 -yarn docusaurus gen-api-docs:version -p ap-apis ap_callbacks:2.8.4 -yarn docusaurus gen-api-docs:version -p ap-apis ap_custody:2.8.4 -# remove the unwanted *.info.mdx files -rm ap_versioned_docs/**/*.info.mdx - -# 4. generate the 3.x branch of the api docs -# (cleaning is optional, i think?) -yarn docusaurus clean-api-docs -p ap-apis ap_platform -yarn docusaurus clean-api-docs -p ap-apis ap_callbacks -yarn docusaurus clean-api-docs -p ap-apis ap_custody -# generate the mdx pages -yarn docusaurus gen-api-docs -p ap-apis ap_platform -yarn docusaurus gen-api-docs -p ap-apis ap_callbacks -yarn docusaurus gen-api-docs -p ap-apis ap_custody -# remove the unwanted *.info.mdx files -rm platforms/anchor-platform/**/*.info.mdx diff --git a/src/analytics-module.js b/src/analytics-module.js deleted file mode 100644 index 9c754c797d..0000000000 --- a/src/analytics-module.js +++ /dev/null @@ -1,67 +0,0 @@ -module.exports = () => ({ - name: 'analytics-module', - - injectHtmlTags() { - return { - headTags: [ - { - tagName: 'script', - innerHTML: ` - (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': - new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], - j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= - 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); - })(window,document,'script','dataLayer','GTM-M2JLH37'); - `, - }, - { - tagName: 'meta', - attributes: { - name: 'facebook-domain-verification', - content: 'd0o7hha86jfxvtqyxz3d9i5wtfanmy', - }, - }, - { - tagName: 'link', - attributes: { - rel: 'preconnect', - href: 'https://dev.visualwebsiteoptimizer.com', - }, - }, - { - tagName: 'script', - attributes: { - id: 'vwoCode', - }, - innerHTML: ` - window._vwo_code || (function() { - var account_id=814004, - version=2.1, - settings_tolerance=2000, - hide_element='body', - hide_element_style='opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;', - f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={nonce:v&&v.nonce,use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}v&&t.setAttribute('nonce',v.nonce);d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var n=this.getSettings(),i=d.createElement('script'),r=this;t=t||{};if(n){i.textContent=n;d.getElementsByTagName('head')[0].appendChild(i);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200||o.status===304){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var n=this.hide_element(),i=n?n+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=i;else t.appendChild(d.createTextNode(i));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var i=d.createElement('div');i.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;display: block !important;';i.setAttribute('id','_vis_opt_path_hides');i.classList.add('_vis_hide_layer');t.parentNode.insertBefore(i,t.nextSibling)}var o=window._vis_opt_url||d.URL,s='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(o)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:s})}else{this.load(s+'&x=true')}}};w._vwo_code=code;code.init();})(); - `, - }, - ], - preBodyTags: [ - { - tagName: 'script', - innerHTML: ` - if (typeof window.ga === "function") { - window.ga("require", "linker"); - window.ga("linker:autolink", ["www.stellar.org", "stellar.org"]); - } - `, - }, - { - tagName: 'noscript', - innerHTML: ` - - `, - }, - ], - }; - }, -}); diff --git a/src/components/Alert.js b/src/components/Alert.js deleted file mode 100644 index 2d40e69aa3..0000000000 --- a/src/components/Alert.js +++ /dev/null @@ -1,4 +0,0 @@ -import React from 'react'; -import Admonition from '@theme/Admonition'; - -export const Alert = ({ children }) => {children}; diff --git a/src/components/AttributeTable/ListItem/index.js b/src/components/AttributeTable/ListItem/index.js deleted file mode 100644 index 7d06d4ae57..0000000000 --- a/src/components/AttributeTable/ListItem/index.js +++ /dev/null @@ -1,57 +0,0 @@ -import React from "react"; -import Details from "@theme/Details"; - -import { combineAdjacentStrings, partition } from "@site/src/helpers"; - -import styles from "./styles.module.scss"; -import Translate from "@docusaurus/Translate"; - -export const ListItem = (props) => { - const children = props.children.props.children.filter((child) => child !== "\n"); - - const [name, sublist] = children; - - const [typeElement, descriptionElement] = sublist.props.children.filter((child) => child !== "\n"); - - const type = - typeElement.props.children === "skip" ? null : typeElement.props.children; - - const [description, collapsedChildren] = partition( - React.Children.toArray(descriptionElement.props.children), - (child) => child?.type?.name !== "MDXUl" && child?.type?.name !== "ul", - ); - - const collapsedList = []; - collapsedChildren.length > 0 && collapsedChildren[0].props.children - .filter((child) => child !== "\n") - .map((child, index) => { - collapsedList.push( - {child}, - ); - }); - - return ( -
  • -

    - {name} - {type} -

    - -

    {description}

    - - {collapsedList.length > 0 && ( -
    - - Show child attributes - - - }> - {collapsedList} -
    - )} -
  • - ); -}; diff --git a/src/components/AttributeTable/ListItem/index.tsx b/src/components/AttributeTable/ListItem/index.tsx new file mode 100644 index 0000000000..67eb06bfd4 --- /dev/null +++ b/src/components/AttributeTable/ListItem/index.tsx @@ -0,0 +1,57 @@ +import React, { type ReactNode } from "react"; +import Details from "@theme/Details"; + +import { combineAdjacentStrings, partition } from "@site/src/helpers"; + +import styles from "./styles.module.scss"; +import Translate from "@docusaurus/Translate"; + +export function ListItem(props): ReactNode { + const children = props.children.props.children.filter((child) => child !== "\n"); + + const [name, sublist] = children; + + const [typeElement, descriptionElement] = sublist.props.children.filter((child) => child !== "\n"); + + const type = + typeElement.props.children === "skip" ? null : typeElement.props.children; + + const [description, collapsedChildren] = partition( + React.Children.toArray(descriptionElement.props.children), + (child) => child?.type?.name !== "MDXUl" && child?.type?.name !== "ul", + ); + + const collapsedList = []; + collapsedChildren.length > 0 && collapsedChildren[0].props.children + .filter((child) => child !== "\n") + .map((child, index) => { + collapsedList.push( + {child}, + ); + }); + + return ( +
  • +

    + {name} + {type} +

    + +

    {description}

    + + {collapsedList.length > 0 && ( +
    + + Show child attributes + + + }> + {collapsedList} +
    + )} +
  • + ); +}; diff --git a/src/components/AttributeTable/index.js b/src/components/AttributeTable/index.js deleted file mode 100644 index fef1b2b007..0000000000 --- a/src/components/AttributeTable/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; - -import { ListItem } from "./ListItem"; - -import styles from "./styles.module.scss"; - -export const AttributeTable = ({ children }) => { - - const renderArray = []; - children.props.children - .filter((child) => child !== "\n") - .map((child, index) => { - renderArray.push( - {child}, - ); - }); - - return ( -
    - {renderArray} -
    - ); -}; diff --git a/src/components/AttributeTable/index.tsx b/src/components/AttributeTable/index.tsx new file mode 100644 index 0000000000..b5d5070867 --- /dev/null +++ b/src/components/AttributeTable/index.tsx @@ -0,0 +1,21 @@ +import React, { type ReactNode } from "react"; +import { ListItem } from "./ListItem"; + +import styles from "./styles.module.scss"; + +export function AttributeTable({ children }): ReactNode { + const renderArray = []; + children.props.children + .filter((child) => child !== "\n") + .map((child, index) => { + renderArray.push( + {child}, + ); + }); + + return ( +
    + {renderArray} +
    + ); +}; diff --git a/src/components/CanvasFeeGraphs/index.tsx b/src/components/CanvasFeeGraphs/index.tsx deleted file mode 100644 index d387be4518..0000000000 --- a/src/components/CanvasFeeGraphs/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; -import BrowserOnly from '@docusaurus/BrowserOnly'; - -import styles from './styles.module.css'; -import Translate from '@docusaurus/Translate'; - -const translatedLoading = ( - - Loading... - -) - -export default function CanvasEmbed() { - return ( -
    - {translatedLoading}
    }> - {() => { - const Canvas = require("canvas-embed").Canvas; - return ; - }} - - - ); -} diff --git a/src/components/CanvasFeeGraphs/styles.module.css b/src/components/CanvasFeeGraphs/styles.module.css deleted file mode 100644 index 5d9f24d754..0000000000 --- a/src/components/CanvasFeeGraphs/styles.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.CanvasFeeWrapper { - margin-bottom: var(--ifm-paragraph-margin-bottom); -} diff --git a/src/components/CodeExample.js b/src/components/CodeExample.js deleted file mode 100644 index 29696d55e8..0000000000 --- a/src/components/CodeExample.js +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import { CODE_LANGS } from "../constants"; -import Translate from '@docusaurus/Translate'; - -export const CodeExample = ({ children }) => ( - - {React.Children.map(children, (child, index) => { - const codeProps = child.props.children.props; - const { className = '' } = codeProps; - - const [, language] = className.split('-'); - - return ( - - Example - - } - > - - {codeProps.children} - - - ); - })} - -); diff --git a/src/components/CodeExample.tsx b/src/components/CodeExample.tsx new file mode 100644 index 0000000000..ced4b65408 --- /dev/null +++ b/src/components/CodeExample.tsx @@ -0,0 +1,37 @@ +import React, { type ReactNode } from 'react'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import { CODE_LANGS } from "@site/config/constants"; +import Translate from '@docusaurus/Translate'; + +export function CodeExample({ children }): ReactNode { + return ( + + {React.Children.map(children, (child, index) => { + const codeProps = child.props.children.props; + const { className = '' } = codeProps; + + const [, language] = className.split('-'); + + return ( + + Example + + } + > + + {codeProps.children} + + + ); + })} + + ); +}; diff --git a/src/components/Endpoint.js b/src/components/Endpoint.js deleted file mode 100644 index 11249eb596..0000000000 --- a/src/components/Endpoint.js +++ /dev/null @@ -1,4 +0,0 @@ -import React from "react"; -import { MethodTable } from "./MethodTable"; - -export const Endpoint = ({ children }) => {children}; diff --git a/src/components/EndpointsTable.js b/src/components/EndpointsTable.js deleted file mode 100644 index a2db54903d..0000000000 --- a/src/components/EndpointsTable.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import { MethodTable } from "./MethodTable"; -import Translate from "@docusaurus/Translate"; - -const transledEndpoints = ( - - Endpoints - -) - -export const EndpointsTable = ({ children, title = transledEndpoints }) => ( - {children} -); diff --git a/src/components/EndpointsTable.tsx b/src/components/EndpointsTable.tsx new file mode 100644 index 0000000000..bec60fbd94 --- /dev/null +++ b/src/components/EndpointsTable.tsx @@ -0,0 +1,17 @@ +import React, { type ReactNode } from "react"; +import { MethodTable } from "./MethodTable"; +import Translate from "@docusaurus/Translate"; + +const transledEndpoints = ( + + Endpoints + +) + +export function EndpointsTable({ children, title = transledEndpoints }): ReactNode { + return ( + {children} + ); +}; diff --git a/src/components/ExampleResponse/index.js b/src/components/ExampleResponse/index.js deleted file mode 100644 index 0c6558fe57..0000000000 --- a/src/components/ExampleResponse/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import clsx from "clsx"; - -import styles from "./styles.module.scss"; -import Translate from "@docusaurus/Translate"; - -const transledExample = ( - - Example - -) - -export const ExampleResponse = ({ children, title = transledExample }) => { - const codeElement = children.props.children; - - return React.cloneElement(codeElement, { - title, - className: clsx(styles.ExampleResponse, codeElement.props.className), - }); -}; diff --git a/src/components/ExampleResponse/index.tsx b/src/components/ExampleResponse/index.tsx new file mode 100644 index 0000000000..72a2b5e304 --- /dev/null +++ b/src/components/ExampleResponse/index.tsx @@ -0,0 +1,22 @@ +import React, { type ReactNode } from "react"; +import clsx from "clsx"; + +import styles from "./styles.module.scss"; +import Translate from "@docusaurus/Translate"; + +const translatedExample = ( + + Example + +) + +export function ExampleResponse({ children, title = translatedExample }): ReactNode { + const codeElement = children.props.children; + + return React.cloneElement(codeElement, { + title, + className: clsx(styles.ExampleResponse, codeElement.props.className), + }); +}; diff --git a/src/components/MethodTable/index.js b/src/components/MethodTable/index.js deleted file mode 100644 index 831fef8742..0000000000 --- a/src/components/MethodTable/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -import styles from "./styles.module.scss"; - -export const MethodTable = ({ children, title }) => ( -
    - {title &&
    {title}
    } - {children} -
    -); diff --git a/src/components/MethodTable/index.tsx b/src/components/MethodTable/index.tsx new file mode 100644 index 0000000000..d08143c5b9 --- /dev/null +++ b/src/components/MethodTable/index.tsx @@ -0,0 +1,12 @@ +import React, { type ReactNode } from "react"; + +import styles from "./styles.module.scss"; + +export function MethodTable({ children, title }): ReactNode { + return ( +
    + {title &&
    {title}
    } + {children} +
    + ); +} diff --git a/src/components/ReaderFeedback/index.js b/src/components/ReaderFeedback/index.js deleted file mode 100644 index 77fc242f19..0000000000 --- a/src/components/ReaderFeedback/index.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { useState } from "react"; -import useIsBrowser from '@docusaurus/useIsBrowser'; - -import IconThumbsUp from '@site/static/icons/thumbs-up.svg'; -import IconThumbsDown from '@site/static/icons/thumbs-down.svg'; -import Translate, { translate } from "@docusaurus/Translate"; - -const ReaderFeedback = ({ pageId }) => { - const [feedbackGiven, setFeedbackGiven] = useState(false); - const isBrowser = useIsBrowser(); - if (!isBrowser) { - return null; - } - - const giveFeedback = (value) => { - setFeedbackGiven(true); - }; - - return ( -
    - {feedbackGiven ? ( - - Thanks for your feedback! - - ) : ( - <> - - Did you find this page helpful? - - - - - )} -
    - ); -}; - -export default ReaderFeedback; diff --git a/src/components/ReaderFeedback/index.tsx b/src/components/ReaderFeedback/index.tsx new file mode 100644 index 0000000000..47da77d651 --- /dev/null +++ b/src/components/ReaderFeedback/index.tsx @@ -0,0 +1,57 @@ +import React, { useState, type ReactNode } from "react"; +import useIsBrowser from '@docusaurus/useIsBrowser'; + +import IconThumbsUp from '@site/static/icons/thumbs-up.svg'; +import IconThumbsDown from '@site/static/icons/thumbs-down.svg'; +import Translate, { translate } from "@docusaurus/Translate"; + +export default function ReaderFeedback(): ReactNode { + const [feedbackGiven, setFeedbackGiven] = useState(false); + + const isBrowser = useIsBrowser(); + if (!isBrowser) { + return null; + } + + const giveFeedback = () => { + setFeedbackGiven(true); + }; + + return ( +
    + {feedbackGiven ? ( + + Thanks for your feedback! + + ) : ( + <> + + Did you find this page helpful? + + + + + )} +
    + ); +}; diff --git a/src/components/RedirectPage.js b/src/components/RedirectPage.js deleted file mode 100644 index 3672c5cf2e..0000000000 --- a/src/components/RedirectPage.js +++ /dev/null @@ -1,16 +0,0 @@ -import React, { useEffect } from 'react'; -import PropTypes from 'prop-types'; - -function RedirectPage({ to }) { - useEffect(() => { - window.location.href = to; - }, [to]); - - return null; -} - -RedirectPage.propTypes = { - to: PropTypes.string.isRequired, -}; - -export default RedirectPage; \ No newline at end of file diff --git a/src/components/RedirectPage.tsx b/src/components/RedirectPage.tsx new file mode 100644 index 0000000000..4b6cd96279 --- /dev/null +++ b/src/components/RedirectPage.tsx @@ -0,0 +1,11 @@ +import React, { useEffect, type ReactNode } from 'react'; + +export function RedirectPage({ to }: { to: string }): ReactNode { + useEffect(() => { + window.location.href = to; + }, [to]); + + return null; +} + +export default RedirectPage; diff --git a/src/components/WalletCodeExample.tsx b/src/components/WalletCodeExample.tsx index f1d38c062d..22b5c86371 100644 --- a/src/components/WalletCodeExample.tsx +++ b/src/components/WalletCodeExample.tsx @@ -4,7 +4,7 @@ import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; import BrowserOnly from '@docusaurus/BrowserOnly'; import {getCookie, walletDefaultLang} from "./LanguageSpecific"; -import {CODE_LANGS} from "../constants"; +import {CODE_LANGS} from "@site/config/constants"; import Translate from '@docusaurus/Translate'; // TODO: when TS docs are ready set to false @@ -22,7 +22,7 @@ export const WalletCodeExample: React.FC = ({children}) {() => getTabs(children, getCookie())} ; -const getTabs = (children: React.ReactElement, targetLanguage: String) => { +const getTabs = (children: React.ReactElement, targetLanguage: string) => { const defaultVal = CODE_LANGS[targetLanguage]; const tabs = React.Children.map(children, (child, index) => { diff --git a/src/components/WalletGuideWarn.tsx b/src/components/WalletGuideWarn.tsx index e560f6bc03..068a1cb45a 100644 --- a/src/components/WalletGuideWarn.tsx +++ b/src/components/WalletGuideWarn.tsx @@ -2,7 +2,7 @@ import React from "react"; import Admonition from '@theme/Admonition'; import {LanguageButtons} from "./LanguageButtons"; import {LanguageSpecific} from "./LanguageSpecific"; -import {CODE_LANGS} from "../constants"; +import {CODE_LANGS} from "@site/config/constants"; import Translate from "@docusaurus/Translate"; type WalletGuideWarnProps = { diff --git a/src/components/WrapperApiReference.js b/src/components/WrapperApiReference.js deleted file mode 100644 index 2a16427dbd..0000000000 --- a/src/components/WrapperApiReference.js +++ /dev/null @@ -1,37 +0,0 @@ -import React from "react"; -import clsx from "clsx"; - -import { partition } from "@site/src/helpers"; - -const RIGHT_COLUMN_COMPONENTS_NAME = { - CodeExample: "CodeExample", - EndpointsTable: "EndpointsTable", - ExampleResponse: "ExampleResponse", - MethodTable: "MethodTable", - table: "table", -}; - -export const WrapperApiReference = ({ children, ...props }) => { - const [rightColumnContent, middleColumnContent] = React.useMemo( - () => - partition( - React.Children.toArray(children), - (child) => RIGHT_COLUMN_COMPONENTS_NAME[child.props.mdxType], - ), - [children], - ); - - const hasRightColumn = rightColumnContent.length > 0; - - return ( -
    -
    - {middleColumnContent} -
    - - {hasRightColumn && ( - - )} -
    - ); -}; diff --git a/src/components/WrapperApiReference.tsx b/src/components/WrapperApiReference.tsx new file mode 100644 index 0000000000..3eb7e909a3 --- /dev/null +++ b/src/components/WrapperApiReference.tsx @@ -0,0 +1,37 @@ +import React, { type ReactNode } from "react"; +import clsx from "clsx"; + +import { partition } from "@site/src/helpers"; + +const RIGHT_COLUMN_COMPONENTS_NAME = { + CodeExample: "CodeExample", + EndpointsTable: "EndpointsTable", + ExampleResponse: "ExampleResponse", + MethodTable: "MethodTable", + table: "table", +}; + +export function WrapperApiReference({ children, ...props }): ReactNode { + const [rightColumnContent, middleColumnContent] = React.useMemo( + () => + partition( + React.Children.toArray(children), + (child) => RIGHT_COLUMN_COMPONENTS_NAME[child.props.mdxType], + ), + [children], + ); + + const hasRightColumn = rightColumnContent.length > 0; + + return ( +
    +
    + {middleColumnContent} +
    + + {hasRightColumn && ( + + )} +
    + ); +}; diff --git a/src/components/YouTube/index.tsx b/src/components/YouTube/index.tsx new file mode 100644 index 0000000000..6babf82b55 --- /dev/null +++ b/src/components/YouTube/index.tsx @@ -0,0 +1,31 @@ +import React, { type ReactNode } from 'react'; + +export function YouTube({ ID }: { ID: string; }): ReactNode { + return ( +
    + +
    + ); +}; + +export default YouTube; diff --git a/src/constants.ts b/src/constants.ts deleted file mode 100644 index 1d5efc3d30..0000000000 --- a/src/constants.ts +++ /dev/null @@ -1,28 +0,0 @@ -export const CODE_LANGS = { - bash: 'bash', - cpp: 'C++', - curl: 'cURL', - dart: 'Flutter', - flutter: 'Flutter', - swift: 'Swift', - docker: 'Dockerfile', - go: 'Go', - html: 'html', - kotlin: 'Kotlin', - kt: 'Kotlin', - java: 'Java', - javascript: 'JavaScript', - js: 'JavaScript', - json: 'JSON', - json5: 'JSON5', - python: 'Python', - scss: 'SCSS', - sql: 'SQL', - rust: 'Rust', - php: 'PHP', - toml: 'TOML', - ts: 'TypeScript', - tsx: 'TSX', - typescript: 'TypeScript', - yaml: 'YAML', -}; diff --git a/src/css/custom.scss b/src/css/custom.scss index 8442d2d706..87ce93bec3 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -66,12 +66,10 @@ html[data-theme="dark"] { --ifm-background-color: var(--ifm-color-black); } -.markdown > h4 { +.markdown>h4 { --ifm-h4-font-size: 1.25rem; - margin-bottom: calc( - var(--ifm-heading-vertical-rhythm-bottom) * var(--ifm-leading) - ); + margin-bottom: calc(var(--ifm-heading-vertical-rhythm-bottom) * var(--ifm-leading)); margin-top: calc(var(--ifm-h4-vertical-rhythm-top) * var(--ifm-leading)); } @@ -93,8 +91,7 @@ html[data-theme="dark"] { svg { height: 1.5rem; width: 1.5rem; - transition: color var(--ifm-transition-fast) - var(--ifm-transition-timing-default); + transition: color var(--ifm-transition-fast) var(--ifm-transition-timing-default); &:hover, &:focus { @@ -126,20 +123,14 @@ html[data-theme="dark"] { div[class^="announcementBar_"] { font-size: 18px; - --site-announcement-bar-stripe-color1: hsl( - var(--site-primary-hue-saturation) 85% - ); - --site-announcement-bar-stripe-color2: hsl( - var(--site-primary-hue-saturation) 95% - ); - - background: repeating-linear-gradient( - 35deg, - var(--site-announcement-bar-stripe-color1), - var(--site-announcement-bar-stripe-color1) 20px, - var(--site-announcement-bar-stripe-color2) 10px, - var(--site-announcement-bar-stripe-color2) 40px - ); + --site-announcement-bar-stripe-color1: hsl(var(--site-primary-hue-saturation) 85%); + --site-announcement-bar-stripe-color2: hsl(var(--site-primary-hue-saturation) 95%); + + background: repeating-linear-gradient(35deg, + var(--site-announcement-bar-stripe-color1), + var(--site-announcement-bar-stripe-color1) 20px, + var(--site-announcement-bar-stripe-color2) 10px, + var(--site-announcement-bar-stripe-color2) 40px); height: fit-content; } @@ -162,7 +153,7 @@ div[class^="announcementBar_"] { } } -.navbar .dropdown > a.active { +.navbar .dropdown>a.active { color: var(--ifm-color-primary); } @@ -192,15 +183,29 @@ select[data-testid="example-pairing-select"] { /* Header link icons */ .header-github-link::before { - content: "\f09b"; - font-family: "Font Awesome 6 Brands"; - font-size: x-large; + content: ''; + width: 24px; + height: 24px; + display: flex; + background-color: var(--ifm-navbar-link-color); + mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E"); + transition: background-color var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} + +.goog-te-gadget .goog-te-combo { + margin: 0 !important; } -.header-discord-link::before { - content: "\f392"; - font-family: "Font Awesome 6 Brands"; - font-size: x-large; +.my-google-translate-button::before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background-color: var(--ifm-navbar-link-color); + mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' aria-hidden='true' style='vertical-align: text-bottom' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z'%3E%3C/path%3E%3C/svg%3E"); + transition: background-color var(--ifm-transition-fast) + var(--ifm-transition-timing-default); } /* Hubble data dictionary formatting */ @@ -210,15 +215,15 @@ select[data-testid="example-pairing-select"] { max-width: 135%; thead { - color: var(--ifm-color-primary-darker); - background-color: var(--ifm-color-gray-300); - font-size: large; - text-align: left; - text-wrap: nowrap; + color: var(--ifm-color-primary-darker); + background-color: var(--ifm-color-gray-300); + font-size: large; + text-align: left; + text-wrap: nowrap; } td { - font-size: small; + font-size: small; } } @@ -231,8 +236,8 @@ select[data-testid="example-pairing-select"] { .dropdown__link.has-nested-items::after { content: '➜'; - margin-left: 10px; // spacing (use margin instead of padding when using flex) + margin-left: 10px; // spacing (use margin instead of padding when using flex) font-size: 1em; line-height: 1; display: inline-block; -} \ No newline at end of file +} diff --git a/src/dev-server-plugin.js b/src/dev-server-plugin.js deleted file mode 100644 index bdc7cbc705..0000000000 --- a/src/dev-server-plugin.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = () => ({ - name: "dev-server-plugin", - - configureWebpack() { - return { - devServer: { - host: '0.0.0.0', - client: { - webSocketURL: { - port: 0, - }, - }, - }, - }; - }, -}); \ No newline at end of file diff --git a/src/pages/platforms.mdx b/src/pages/platforms.mdx deleted file mode 100644 index 2fac6fdb13..0000000000 --- a/src/pages/platforms.mdx +++ /dev/null @@ -1,15 +0,0 @@ -# SDF Platforms - -SDF has open-sourced some "platforms" that make it easier to accomplish certain things on the network. - -## Anchor Platform - -The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. - -[Learn more about the Anchor Platform API here!](/platforms/anchor-platform) - -## Stellar Disbursement Platform - -The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. - -[Learn more about the Stellar Disbursement Platform API here!](/platforms/stellar-disbursement-platform) diff --git a/src/plugins/analytics-module/index.ts b/src/plugins/analytics-module/index.ts new file mode 100644 index 0000000000..596bb4fd3f --- /dev/null +++ b/src/plugins/analytics-module/index.ts @@ -0,0 +1,23 @@ +import type { LoadContext, Plugin } from "@docusaurus/types"; + +export default function analyticsModulePlugin(context: LoadContext): Plugin { + return { + name: 'stellar-docs-analytics-module-plugin', + + injectHtmlTags() { + return { + preBodyTags: [ + { + tagName: 'script', + innerHTML: ` + if (typeof window.ga === "function") { + window.ga("require", "linker"); + window.ga("linker:autolink", ["www.stellar.org", "stellar.org"]); + } + `, + }, + ], + }; + }, + }; +} diff --git a/src/plugins/route-export/index.ts b/src/plugins/route-export/index.ts new file mode 100644 index 0000000000..680a81a373 --- /dev/null +++ b/src/plugins/route-export/index.ts @@ -0,0 +1,47 @@ +import fs from 'fs'; +import path from 'path'; + +import type { LoadContext, Plugin } from "@docusaurus/types"; + +export interface PluginOptions { + outputDir?: string; + outputFilename?: string; +} + +/** + * Write all route paths to a text file, to be checked in to git. This allows + * for easier comparison of route changes, and a way to identify if nginx + * redirects are required. + * + * @param context site context, provided by Docusaurus + * @param options user-defined options + * @returns plugin instance that will write all routes to a text file + */ +export default async function routeExportPlugin( + context: LoadContext, + options?: PluginOptions +): Promise { + return { + name: 'stellar-docs-route-export-plugin', + + async postBuild({ routesPaths }) { + // Get all routes from Docusaurus + const routes = routesPaths.map(route => { + // Ensure routes are relative to the site URL + return route.startsWith('/') ? route : `/${route}`; + }); + + // Sort routes for better readability + routes.sort(); + + // Create content with one URL per line + const content = routes.join('\n') + '\n'; + + // Write to the repo root directory + const outputPath = path.join(options.outputDir || context.siteDir, options.outputFilename || 'routes.txt'); + fs.writeFileSync(outputPath, content); + + console.log(`✅ Exported ${routes.length} routes to ${outputPath}`); + } + } +} diff --git a/src/route-export-plugin.js b/src/route-export-plugin.js deleted file mode 100644 index ac580a488d..0000000000 --- a/src/route-export-plugin.js +++ /dev/null @@ -1,27 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -module.exports = function routeExportPlugin(context, options) { - return { - name: 'route-export-plugin', - async postBuild({ routesPaths, outDir }) { - // Get all routes from Docusaurus - const routes = routesPaths.map(route => { - // Ensure routes are relative to the site URL - return route.startsWith('/') ? route : `/${route}`; - }); - - // Sort routes for better readability - routes.sort(); - - // Create content with one URL per line - const content = routes.join('\n') + '\n'; - - // Write to the repo root directory - const outputPath = path.join(context.siteDir, 'routes.txt'); - fs.writeFileSync(outputPath, content); - - console.log(`✅ Exported ${routes.length} routes to ${outputPath}`); - }, - }; -}; \ No newline at end of file diff --git a/src/sidebar-generator.js b/src/sidebar-generator.js index 203386815e..d5484e5f3e 100644 --- a/src/sidebar-generator.js +++ b/src/sidebar-generator.js @@ -3,98 +3,79 @@ import path from "path"; module.exports = async ({ defaultSidebarItemsGenerator, ...args }) => { const docs = args.docs.filter( - (item) => - !item.source.includes(".api.mdx") && - !item.source.includes(".tag.mdx") && - item.source !== "@site/api/READ_FIRST.md", + (item) => !/horizon.*\.(api|tag)\.mdx$/.test(item.source) ); // Get the sidebar items that are generated by default const sidebarItems = await defaultSidebarItemsGenerator({ ...args, docs }); - // Find the "Interactive Learning" category - const interactiveLearning = sidebarItems.find( - (item) => - item.type === 'category' && item.label.toLowerCase() === 'interactive learning', + const apisOverviewCategory = sidebarItems.find( + (item) => item.type === "category" && item.label.toLowerCase() === "apis overview", ); - // Find the "Dapps Challenge" category within "Interactive Learning" - const dappsChallenge = interactiveLearning?.items.find( - (item) => - item.type === 'category' && item.label.toLowerCase() === 'dapps challenge', - ); - - // If the Dapps Challenge has been found, insert a link to the Dashboard in - // the sidebar. - if (dappsChallenge) { - dappsChallenge.items.splice(1, 0, { - type: 'link', - href: '/docs/learn/interactive/dapps/dashboard', - label: 'Dapps Challenge Dashboard', - }); - } - - const horizonCategory = sidebarItems.find( - (item) => item.type === "category" && item.label.toLowerCase() === "horizon", - ); - - if (horizonCategory) { - const apiReference = horizonCategory.items.find( - (item) => item.type === "category" && item.label.toLowerCase() === "api reference", + if (apisOverviewCategory) { + const horizonCategory = apisOverviewCategory.items.find( + (item) => item.type === "category" && item.label.toLowerCase() === "horizon", ); - if (apiReference) { - const resources = apiReference.items.find( - (item) => - item.type === "category" && item.label.toLowerCase() === "resources", - ); - const aggregations = apiReference.items.find( - (item) => - item.type === "category" && item.label.toLowerCase() === "aggregations" - ) - - const sidebarPath = path.join( - args.version.contentPath, - args.item.dirName, - "./horizon/api-reference/sidebar.ts", + if (horizonCategory) { + const apiReference = horizonCategory.items.find( + (item) => item.type === "category" && item.label.toLowerCase() === "api reference", ); - if (resources && fs.existsSync(sidebarPath)) { - const generatedApiSidebar = require(sidebarPath)[0]; - - const categories = resources.items.filter( - (item) => item.type === "category", + if (apiReference) { + const resources = apiReference.items.find( + (item) => + item.type === "category" && item.label.toLowerCase() === "resources", ); + const aggregations = apiReference.items.find( + (item) => + item.type === "category" && item.label.toLowerCase() === "aggregations" + ) + + const sidebarPath = path.join( + args.version.contentPath, + args.item.dirName, + "./apis/horizon/api-reference/sidebar.ts", + ); + + if (resources && fs.existsSync(sidebarPath)) { + const generatedApiSidebar = require(sidebarPath)[0]; - categories.forEach((category) => { - const generatedCategory = generatedApiSidebar.items.find( - (item) => item.type === "category" && item.label === category.label, + const categories = resources.items.filter( + (item) => item.type === "category", ); - if (generatedCategory) { - category.items = [...category.items, ...generatedCategory.items]; - } - }); - } + categories.forEach((category) => { + const generatedCategory = generatedApiSidebar.items.find( + (item) => item.type === "category" && item.label === category.label, + ); - if (aggregations && fs.existsSync(sidebarPath)) { - const generatedApiSidebar = require(sidebarPath)[1]; + if (generatedCategory) { + category.items = [...category.items, ...generatedCategory.items]; + } + }); + } - const categories = aggregations.items.filter( - (item) => item.type === "category", - ); + if (aggregations && fs.existsSync(sidebarPath)) { + const generatedApiSidebar = require(sidebarPath)[1]; - categories.forEach((category) => { - const generatedCategory = generatedApiSidebar.items.find( - (item) => item.type === "category" && item.label === category.label, + const categories = aggregations.items.filter( + (item) => item.type === "category", ); - if (generatedCategory) { - category.items = [...category.items, ...generatedCategory.items]; - } - }); - } + categories.forEach((category) => { + const generatedCategory = generatedApiSidebar.items.find( + (item) => item.type === "category" && item.label === category.label, + ); + + if (generatedCategory) { + category.items = [...category.items, ...generatedCategory.items]; + } + }); + } + } } } diff --git a/src/theme/DocCardList/index.tsx b/src/theme/DocCardList/index.tsx index 2629c76d8c..1ac1e68bb9 100644 --- a/src/theme/DocCardList/index.tsx +++ b/src/theme/DocCardList/index.tsx @@ -2,32 +2,37 @@ import React, {type ReactNode} from 'react'; import clsx from 'clsx'; import DocCardList from '@theme-original/DocCardList'; import type DocCardListType from '@theme/DocCardList'; -import { useCurrentSidebarCategory } from '@docusaurus/plugin-content-docs/client'; -import { useDocById } from '@docusaurus/plugin-content-docs/client'; +import { useCurrentSidebarCategory, useDocById } from '@docusaurus/plugin-content-docs/client'; import type { PropSidebarItem } from '@docusaurus/plugin-content-docs'; import type {WrapperProps} from '@docusaurus/types'; type Props = WrapperProps; -interface CustomDcListProps { +interface CustomDocCardListProps { items: PropSidebarItem[]; className: string; } -function DocCardListForCurrentSidebarCategory(props: CustomDcListProps): ReactNode { - const category = useCurrentSidebarCategory(); - return (category.label === 'Example Contracts' || category.label === 'Ejemplos de contratos') - ? - : (category.label === 'How-To Guides' || category.label === 'Guías de Cómo-Hacer') - ? - : + +function DocCardListForCurrentSidebarCategory(props: CustomDocCardListProps): ReactNode { + const category = useCurrentSidebarCategory() + + const exampleContractsLabels = ['Example Contracts', 'Ejemplos de contratos']; + const howToGuidesLabels = ['How-To Guides', 'Guías de Cómo-Hacer']; + + if (exampleContractsLabels.includes(category.label)) { + return + } else if (howToGuidesLabels.includes(category.label)) { + return + } + return } -function ExampleContractsDocCardList(props: CustomDcListProps): ReactNode { +function ExampleContractsDocCardList(props: CustomDocCardListProps): ReactNode { const { items, className } = props; return (
    - {items?.map((item, _) => { + {items?.filter(item => item.type === 'link').map((item) => { const doc = useDocById(item.docId ?? undefined); item.description = item.description ?? doc?.description; return ( @@ -40,21 +45,19 @@ function ExampleContractsDocCardList(props: CustomDcListProps): ReactNode { ); } -function GuidesDocCardList(props: CustomDcListProps): ReactNode { +function GuidesDocCardList(props: CustomDocCardListProps): ReactNode { const {items, className} = props; return (
    - {items?.map((item) => { - if (item.type === 'category') { - return ( -
    -

    {item.label}

    - {item.items.map((item, _) => -

    {item.label}

    , - )} -
    - ); - } + {items?.filter(item => item.type === 'category').map((item) => { + return ( +
    +

    {item.label}

    + {item.items.filter(item => item.type === 'link').map((item) => +

    {item.label}

    , + )} +
    + ); })}
    ); diff --git a/src/theme/DocSidebar/index.tsx b/src/theme/DocSidebar/index.tsx index efb2d41d06..f6e437e7d1 100644 --- a/src/theme/DocSidebar/index.tsx +++ b/src/theme/DocSidebar/index.tsx @@ -10,9 +10,9 @@ export default function DocSidebarWrapper(props: Props): ReactNode { // For all `/platforms` and `/docs/data` sidebars, remove the parent category from the sidebar. if ( - props.path.startsWith('/platforms') || + props.path.startsWith('/docs/platforms') || props.path.startsWith('/docs/data') || - props.path.startsWith('/es/platforms') || + props.path.startsWith('/es/docs/platforms') || props.path.startsWith('/es/docs/data') ) { newProps = { diff --git a/src/theme/MDXComponents.ts b/src/theme/MDXComponents.ts index 812ff36b3e..767b9bbb4c 100644 --- a/src/theme/MDXComponents.ts +++ b/src/theme/MDXComponents.ts @@ -1,13 +1,15 @@ import React from "react"; import MDXComponents from "@theme-original/MDXComponents"; +import { AttributeTable } from '@site/src/components/AttributeTable'; import { CodeExample } from '@site/src/components/CodeExample'; import { EndpointsTable } from '@site/src/components/EndpointsTable'; -import { AttributeTable } from '@site/src/components/AttributeTable'; +import { ExampleResponse } from '@site/src/components/ExampleResponse'; export default { ...MDXComponents, AttributeTable, CodeExample, EndpointsTable, + ExampleResponse, }; diff --git a/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx b/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx deleted file mode 100644 index 61274955b0..0000000000 --- a/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React, { type ReactNode } from 'react'; -import DocsVersionDropdownNavbarItem from '@theme-original/NavbarItem/DocsVersionDropdownNavbarItem'; -import type DocsVersionDropdownNavbarItemType from '@theme/NavbarItem/DocsVersionDropdownNavbarItem'; -import type { WrapperProps } from '@docusaurus/types'; -import { useLocation } from '@docusaurus/router'; - -type Props = WrapperProps; - -export default function DocsVersionDropdownNavbarItemWrapper(props: Props): ReactNode { - const { docsPluginId } = props; - const { pathname } = useLocation(); - - /** - * (Custom) check if we are in Anchor Platform docs. - * - * Given that the docsPluginId is 'ap' and the routeBasePath is - * '/platforms/anchor-platform', we can check for both of those to be true. If - * so, we want to show the version dropdown. Otherwise, we don't want to show - * it. This gives us the appearance of one, global, context-aware version - * dropdown that works with multi-instance setups. You want to declare a - * version dropdown for each plugin in your navbarItems config property for - * this to work well. - */ - if (!(pathname.match(/^(\/es)?\/platforms\/anchor-platform/) && docsPluginId === 'ap')) { - return null - } - return ( - <> - - - ); -} diff --git a/static/assets/SDP/SDP2-2.png b/static/assets/SDP/SDP2-2.png new file mode 100644 index 0000000000..bcfb472bd5 Binary files /dev/null and b/static/assets/SDP/SDP2-2.png differ diff --git a/static/assets/SDP/SDP32.png b/static/assets/SDP/SDP32.png new file mode 100644 index 0000000000..0e18f5ff95 Binary files /dev/null and b/static/assets/SDP/SDP32.png differ diff --git a/static/assets/SDP/SDP33.png b/static/assets/SDP/SDP33.png new file mode 100644 index 0000000000..88cfff4d4c Binary files /dev/null and b/static/assets/SDP/SDP33.png differ diff --git a/static/assets/SDP/SDP34.png b/static/assets/SDP/SDP34.png new file mode 100644 index 0000000000..586851ecdc Binary files /dev/null and b/static/assets/SDP/SDP34.png differ diff --git a/static/assets/SDP/SDP35.png b/static/assets/SDP/SDP35.png new file mode 100644 index 0000000000..3edb4a8124 Binary files /dev/null and b/static/assets/SDP/SDP35.png differ diff --git a/static/assets/SDP/SDP36.png b/static/assets/SDP/SDP36.png new file mode 100644 index 0000000000..63e884f6cf Binary files /dev/null and b/static/assets/SDP/SDP36.png differ diff --git a/static/assets/SDP/SDP37.png b/static/assets/SDP/SDP37.png new file mode 100644 index 0000000000..e59e344308 Binary files /dev/null and b/static/assets/SDP/SDP37.png differ diff --git a/static/assets/SDP/SDP38.png b/static/assets/SDP/SDP38.png new file mode 100644 index 0000000000..1e02ce064d Binary files /dev/null and b/static/assets/SDP/SDP38.png differ diff --git a/static/assets/SDP/SDP39.png b/static/assets/SDP/SDP39.png new file mode 100644 index 0000000000..7e505bf301 Binary files /dev/null and b/static/assets/SDP/SDP39.png differ diff --git a/static/assets/SDP/SDP40.png b/static/assets/SDP/SDP40.png new file mode 100644 index 0000000000..7d1745e1d7 Binary files /dev/null and b/static/assets/SDP/SDP40.png differ diff --git a/static/assets/SDP/SDP41.png b/static/assets/SDP/SDP41.png new file mode 100644 index 0000000000..ee214b6afd Binary files /dev/null and b/static/assets/SDP/SDP41.png differ diff --git a/static/assets/SDP/SDP42.png b/static/assets/SDP/SDP42.png new file mode 100644 index 0000000000..46168e43cd Binary files /dev/null and b/static/assets/SDP/SDP42.png differ diff --git a/static/assets/SDP/SDP43.png b/static/assets/SDP/SDP43.png new file mode 100644 index 0000000000..b27d151808 Binary files /dev/null and b/static/assets/SDP/SDP43.png differ diff --git a/static/assets/SDP/SDP44.png b/static/assets/SDP/SDP44.png new file mode 100644 index 0000000000..9bd8b28ebe Binary files /dev/null and b/static/assets/SDP/SDP44.png differ diff --git a/static/assets/SDP/SDP45.png b/static/assets/SDP/SDP45.png new file mode 100644 index 0000000000..8084a9a58c Binary files /dev/null and b/static/assets/SDP/SDP45.png differ diff --git a/static/assets/SDP/SDP46.png b/static/assets/SDP/SDP46.png new file mode 100644 index 0000000000..e938e13486 Binary files /dev/null and b/static/assets/SDP/SDP46.png differ diff --git a/static/assets/SDP/SDP47.png b/static/assets/SDP/SDP47.png new file mode 100644 index 0000000000..282193b656 Binary files /dev/null and b/static/assets/SDP/SDP47.png differ diff --git a/static/assets/SDP/SDP48.png b/static/assets/SDP/SDP48.png new file mode 100644 index 0000000000..141606cef4 Binary files /dev/null and b/static/assets/SDP/SDP48.png differ diff --git a/ap_versioned_docs/version-2.10/assets/SEP24-state-diagram.png b/static/assets/ap/SEP24-state-diagram.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/SEP24-state-diagram.png rename to static/assets/ap/SEP24-state-diagram.png diff --git a/static/assets/ap/anchor-platform-architecture-1.png b/static/assets/ap/anchor-platform-architecture-1.png new file mode 100644 index 0000000000..7aeec4523b Binary files /dev/null and b/static/assets/ap/anchor-platform-architecture-1.png differ diff --git a/static/assets/ap/anchor-platform-architecture-2.png b/static/assets/ap/anchor-platform-architecture-2.png new file mode 100644 index 0000000000..c22e2122dd Binary files /dev/null and b/static/assets/ap/anchor-platform-architecture-2.png differ diff --git a/ap_versioned_docs/version-2.10/assets/anchor-platform-sep24-demo-wallet-widget.png b/static/assets/ap/anchor-platform-sep24-demo-wallet-widget.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/anchor-platform-sep24-demo-wallet-widget.png rename to static/assets/ap/anchor-platform-sep24-demo-wallet-widget.png diff --git a/ap_versioned_docs/version-2.10/assets/anchor-platform-sep24-demo-wallet.png b/static/assets/ap/anchor-platform-sep24-demo-wallet.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/anchor-platform-sep24-demo-wallet.png rename to static/assets/ap/anchor-platform-sep24-demo-wallet.png diff --git a/ap_versioned_docs/version-2.10/assets/anchor-platform-sep31-demo-wallet-widget.png b/static/assets/ap/anchor-platform-sep31-demo-wallet-widget.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/anchor-platform-sep31-demo-wallet-widget.png rename to static/assets/ap/anchor-platform-sep31-demo-wallet-widget.png diff --git a/platforms/anchor-platform/assets/sep24-deposit-flow-diagram.png b/static/assets/ap/sep24-deposit-flow-diagram.png similarity index 100% rename from platforms/anchor-platform/assets/sep24-deposit-flow-diagram.png rename to static/assets/ap/sep24-deposit-flow-diagram.png diff --git a/ap_versioned_docs/version-2.10/assets/sep24-withdrawal-flow-diagram.png b/static/assets/ap/sep24-withdrawal-flow-diagram.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sep24-withdrawal-flow-diagram.png rename to static/assets/ap/sep24-withdrawal-flow-diagram.png diff --git a/ap_versioned_docs/version-3.0/assets/sep31-transition-diagram.png b/static/assets/ap/sep31-transition-diagram.png similarity index 100% rename from ap_versioned_docs/version-3.0/assets/sep31-transition-diagram.png rename to static/assets/ap/sep31-transition-diagram.png diff --git a/platforms/anchor-platform/assets/sep6-deposit-flow-diagram.png b/static/assets/ap/sep6-deposit-flow-diagram.png similarity index 100% rename from platforms/anchor-platform/assets/sep6-deposit-flow-diagram.png rename to static/assets/ap/sep6-deposit-flow-diagram.png diff --git a/ap_versioned_docs/version-2.10/assets/sep6-withdrawal-flow-diagram.png b/static/assets/ap/sep6-withdrawal-flow-diagram.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sep6-withdrawal-flow-diagram.png rename to static/assets/ap/sep6-withdrawal-flow-diagram.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_deposit_job.png b/static/assets/ap/sequence_diagram_sep24_deposit_job.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_deposit_job.png rename to static/assets/ap/sequence_diagram_sep24_deposit_job.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_deposit_webhook.png b/static/assets/ap/sequence_diagram_sep24_deposit_webhook.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_deposit_webhook.png rename to static/assets/ap/sequence_diagram_sep24_deposit_webhook.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_withdrawal_job.png b/static/assets/ap/sequence_diagram_sep24_withdrawal_job.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_withdrawal_job.png rename to static/assets/ap/sequence_diagram_sep24_withdrawal_job.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_withdrawal_webhook.png b/static/assets/ap/sequence_diagram_sep24_withdrawal_webhook.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep24_withdrawal_webhook.png rename to static/assets/ap/sequence_diagram_sep24_withdrawal_webhook.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep31_receive_job.png b/static/assets/ap/sequence_diagram_sep31_receive_job.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep31_receive_job.png rename to static/assets/ap/sequence_diagram_sep31_receive_job.png diff --git a/ap_versioned_docs/version-2.10/assets/sequence_diagram_sep31_receive_webhook.png b/static/assets/ap/sequence_diagram_sep31_receive_webhook.png similarity index 100% rename from ap_versioned_docs/version-2.10/assets/sequence_diagram_sep31_receive_webhook.png rename to static/assets/ap/sequence_diagram_sep31_receive_webhook.png diff --git a/static/assets/api/indexer/goldsky1.png b/static/assets/api/indexer/goldsky1.png deleted file mode 100644 index 485bc56d06..0000000000 Binary files a/static/assets/api/indexer/goldsky1.png and /dev/null differ diff --git a/static/assets/api/indexer/goldsky2.png b/static/assets/api/indexer/goldsky2.png deleted file mode 100644 index c0c7f976e0..0000000000 Binary files a/static/assets/api/indexer/goldsky2.png and /dev/null differ diff --git a/static/assets/api/indexer/goldsky3.png b/static/assets/api/indexer/goldsky3.png deleted file mode 100644 index c166e772e8..0000000000 Binary files a/static/assets/api/indexer/goldsky3.png and /dev/null differ diff --git a/static/assets/contract/contract-info-meta.png b/static/assets/contract/contract-info-meta.png new file mode 100644 index 0000000000..b07f8d3d41 Binary files /dev/null and b/static/assets/contract/contract-info-meta.png differ diff --git a/static/assets/contract/contract-info-spec.png b/static/assets/contract/contract-info-spec.png new file mode 100644 index 0000000000..09868b7367 Binary files /dev/null and b/static/assets/contract/contract-info-spec.png differ diff --git a/static/assets/contract/contract-info.png b/static/assets/contract/contract-info.png deleted file mode 100644 index 8b5d46ec0b..0000000000 Binary files a/static/assets/contract/contract-info.png and /dev/null differ diff --git a/static/assets/guides/fee-bump-transaction.png b/static/assets/guides/fee-bump-transaction.png new file mode 100644 index 0000000000..860b53598d Binary files /dev/null and b/static/assets/guides/fee-bump-transaction.png differ diff --git a/static/assets/lab/ab-tx-dashboard-01232026.png b/static/assets/lab/ab-tx-dashboard-01232026.png new file mode 100644 index 0000000000..3ca4f9252a Binary files /dev/null and b/static/assets/lab/ab-tx-dashboard-01232026.png differ diff --git a/static/assets/lab/horizon-saved-requests.png b/static/assets/lab/horizon-saved-requests.png deleted file mode 100644 index 5263788c28..0000000000 Binary files a/static/assets/lab/horizon-saved-requests.png and /dev/null differ diff --git a/static/assets/lab/lab-01232026.png b/static/assets/lab/lab-01232026.png new file mode 100644 index 0000000000..f64b8ebce9 Binary files /dev/null and b/static/assets/lab/lab-01232026.png differ diff --git a/static/assets/lab/lab-account-create.png b/static/assets/lab/lab-account-create.png deleted file mode 100644 index 2fbf7f1eb5..0000000000 Binary files a/static/assets/lab/lab-account-create.png and /dev/null differ diff --git a/static/assets/lab/lab-account-fund.png b/static/assets/lab/lab-account-fund.png deleted file mode 100644 index 36ebee0442..0000000000 Binary files a/static/assets/lab/lab-account-fund.png and /dev/null differ diff --git a/static/assets/lab/lab-account-saved-manual.png b/static/assets/lab/lab-account-saved-manual.png new file mode 100644 index 0000000000..d32f437575 Binary files /dev/null and b/static/assets/lab/lab-account-saved-manual.png differ diff --git a/static/assets/lab/lab-account-saved-usage-public.png b/static/assets/lab/lab-account-saved-usage-public.png new file mode 100644 index 0000000000..fcf79b4c3b Binary files /dev/null and b/static/assets/lab/lab-account-saved-usage-public.png differ diff --git a/static/assets/lab/lab-account-saved-usage-secret.png b/static/assets/lab/lab-account-saved-usage-secret.png new file mode 100644 index 0000000000..2a8b9b8b6e Binary files /dev/null and b/static/assets/lab/lab-account-saved-usage-secret.png differ diff --git a/static/assets/lab/lab-account-saved.png b/static/assets/lab/lab-account-saved.png index 5c4eda5692..4ad95e7220 100644 Binary files a/static/assets/lab/lab-account-saved.png and b/static/assets/lab/lab-account-saved.png differ diff --git a/static/assets/lab/lab-already-uploaded.gif b/static/assets/lab/lab-already-uploaded.gif new file mode 100644 index 0000000000..c5394fa864 Binary files /dev/null and b/static/assets/lab/lab-already-uploaded.gif differ diff --git a/static/assets/lab/lab-contract-explorer-invoke.gif b/static/assets/lab/lab-contract-explorer-invoke.gif new file mode 100644 index 0000000000..afaf8fcd03 Binary files /dev/null and b/static/assets/lab/lab-contract-explorer-invoke.gif differ diff --git a/static/assets/lab/lab-contract-explorer-invoke.png b/static/assets/lab/lab-contract-explorer-invoke.png deleted file mode 100644 index 883508fb13..0000000000 Binary files a/static/assets/lab/lab-contract-explorer-invoke.png and /dev/null differ diff --git a/static/assets/lab/lab-contract-explorer.png b/static/assets/lab/lab-contract-explorer.png index 888fe0a357..0a76579161 100644 Binary files a/static/assets/lab/lab-contract-explorer.png and b/static/assets/lab/lab-contract-explorer.png differ diff --git a/static/assets/lab/lab-deploy-contract.gif b/static/assets/lab/lab-deploy-contract.gif new file mode 100644 index 0000000000..c5abd9c33e Binary files /dev/null and b/static/assets/lab/lab-deploy-contract.gif differ diff --git a/static/assets/lab/lab-events.png b/static/assets/lab/lab-events.png new file mode 100644 index 0000000000..8e4ab7e9e3 Binary files /dev/null and b/static/assets/lab/lab-events.png differ diff --git a/static/assets/lab/lab-fee.png b/static/assets/lab/lab-fee.png new file mode 100644 index 0000000000..43dd834c47 Binary files /dev/null and b/static/assets/lab/lab-fee.png differ diff --git a/static/assets/lab/lab-fund-01232026.png b/static/assets/lab/lab-fund-01232026.png new file mode 100644 index 0000000000..9eec42260c Binary files /dev/null and b/static/assets/lab/lab-fund-01232026.png differ diff --git a/static/assets/lab/lab-horizon-saved-requests.png b/static/assets/lab/lab-horizon-saved-requests.png new file mode 100644 index 0000000000..ccbb6e08ad Binary files /dev/null and b/static/assets/lab/lab-horizon-saved-requests.png differ diff --git a/static/assets/lab/lab-keypair-01232026.png b/static/assets/lab/lab-keypair-01232026.png new file mode 100644 index 0000000000..053b86da26 Binary files /dev/null and b/static/assets/lab/lab-keypair-01232026.png differ diff --git a/static/assets/lab/lab-resource-profiler.png b/static/assets/lab/lab-resource-profiler.png new file mode 100644 index 0000000000..0ae06a9f34 Binary files /dev/null and b/static/assets/lab/lab-resource-profiler.png differ diff --git a/static/assets/lab/lab-rpc-methods-saved.png b/static/assets/lab/lab-rpc-methods-saved.png new file mode 100644 index 0000000000..f091e48f68 Binary files /dev/null and b/static/assets/lab/lab-rpc-methods-saved.png differ diff --git a/static/assets/lab/lab-signatures.png b/static/assets/lab/lab-signatures.png new file mode 100644 index 0000000000..c3efa5d676 Binary files /dev/null and b/static/assets/lab/lab-signatures.png differ diff --git a/static/assets/lab/lab-smart-contract-list.png b/static/assets/lab/lab-smart-contract-list.png deleted file mode 100644 index 7643862361..0000000000 Binary files a/static/assets/lab/lab-smart-contract-list.png and /dev/null differ diff --git a/static/assets/lab/lab-state-change.png b/static/assets/lab/lab-state-change.png new file mode 100644 index 0000000000..cf192bf995 Binary files /dev/null and b/static/assets/lab/lab-state-change.png differ diff --git a/static/assets/lab/lab-token-contracts.png b/static/assets/lab/lab-token-contracts.png new file mode 100644 index 0000000000..d49c451f84 Binary files /dev/null and b/static/assets/lab/lab-token-contracts.png differ diff --git a/static/assets/lab/lab-token-summary.png b/static/assets/lab/lab-token-summary.png new file mode 100644 index 0000000000..e08ff0cbf6 Binary files /dev/null and b/static/assets/lab/lab-token-summary.png differ diff --git a/static/assets/lab/lab-tx-dashboard-profiler-01232026.png b/static/assets/lab/lab-tx-dashboard-profiler-01232026.png new file mode 100644 index 0000000000..d1df375a5b Binary files /dev/null and b/static/assets/lab/lab-tx-dashboard-profiler-01232026.png differ diff --git a/static/assets/lab/lab-tx-dashboard-state-change.png b/static/assets/lab/lab-tx-dashboard-state-change.png new file mode 100644 index 0000000000..31d1600e27 Binary files /dev/null and b/static/assets/lab/lab-tx-dashboard-state-change.png differ diff --git a/static/assets/lab/lab-tx-details.png b/static/assets/lab/lab-tx-details.png new file mode 100644 index 0000000000..959b349731 Binary files /dev/null and b/static/assets/lab/lab-tx-details.png differ diff --git a/static/assets/lab/lab-upload-contract.gif b/static/assets/lab/lab-upload-contract.gif new file mode 100644 index 0000000000..5bf6758719 Binary files /dev/null and b/static/assets/lab/lab-upload-contract.gif differ diff --git a/static/assets/lab/lab-upload-deploy-page.png b/static/assets/lab/lab-upload-deploy-page.png new file mode 100644 index 0000000000..d82b3d2d41 Binary files /dev/null and b/static/assets/lab/lab-upload-deploy-page.png differ diff --git a/static/assets/lab/lab-xdr-diff-dropdown.png b/static/assets/lab/lab-xdr-diff-dropdown.png new file mode 100644 index 0000000000..8fcc8c0f94 Binary files /dev/null and b/static/assets/lab/lab-xdr-diff-dropdown.png differ diff --git a/static/assets/lab/lab-xdr-diff-filled.png b/static/assets/lab/lab-xdr-diff-filled.png new file mode 100644 index 0000000000..770af9dc26 Binary files /dev/null and b/static/assets/lab/lab-xdr-diff-filled.png differ diff --git a/static/assets/lab/lab-xdr-diff.png b/static/assets/lab/lab-xdr-diff.png new file mode 100644 index 0000000000..d8539607d2 Binary files /dev/null and b/static/assets/lab/lab-xdr-diff.png differ diff --git a/static/assets/lab/lab-xdr-from-json-dropdown.png b/static/assets/lab/lab-xdr-from-json-dropdown.png new file mode 100644 index 0000000000..616c2da64a Binary files /dev/null and b/static/assets/lab/lab-xdr-from-json-dropdown.png differ diff --git a/static/assets/lab/lab-xdr-from-json-filled.png b/static/assets/lab/lab-xdr-from-json-filled.png new file mode 100644 index 0000000000..10b0714fd5 Binary files /dev/null and b/static/assets/lab/lab-xdr-from-json-filled.png differ diff --git a/static/assets/lab/lab-xdr-from-json.png b/static/assets/lab/lab-xdr-from-json.png new file mode 100644 index 0000000000..03f3fa8e4c Binary files /dev/null and b/static/assets/lab/lab-xdr-from-json.png differ diff --git a/static/assets/lab/lab-xdr-to-json-dropdown.png b/static/assets/lab/lab-xdr-to-json-dropdown.png new file mode 100644 index 0000000000..90ba269f06 Binary files /dev/null and b/static/assets/lab/lab-xdr-to-json-dropdown.png differ diff --git a/static/assets/lab/lab-xdr-to-json-filled.png b/static/assets/lab/lab-xdr-to-json-filled.png new file mode 100644 index 0000000000..5c67ce8518 Binary files /dev/null and b/static/assets/lab/lab-xdr-to-json-filled.png differ diff --git a/static/assets/lab/lab-xdr-to-json.png b/static/assets/lab/lab-xdr-to-json.png new file mode 100644 index 0000000000..43650d32dc Binary files /dev/null and b/static/assets/lab/lab-xdr-to-json.png differ diff --git a/static/assets/lab/lab.png b/static/assets/lab/lab.png deleted file mode 100644 index 43090f59b1..0000000000 Binary files a/static/assets/lab/lab.png and /dev/null differ diff --git a/static/assets/lab/restore-footprint.gif b/static/assets/lab/restore-footprint.gif new file mode 100644 index 0000000000..4e306ce9df Binary files /dev/null and b/static/assets/lab/restore-footprint.gif differ diff --git a/static/assets/lab/rpc-methods-saved.png b/static/assets/lab/rpc-methods-saved.png deleted file mode 100644 index 87f73d22a9..0000000000 Binary files a/static/assets/lab/rpc-methods-saved.png and /dev/null differ diff --git a/static/assets/lab/smart-contract-list-01232026.png b/static/assets/lab/smart-contract-list-01232026.png new file mode 100644 index 0000000000..871a28ffb9 Binary files /dev/null and b/static/assets/lab/smart-contract-list-01232026.png differ diff --git a/static/assets/lab/stellar-lab-restore.png b/static/assets/lab/stellar-lab-restore.png new file mode 100644 index 0000000000..6e2444f3bd Binary files /dev/null and b/static/assets/lab/stellar-lab-restore.png differ diff --git a/static/assets/lab/tx-dashboard-classic.png b/static/assets/lab/tx-dashboard-classic.png new file mode 100644 index 0000000000..b466b6bc3d Binary files /dev/null and b/static/assets/lab/tx-dashboard-classic.png differ diff --git a/static/assets/lab/tx-dashboard-ops.png b/static/assets/lab/tx-dashboard-ops.png new file mode 100644 index 0000000000..e82338ef6f Binary files /dev/null and b/static/assets/lab/tx-dashboard-ops.png differ diff --git a/static/assets/lab/xdr-json-lab.png b/static/assets/lab/xdr-json-lab.png deleted file mode 100644 index 1ed0168740..0000000000 Binary files a/static/assets/lab/xdr-json-lab.png and /dev/null differ diff --git a/static/llms.txt b/static/llms.txt new file mode 100644 index 0000000000..ec5488d9a1 --- /dev/null +++ b/static/llms.txt @@ -0,0 +1,290 @@ +# Stellar Developer Documentation +Stellar is a layer-1 open-source, decentralized, peer-to-peer blockchain network that provides a framework for developers to create applications, issue assets, write smart contracts, and connect to existing financial rails. Stellar is designed to enable creators, innovators, and developers to build projects on the network that can interoperate with each other. + + +[Build](https://developers.stellar.org/docs/build) + +- [Overview](https://developers.stellar.org/docs/build) + +[Build Smart Contracts](https://developers.stellar.org/docs/build/smart-contracts) +- [Introduction](https://developers.stellar.org/docs/build/smart-contracts/overview) +- [Getting Started](https://developers.stellar.org/docs/build/smart-contracts/getting-started) +- [Example Contracts](https://developers.stellar.org/docs/build/smart-contracts/example-contracts) + +[Build Applications](https://developers.stellar.org/docs/build/apps) +- [Introduction](https://developers.stellar.org/docs/build/apps/overview) +- [Application Design Considerations](https://developers.stellar.org/docs/build/apps/application-design-considerations) +- [Tutorial: Wallet SDK](https://developers.stellar.org/docs/build/apps/wallet/overview) +- [Tutorial: Payment Application, JavaScript](https://developers.stellar.org/docs/build/apps/example-application-tutorial/overview) +- [Tutorial: Payment Application, Swift](https://developers.stellar.org/docs/build/apps/swift-payment-app) +- [Tutorial: Network Ingestion Pipeline](https://developers.stellar.org/docs/build/apps/ingest-sdk/overview) +- [Tutorial: Passkey Dapp](https://developers.stellar.org/docs/build/apps/guestbook/overview) +- [Tutorial: Dapp Frontend](https://developers.stellar.org/docs/build/apps/dapp-frontend) + +[How-To Guides](https://developers.stellar.org/docs/build/guides) +- [Contract Authorization](https://developers.stellar.org/docs/build/guides/auth) +- [Contract Conventions](https://developers.stellar.org/docs/build/guides/conventions) +- [Contract Accounts](https://developers.stellar.org/docs/build/guides/contract-accounts) +- [Contract Events](https://developers.stellar.org/docs/build/guides/events) +- [Contract Storage](https://developers.stellar.org/docs/build/guides/storage) +- [Contract Testing](https://developers.stellar.org/docs/build/guides/testing) +- [Dapp Development](https://developers.stellar.org/docs/build/guides/dapps) +- [Fees & Metering](https://developers.stellar.org/docs/build/guides/fees) +- [Freighter Wallet](https://developers.stellar.org/docs/build/guides/freighter) +- [Stellar Basics](https://developers.stellar.org/docs/build/guides/basics) +- [RPC](https://developers.stellar.org/docs/build/guides/rpc) +- [State Archival](https://developers.stellar.org/docs/build/guides/archival) +- [Stellar Asset Contract Tokens](https://developers.stellar.org/docs/build/guides/tokens) +- [Transactions](https://developers.stellar.org/docs/build/guides/transactions) +- [Type Conversions](https://developers.stellar.org/docs/build/guides/conversions) + +[Security Best Practices](https://developers.stellar.org/docs/build/security-docs) + +[Learn](https://developers.stellar.org/docs/learn/fundamentals) + +[Core Concepts](https://developers.stellar.org/docs/learn/fundamentals) +- [Stellar Stack](https://developers.stellar.org/docs/learn/fundamentals/stellar-stack) +- [Lumens (XLM)](https://developers.stellar.org/docs/learn/fundamentals/lumens) +- [Stellar Consensus Protocol (SCP)](https://developers.stellar.org/docs/learn/fundamentals/stellar-consensus-protocol) +- [Data Structures](https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures) +- [Operations & Transactions](https://developers.stellar.org/docs/learn/fundamentals/transactions) +- [Fees & Metering](https://developers.stellar.org/docs/learn/fundamentals/fees-resource-limits-metering) +- [Stellar Ecosystem Proposals (SEPs)](https://developers.stellar.org/docs/learn/fundamentals/stellar-ecosystem-proposals) +- [Smart Contracts](https://developers.stellar.org/docs/learn/fundamentals/contract-development) +- [Data Format](https://developers.stellar.org/docs/learn/fundamentals/data-format) +- [Ramps (anchors)](https://developers.stellar.org/docs/learn/fundamentals/anchors) +- [SDEX](https://developers.stellar.org/docs/learn/fundamentals/liquidity-on-stellar-sdex-liquidity-pools) + +[Glossary](https://developers.stellar.org/docs/learn/glossary) +- [Migrate from Another Chain](https://developers.stellar.org/docs/learn/migrate) +- [Interactive Learning](https://developers.stellar.org/docs/learn/interactive) + +[Tokens](https://developers.stellar.org/docs/tokens) + +- [Stellar Assets & Contract Tokens](https://developers.stellar.org/docs/tokens) +- [Assets Overview](https://developers.stellar.org/docs/tokens/anatomy-of-an-asset) +- [Quickstart Guide](https://developers.stellar.org/docs/tokens/quickstart) +- [Asset Design Considerations](https://developers.stellar.org/docs/tokens/control-asset-access) +- [Stellar Asset Contract](https://developers.stellar.org/docs/tokens/stellar-asset-contract) +- [Token Interface](https://developers.stellar.org/docs/tokens/token-interface) +- [Tutorial: Issue an Asset](https://developers.stellar.org/docs/tokens/how-to-issue-an-asset) +- [Publish Asset Information](https://developers.stellar.org/docs/tokens/publishing-asset-info) + +[Data](https://developers.stellar.org/docs/data) + +- [Overview](https://developers.stellar.org/docs/data) + +[Analytics](https://developers.stellar.org/docs/data/analytics) +- [Hubble](https://developers.stellar.org/docs/data/analytics/hubble) +- [Providers](https://developers.stellar.org/docs/data/analytics/analytics-providers) + +[API](https://developers.stellar.org/docs/data/apis) +- [RPC](https://developers.stellar.org/docs/data/apis/rpc) +- [RPC Providers](https://developers.stellar.org/docs/data/apis/rpc/providers) +- [Horizon](https://developers.stellar.org/docs/data/apis/horizon) +- [Horizon Providers](https://developers.stellar.org/docs/data/apis/horizon/providers) +- [Migrate Horizon to RPC](https://developers.stellar.org/docs/data/apis/migrate-from-horizon-to-rpc) + +[Indexers](https://developers.stellar.org/docs/data/indexers) +- [Build Your Own](https://developers.stellar.org/docs/data/indexers/build-your-own) +- [Providers](https://developers.stellar.org/docs/data/indexers) + +[Oracles](https://developers.stellar.org/docs/data/oracles) +- [Providers](https://developers.stellar.org/docs/data/oracles) + +[Tools](https://developers.stellar.org/docs/tools) + +Developer Tools +- [SDKs](https://developers.stellar.org/docs/tools/sdks) +- [Stellar CLI](https://developers.stellar.org/docs/tools/cli) +- [Lab](https://developers.stellar.org/docs/tools/lab) +- [Quickstart](https://developers.stellar.org/docs/tools/quickstart) +- [OpenZeppelin Relayer](https://developers.stellar.org/docs/tools/openzeppelin-relayer) +- [OpenZeppelin Contracts](https://developers.stellar.org/docs/tools/openzeppelin-contracts) +- [Scaffold Stellar](https://developers.stellar.org/docs/tools/scaffold-stellar) +- [More Developer Tools](https://developers.stellar.org/docs/tools/developer-tools) + +Ramps +- [MoneyGram Ramps](https://developers.stellar.org/docs/tools/ramps/moneygram) + +Infra Tools +- [Cross-Chain](https://developers.stellar.org/docs/tools/infra-tools/cross-chain) + +SDF Platforms +- [Anchor Platform](https://developers.stellar.org/platforms/anchor-platform) +- [Stellar Disbursement Platform](https://developers.stellar.org/platforms/stellar-disbursement-platform) + +[Networks](https://developers.stellar.org/docs/networks) + +- [Networks Overview](https://developers.stellar.org/docs/networks) +- [Software Versions](https://developers.stellar.org/docs/networks/software-versions) +- [Resource Limits & Fees](https://developers.stellar.org/docs/networks/resource-limits-fees) + +[Validators](https://developers.stellar.org/docs/validators) + +- [Validators Introduction](https://developers.stellar.org/docs/validators) +- [Admin Guide](https://developers.stellar.org/docs/validators/admin-guide) +- [Tier 1 Organizations](https://developers.stellar.org/docs/validators/tier-1-orgs) + +[English](https://developers.stellar.org/#) + +- [English](https://developers.stellar.org/) +- [Español](https://developers.stellar.org/es/) + +[GitHub](https://github.com/stellar/stellar-docs) + +[![](https://developers.stellar.org/assets/images/stellar-101-26081c928aa1f2587e8fa50c8820e4f0.png)](https://developers.stellar.org/docs/tokens/quickstart) + +### Asset Issuers + +Issue an asset or create a custom smart contract token. + +[Learn More](https://developers.stellar.org/docs/tokens/quickstart) + +[![](https://developers.stellar.org/assets/images/contract-4360e7119b2a4ba81b3849ea53901d98.png)](https://developers.stellar.org/docs/build/smart-contracts/getting-started) + +### Smart Contract Developers + +Write smart contracts on the Stellar network. + +[Learn More](https://developers.stellar.org/docs/build/smart-contracts/getting-started) + +[![](https://developers.stellar.org/assets/images/issue-assets-89ec386030248f486d74852861375c43.png)](https://developers.stellar.org/docs/learn/fundamentals/anchors) + +### Ramps (Anchors) + +Learn about and set up an anchor. + +[Learn More](https://developers.stellar.org/docs/learn/fundamentals/anchors) + +[![](https://developers.stellar.org/assets/images/build-applications-41ff5c71635741622bf54098505815da.png)](https://developers.stellar.org/docs/build/apps/overview) + +### Applications + +Build a traditional wallet, dapp, or list Stellar assets on an exchange. + +[Learn More](https://developers.stellar.org/docs/build/apps/overview) + +[![](https://developers.stellar.org/assets/images/dev-tools-80163b11f1e5d7aee9a2d7e24c680762.png)](https://developers.stellar.org/docs/data/apis) + +### Infrastructure Providers + +Set up a Horizon or RPC service. + +[Learn More](https://developers.stellar.org/docs/data/apis) + +[![](https://developers.stellar.org/assets/images/access-data-cd89f8e864d88bc2518f0b4716946071.png)](https://developers.stellar.org/docs/data/analytics) + +### Analytics + +Use Hubble to perform analysis on Stellar network data. + +[Learn More](https://developers.stellar.org/docs/data/analytics) + + +## **Navigating the docs** [​](https://developers.stellar.org/\#navigating-the-docs "Direct link to navigating-the-docs") + +What each main section of the developer docs contains. + +### Build + +Contains tutorials and how-to guides for writing smart contracts, building applications, interacting with the network, and more. + +[Explore](https://developers.stellar.org/docs/build) + +### Learn + +Find all informational and conceptual content here. Learn about Stellar fundamentals like how accounts and transactions function, dive deeper into the functionality of each operation, discover how fees work, and more. + +[Explore](https://developers.stellar.org/docs/learn/fundamentals) + +### Tokens + +Information on how to issue assets on the Stellar network and create custom smart contract tokens. + +[Explore](https://developers.stellar.org/docs/tokens) + +### Data + +Discover various data availability options: RPC, Hubble, Horizon, Galexie, and data indexers. + +[Explore](https://developers.stellar.org/docs/data) + +### Tools + +Learn about all the available tools for building on, interacting with, or just watching the Stellar network. Also, find information on how to use the Anchor Platform or Stellar Disbursement Platform. + +[Explore](https://developers.stellar.org/docs/tools) + +### Networks + +Information about deployed networks (Mainnet, Testnet, and Futurenet), current software versions, resource limitations, and fees. + +[Explore](https://developers.stellar.org/docs/networks) + +### Validators + +Everything you'll need to know if you want to run, operate, and maintain a core validator node on the Stellar network. + +[Explore](https://developers.stellar.org/docs/validators) + +## **Developer resources** [​](https://developers.stellar.org/\#developer-resources "Direct link to developer-resources") + +Interact with other Stellar developers, keep up with ecosystem standards and protocol upgrades, and learn about upcoming events. + +### Stellar Developer Discord + +Ask questions and engage with other Stellar devs. + +[Explore](https://discord.gg/stellardev) + +### Developer Site + +Get the latest news and insights about building on Stellar. + +[Explore](https://stellar.org/developers) + +### Stellar Stack Exchange + +A question and answer site for Stellar developers; if you can’t find what you’re looking for in the docs, try searching the Stack Exchange to see if your question has been addressed. If it hasn't, feel free to ask! + +[Explore](https://stellar.stackexchange.com/) + +### Stellar Developers Google Group + +Discuss Core Advancement Proposals (CAPs) and Stellar Ecosystem Proposals (SEPs), talk about the development of Stellar Core and Horizon, and stay informed about important network upgrades. + +[Explore](https://groups.google.com/g/stellar-dev) + + +Resources + +- [Developer Blog](https://www.stellar.org/developers-blog) +- [Stellar Quest](https://quest.stellar.org/) +- [Soroban Quest](https://fastcheapandoutofcontrol.com/tutorial) +- [YouTube](https://www.youtube.com/@StellarDevelopmentFoundation) +- [Twitch](https://m.twitch.tv/stellarorg/home) + +Tools + +- [Explorer](https://stellar.expert/) +- [Lab](https://lab.stellar.org/) +- [Status](https://status.stellar.org/) +- [Dashboard](https://dashboard.stellar.org/) +- [All Tools](https://developers.stellar.org/docs/tools) + +Community + +- [Contribute to Docs](https://github.com/stellar/stellar-docs?tab=readme-ov-file#contributing) +- [Developer Discord](https://discord.gg/stellardev) +- [Developer Meetings](https://developers.stellar.org/meetings) +- [Developer Google Group](https://groups.google.com/g/stellar-dev) +- [Stack Exchange](https://stellar.stackexchange.com/) +- [Stellar Community Fund](https://communityfund.stellar.org/) + +About + +- [About SDF](https://stellar.org/foundation) +- [Careers](https://stellar.org/foundation/careers) +- [Events](https://stellar.org/events) +- [Grants & Funding](https://stellar.org/foundation/grants-and-funding) diff --git a/static/stellar-rpc.openrpc.json b/static/stellar-rpc.openrpc.json index 201ad339c5..69f8a26f5f 100644 --- a/static/stellar-rpc.openrpc.json +++ b/static/stellar-rpc.openrpc.json @@ -95,7 +95,7 @@ "topics": { "title": "topics", "type": "array", - "description": "List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request.", + "description": "A list of topic filters. Each filter is itself an array of one to four `SegmentMatcher` elements (see below). If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters.", "maxItems": 5, "items": { "type": "array", @@ -105,7 +105,7 @@ "items": { "title": "SegmentMatcher", "type": "string", - "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment.\n\n" + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment and does not count towards the 4-segment limit.\n\n" } } } @@ -209,7 +209,7 @@ "items": { "title": "SegmentMatcher", "type": "string", - "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment.\n\n" + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- The string \"*\" functions as a wildcard that matches exactly one segment.\n\n- The string \"**\" matches zero or more segments and is used to match events with variable topic lengths. It can only appear as the final segment and does not count towards the 4-segment limit.\n\n" } }, "value": { @@ -238,7 +238,7 @@ "examples": [ { "name": "Native XLM Transfer Events", - "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens, and limiting the number of returned events to 2.", + "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens and limiting the number of returned events to 2.", "params": [ { "name": "startLedger", @@ -257,7 +257,7 @@ "AAAADwAAAAh0cmFuc2Zlcg==", "*", "*", - "*" + "**" ] ] } @@ -645,7 +645,7 @@ "paramStructure": "by-name", "params": [], "result": { - "name": "getLatestLedgerResult", + "name": "getLatestLedgerResponse", "schema": { "type": "object", "properties": { @@ -657,15 +657,25 @@ "pattern": "^[a-f\\d]{64}$", "description": "Hash identifier of the latest ledger (as a hex-encoded string) known to Stellar RPC at the time it handled the request." }, - "protocolVersion": { - "title": "protocolVersion", - "description": "Stellar Core protocol version associated with the latest ledger.", - "type": "number" - }, "sequence": { "title": "latestLedger", "description": "The sequence number of the latest ledger known to Stellar RPC at the time it handled the request.", "type": "number" + }, + "closeTime": { + "title": "closeTime", + "description": "The timestamp at which the latest ledger was closed.", + "type": "string" + }, + "headerXdr": { + "title": "headerXdr", + "type": "string", + "description": "The [LedgerHeader](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger.x#L74) structure for this ledger (base64-encoded string)." + }, + "metadataXdr": { + "title": "metadataXdr", + "type": "string", + "description": "The [LedgerCloseMeta](https://github.com/stellar/stellar-xdr/blob/v22.0/Stellar-ledger.x#L539) union for this ledger (base64-encoded string)." } } } @@ -678,9 +688,11 @@ "result": { "name": "getLatestLedgerResult", "value": { - "id": "c73c5eac58a441d4eb733c35253ae85f783e018f7be5ef974258fed067aabb36", - "protocolVersion": 20, - "sequence": 2539605 + "id": "9f3308826b666c11df41693b17eddbb68aea9758be0f67fd5df81f6cf5c48984", + "sequence": 2002985, + "closeTime": "1765223032", + "headerXdr": "AAAAGBVaCGp9GqWZ+BfZOSqt5v/BLzNfuU6wBi3yuCItkCuXmW1RIVSNlHOOxENRa/PRaBpTfW/WXzvkBZkt8YjYxrMAAAAAaTcqeAAAAAAAAAABAAAAANVyadliUPdJbQeb4ug1Ejbv/+jTnC4Gv6uxQh8X/GccAAAAQPp6I5umxPf7dRVo+OHtpgHPcswph8eesf6xFlUUvxtm/AbcgDKF0BPyg7gHuzy9RvnCv5GPkDi/Q6NP5TcqlwZ69ncQ7zxy/qBWkTHZZbEYW4Q8mJt/jHnh1mJgosKVrcBn6psOiLJw02fxji7a/TMHzMYWixkIDOZWBmEsh+kNAB6QKQ3gtrOnZAAAAAABGeTS66QAAAAAAAAAAAAAVzwAAABkAExLQAAAAMjuMwFH65no9K3paxrP75vCHgw88lYhOPg2dmCUGZ5Ibdyeuy2VtFMaA/QlqPOVi+ft3NBSB4Tg4uQQrPAIqtdLm7DKjY28EwWkjJrBh1wu9oAd1DlPuUT28v7MxoO2ODeLkjDUqJCR9uLj3apU0+rlkVaMBK0QREEXiAUPVL81iAAAAAA=", + "metadataXdr": "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" } } } @@ -2182,6 +2194,22 @@ "type": "string", "description": "Specifies whether XDR should be encoded as Base64 (default or 'base64') or JSON ('json')." } + }, + { + "name": "authMode", + "summary": "selects the authorization mode for simulation", + "required": false, + "description": "Specifies the authorization mode to use when simulating the transaction. The options are 'enforce' (default, enforces all authorization checks), 'record' (records authorization without enforcement), and 'record_allow_nonroot' (records authorization while allowing non-root invocations).", + "schema": { + "title": "authMode", + "type": "string", + "enum": [ + "enforce", + "record", + "record_allow_nonroot" + ], + "description": "Specifies the authorization mode to use when simulating the transaction. 'enforce' (default) enforces authorization checks, 'record' records authorization without enforcing, and 'record_allow_nonroot' records authorization while allowing non-root invocations." + } } ], "result": { diff --git a/yarn.lock b/yarn.lock index 3c4247417f..d55f60e0a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,153 +2,191 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" - integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-plugin-algolia-insights@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" - integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-preset-algolia@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" - integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-shared@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" - integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== - -"@algolia/client-abtesting@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.20.2.tgz#e0d950735cbe4e00960418749839820a333f9df0" - integrity sha512-IS8JSFsDD33haaKIIFaL7qj3bEIG9GldZfb3ILW0QF3at7TcrIJYy58hrDvFee5T3p3E2aH/+wqIr0eha8jB/w== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" - -"@algolia/client-analytics@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.20.2.tgz#b8bc4ff50c3968e58b11a56ce50e8732c056ca19" - integrity sha512-k0KxCfcX/HZySqPasKy6GkiiDuebaMh2v/nE0HHg1PbsyeyagLapDi6Ktjkxhz8NlUq6eTJR+ddGJegippKQtQ== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" - -"@algolia/client-common@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.20.2.tgz#4a80baedbe739ae84fde300a1f539508e5ae38a7" - integrity sha512-xoZcL/Uu49KYDb3feu2n06gALD17p5CslO8Zk3mZ7+uTurK3lgjLws7LNetZ172Ap/GpzPCRXI83d2iDoYQD6Q== - -"@algolia/client-insights@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.20.2.tgz#cf1c21e2c40c3751276c27048c72a3b164b0a4f2" - integrity sha512-fy7aCbo9y7WHt/9G03EYc471Dd5kIaM8PNP4z6AEQYr9a9X8c4inwNs6tePxAEfRHwVQi0CZ7kuVdn6/MjWx1A== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" - -"@algolia/client-personalization@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.20.2.tgz#ab8342c1e5f1a4ae71383dffdb25910c5df9d06e" - integrity sha512-ocL1ZXulfuXzJAwsKw2kMscKMD0rs/f4CFYu6Gjh4mK4um6rGfa1a6u1MSc4swFqRQer0wNP9Pi+kVfKhuKt5A== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" - -"@algolia/client-query-suggestions@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.20.2.tgz#fc2d5836aaf90fba60fc347e0f1b1e8e4ab15592" - integrity sha512-Xjs4Tj1zkLCnmq1ys8RRhLQPy002I6GuT/nbHVdSQmQu4yKCI0gOFbwxHdM6yYPEuE3cJx7A4wSQjCH21mUKsg== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" - -"@algolia/client-search@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.20.2.tgz#941788be5c238197d30a21237e0b3f28d80db874" - integrity sha512-2cD3RGB5byusLS0DAX1Nvl5MLiv7OoGgQrRs+94dTalqjvK8lGKzxxJhXoVojgx2qcROyIUAIDXFdTqv6NIHaA== - dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" +"@ai-sdk/gateway@2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@ai-sdk/gateway/-/gateway-2.0.18.tgz#7e81bdedddb7363af2c38d2cf7f34ac2d5e5eaa7" + integrity sha512-sDQcW+6ck2m0pTIHW6BPHD7S125WD3qNkx/B8sEzJp/hurocmJ5Cni0ybExg6sQMGo+fr/GWOwpHF1cmCdg5rQ== + dependencies: + "@ai-sdk/provider" "2.0.0" + "@ai-sdk/provider-utils" "3.0.18" + "@vercel/oidc" "3.0.5" + +"@ai-sdk/provider-utils@3.0.18": + version "3.0.18" + resolved "https://registry.yarnpkg.com/@ai-sdk/provider-utils/-/provider-utils-3.0.18.tgz#fc7757ad7eb48a48ce1976da3025f0b9215b1aff" + integrity sha512-ypv1xXMsgGcNKUP+hglKqtdDuMg68nWHucPPAhIENrbFAI+xCHiqPVN8Zllxyv1TNZwGWUghPxJXU+Mqps0YRQ== + dependencies: + "@ai-sdk/provider" "2.0.0" + "@standard-schema/spec" "^1.0.0" + eventsource-parser "^3.0.6" + +"@ai-sdk/provider@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@ai-sdk/provider/-/provider-2.0.0.tgz#b853c739d523b33675bc74b6c506b2c690bc602b" + integrity sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA== + dependencies: + json-schema "^0.4.0" + +"@ai-sdk/react@^2.0.30": + version "2.0.109" + resolved "https://registry.yarnpkg.com/@ai-sdk/react/-/react-2.0.109.tgz#1f5dd07643bd8371015d05e9c9348110889cbb68" + integrity sha512-5qM8KuN7bv7E+g6BXkSAYLFjwIfMSTKOA1prjg1zEShJXJyLSc+Yqkd3EfGibm75b7nJAqJNShurDmR/IlQqFQ== + dependencies: + "@ai-sdk/provider-utils" "3.0.18" + ai "5.0.108" + swr "^2.2.5" + throttleit "2.1.0" + +"@algolia/abtesting@1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.12.0.tgz#fad11266e85f33acf1a37961f4110459491428f5" + integrity sha512-EfW0bfxjPs+C7ANkJDw2TATntfBKsFiy7APh+KO0pQ8A6HYa5I0NjFuCGCXWfzzzLXNZta3QUl3n5Kmm6aJo9Q== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/autocomplete-core@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz#702df67a08cb3cfe8c33ee1111ef136ec1a9e232" + integrity sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.2" + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-plugin-algolia-insights@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz#3584b625b9317e333d1ae43664d02358e175c52d" + integrity sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg== + dependencies: + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-shared@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz#c0b7b8dc30a5c65b70501640e62b009535e4578f" + integrity sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w== + +"@algolia/client-abtesting@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.46.0.tgz#488eadc7220a53f585077010fc2093d0c58dc37e" + integrity sha512-eG5xV8rujK4ZIHXrRshvv9O13NmU/k42Rnd3w43iKH5RaQ2zWuZO6Q7XjaoJjAFVCsJWqRbXzbYyPGrbF3wGNg== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/client-analytics@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.46.0.tgz#5523c9a6ed2b67a9bdafc033cc323f43e5163806" + integrity sha512-AYh2uL8IUW9eZrbbT+wZElyb7QkkeV3US2NEKY7doqMlyPWE8lErNfkVN1NvZdVcY4/SVic5GDbeDz2ft8YIiQ== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/client-common@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.46.0.tgz#004ad40adbdc6da7e23e4ef4d7a0ff48422af012" + integrity sha512-0emZTaYOeI9WzJi0TcNd2k3SxiN6DZfdWc2x2gHt855Jl9jPUOzfVTL6gTvCCrOlT4McvpDGg5nGO+9doEjjig== + +"@algolia/client-insights@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.46.0.tgz#4166d8e135aa38cf81ad7103edddd0d2026b586a" + integrity sha512-wrBJ8fE+M0TDG1As4DDmwPn2TXajrvmvAN72Qwpuv8e2JOKNohF7+JxBoF70ZLlvP1A1EiH8DBu+JpfhBbNphQ== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/client-personalization@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.46.0.tgz#fc9f8f3e5099810770be9524ffe9fcd4ef0644e3" + integrity sha512-LnkeX4p0ENt0DoftDJJDzQQJig/sFQmD1eQifl/iSjhUOGUIKC/7VTeXRcKtQB78naS8njUAwpzFvxy1CDDXDQ== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/client-query-suggestions@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.46.0.tgz#94952019e3d73475ce255dae4b51b9a9bfd86fb0" + integrity sha512-aF9tc4ex/smypXw+W3lBPB1jjKoaGHpZezTqofvDOI/oK1dR2sdTpFpK2Ru+7IRzYgwtRqHF3znmTlyoNs9dpA== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" + +"@algolia/client-search@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.46.0.tgz#5b84fd1530d5be8300a949b428560a4bbf432c06" + integrity sha512-22SHEEVNjZfFWkFks3P6HilkR3rS7a6GjnCIqR22Zz4HNxdfT0FG+RE7efTcFVfLUkTTMQQybvaUcwMrHXYa7Q== + dependencies: + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/ingestion@1.20.2": - version "1.20.2" - resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.20.2.tgz#f506af644979974a6842fb75ac90df8782da4b0d" - integrity sha512-S593Kmhc98+5zdzGet4GrZEBEBGl4vVtqg/MPfW8dCRf9qDRNYSkhBsIzlhQe9JWiohe9oB9LW5meibwOgRmww== +"@algolia/ingestion@1.46.0": + version "1.46.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.46.0.tgz#aeb7385e342f0ae8e030c4e69d6d0216f9e005e9" + integrity sha512-2LT0/Z+/sFwEpZLH6V17WSZ81JX2uPjgvv5eNlxgU7rPyup4NXXfuMbtCJ+6uc4RO/LQpEJd3Li59ke3wtyAsA== dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" -"@algolia/monitoring@1.20.2": - version "1.20.2" - resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.20.2.tgz#920ce38c5d2250bc34692bc256b622e72c3f8169" - integrity sha512-bW41aWLYgBv/coJUIT85mkN3kk1VBKsM8tlwB5S/s446Mgc7r8t5TX7kA8kCR2UbwDedOK51i/85/x/rM0ZXbg== +"@algolia/monitoring@1.46.0": + version "1.46.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.46.0.tgz#98feadf8a029ec7d43921bea15415647012dbcc6" + integrity sha512-uivZ9wSWZ8mz2ZU0dgDvQwvVZV8XBv6lYBXf8UtkQF3u7WeTqBPeU8ZoeTyLpf0jAXCYOvc1mAVmK0xPLuEwOQ== dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" -"@algolia/recommend@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.20.2.tgz#423ebaddf13de43a8eb28b0642b60e85f3393e34" - integrity sha512-wBMf3J1L5ogvU8p8ifHkknDXWn1zdZ2epkqpt2MkUaZynE3G77rrFU9frcO+Pu1FQJQ5xCDTKcYUUcJCDD00rg== +"@algolia/recommend@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.46.0.tgz#9b2fec2f9c0e74073ad9324330b8e3571aadf919" + integrity sha512-O2BB8DuySuddgOAbhyH4jsGbL+KyDGpzJRtkDZkv091OMomqIA78emhhMhX9d/nIRrzS1wNLWB/ix7Hb2eV5rg== dependencies: - "@algolia/client-common" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" + "@algolia/client-common" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" -"@algolia/requester-browser-xhr@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.20.2.tgz#ec674ae20e9fecde1c1a73c5cb0fcfacd3803bac" - integrity sha512-w+VMzOkIq2XDGg6Ybzr74RlBZvJQnuIdKpVusQSXCXknvxwAwbO457LmoavhZWl06Lcsk9YDx1X2k0zb+iJQmw== +"@algolia/requester-browser-xhr@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.46.0.tgz#099d980fe5b699b5f0d1ff6dfbd28fd76af43861" + integrity sha512-eW6xyHCyYrJD0Kjk9Mz33gQ40LfWiEA51JJTVfJy3yeoRSw/NXhAL81Pljpa0qslTs6+LO/5DYPZddct6HvISQ== dependencies: - "@algolia/client-common" "5.20.2" + "@algolia/client-common" "5.46.0" -"@algolia/requester-fetch@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.20.2.tgz#13d59d9c946d9cd3de319865d70db64e255028e4" - integrity sha512-wpjnbvbi3A13b0DvijE45DRYDvwcP5Ttz7RTMkPWTkF1s6AHuo6O2UcwGyaogMAGa1QOOzFYfp5u4YQwMOQx5g== +"@algolia/requester-fetch@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.46.0.tgz#3262bc1670fa8f47ad851c65573709f589e3fb1c" + integrity sha512-Vn2+TukMGHy4PIxmdvP667tN/MhS7MPT8EEvEhS6JyFLPx3weLcxSa1F9gVvrfHWCUJhLWoMVJVB2PT8YfRGcw== dependencies: - "@algolia/client-common" "5.20.2" + "@algolia/client-common" "5.46.0" -"@algolia/requester-node-http@5.20.2": - version "5.20.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.20.2.tgz#29bd7333dbec0d24dfecd2e1d8276fe40e67ea9d" - integrity sha512-YuSSdtgUt1dFBTNYUb+2TA5j0Hd0eDXE0bVISjUvTCqmoaGsGLwW+rKI7p1eLQ1r7RESwBAvUwcY1qP2Wl3Lyw== +"@algolia/requester-node-http@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.46.0.tgz#45b8a76e7391f9d11a7fce04b1e03dbef29af7f2" + integrity sha512-xaqXyna5yBZ+r1SJ9my/DM6vfTqJg9FJgVydRJ0lnO+D5NhqGW/qaRG/iBGKr/d4fho34el6WakV7BqJvrl/HQ== dependencies: - "@algolia/client-common" "5.20.2" + "@algolia/client-common" "5.46.0" "@ampproject/remapping@^2.2.0": version "2.3.0" @@ -373,14 +411,7 @@ "@babel/template" "^7.26.9" "@babel/types" "^7.26.10" -"@babel/parser@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.8.tgz#deca2b4d99e5e1b1553843b99823f118da6107c2" - integrity sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw== - dependencies: - "@babel/types" "^7.26.8" - -"@babel/parser@^7.26.9": +"@babel/parser@^7.26.8", "@babel/parser@^7.26.9": version "7.26.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749" integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA== @@ -1039,23 +1070,12 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.25.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" - integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== - dependencies: - regenerator-runtime "^0.14.0" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.25.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" + integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== -"@babel/template@^7.25.9", "@babel/template@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.8.tgz#db3898f47a17bab2f4c78ec1d0de38527c2ffe19" - integrity sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.26.8" - "@babel/types" "^7.26.8" - -"@babel/template@^7.26.9": +"@babel/template@^7.25.9", "@babel/template@^7.26.8", "@babel/template@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2" integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== @@ -1077,15 +1097,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.8", "@babel/types@^7.4.4": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.8.tgz#97dcdc190fab45be7f3dc073e3c11160d677c127" - integrity sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@babel/types@^7.26.10", "@babel/types@^7.26.9": +"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.8", "@babel/types@^7.26.9", "@babel/types@^7.4.4": version "7.26.10" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259" integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ== @@ -1135,15 +1147,15 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@crowdin/cli@4.11.0": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-4.11.0.tgz#f60ce72c0c8d63282607f530383567e0eb6a9e12" - integrity sha512-oIOzCHCc9eHOqcQw1bjcnfFUoJDFVobCN5MEZ1rwjYOhPMpIcRNBDnUT/b43LcRWsogU3c0BwcWN/BHvV19DWg== +"@crowdin/cli@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-4.12.0.tgz#fe5c17a9397877b39a5a09f012a2ec2dec7b8944" + integrity sha512-NwqkH1v8Cpg6e0a2ONGdJIZXNuUJi9+SKfDIkONZy0J7lE9nk2ZPFaVmbvOpC7VhArpqo1zAsnQlm7dqEkp3VQ== dependencies: command-exists-promise "^2.0.2" node-fetch "2.7.0" - shelljs "^0.8.5" - tar "^7.4.3" + shelljs "^0.10.0" + tar "^7.5.2" yauzl "^3.2.0" "@csstools/cascade-layer-name-parser@^2.0.5": @@ -1506,25 +1518,34 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" - integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== +"@docsearch/core@4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.3.1.tgz#88a97a6fe4d4025269b6dee8b9d070b76758ad82" + integrity sha512-ktVbkePE+2h9RwqCUMbWXOoebFyDOxHqImAqfs+lC8yOU+XwEW4jgvHGJK079deTeHtdhUNj0PXHSnhJINvHzQ== -"@docsearch/react@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" - integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== - dependencies: - "@algolia/autocomplete-core" "1.17.9" - "@algolia/autocomplete-preset-algolia" "1.17.9" - "@docsearch/css" "3.9.0" - algoliasearch "^5.14.2" +"@docsearch/css@4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.3.2.tgz#d47d25336c9516b419245fa74e8dd5ae84a17492" + integrity sha512-K3Yhay9MgkBjJJ0WEL5MxnACModX9xuNt3UlQQkDEDZJZ0+aeWKtOkxHNndMRkMBnHdYvQjxkm6mdlneOtU1IQ== -"@docusaurus/babel@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.8.1.tgz#db329ac047184214e08e2dbc809832c696c18506" - integrity sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw== +"@docsearch/react@^3.9.0 || ^4.1.0": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.3.2.tgz#450b8341cb5cca03737a00075d4dfd3a904a3e3e" + integrity sha512-74SFD6WluwvgsOPqifYOviEEVwDxslxfhakTlra+JviaNcs7KK/rjsPj89kVEoQc9FUxRkAofaJnHIR7pb4TSQ== + dependencies: + "@ai-sdk/react" "^2.0.30" + "@algolia/autocomplete-core" "1.19.2" + "@docsearch/core" "4.3.1" + "@docsearch/css" "4.3.2" + ai "^5.0.30" + algoliasearch "^5.28.0" + marked "^16.3.0" + zod "^4.1.8" + +"@docusaurus/babel@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.9.2.tgz#f956c638baeccf2040e482c71a742bc7e35fdb22" + integrity sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA== dependencies: "@babel/core" "^7.25.9" "@babel/generator" "^7.25.9" @@ -1536,23 +1557,23 @@ "@babel/runtime" "^7.25.9" "@babel/runtime-corejs3" "^7.25.9" "@babel/traverse" "^7.25.9" - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" babel-plugin-dynamic-import-node "^2.3.3" fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/bundler@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.8.1.tgz#e2b11d615f09a6e470774bb36441b8d06736b94c" - integrity sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA== +"@docusaurus/bundler@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.9.2.tgz#0ca82cda4acf13a493e3f66061aea351e9d356cf" + integrity sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA== dependencies: "@babel/core" "^7.25.9" - "@docusaurus/babel" "3.8.1" - "@docusaurus/cssnano-preset" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/babel" "3.9.2" + "@docusaurus/cssnano-preset" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" babel-loader "^9.2.1" clean-css "^5.3.3" copy-webpack-plugin "^11.0.0" @@ -1572,18 +1593,18 @@ webpack "^5.95.0" webpackbar "^6.0.1" -"@docusaurus/core@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.8.1.tgz#c22e47c16a22cb7d245306c64bc54083838ff3db" - integrity sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA== - dependencies: - "@docusaurus/babel" "3.8.1" - "@docusaurus/bundler" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/core@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.9.2.tgz#cc970f29b85a8926d63c84f8cffdcda43ed266ff" + integrity sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw== + dependencies: + "@docusaurus/babel" "3.9.2" + "@docusaurus/bundler" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" boxen "^6.2.1" chalk "^4.1.2" chokidar "^3.5.3" @@ -1617,58 +1638,58 @@ update-notifier "^6.0.2" webpack "^5.95.0" webpack-bundle-analyzer "^4.10.2" - webpack-dev-server "^4.15.2" + webpack-dev-server "^5.2.2" webpack-merge "^6.0.1" -"@docusaurus/cssnano-preset@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz#bd55026251a6ab8e2194839a2042458ef9880c44" - integrity sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug== +"@docusaurus/cssnano-preset@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz#523aab65349db3c51a77f2489048d28527759428" + integrity sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ== dependencies: cssnano-preset-advanced "^6.1.2" postcss "^8.5.4" postcss-sort-media-queries "^5.2.0" tslib "^2.6.0" -"@docusaurus/eslint-plugin@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/eslint-plugin/-/eslint-plugin-3.8.1.tgz#8ac9341e8bb119183cb0cf94414fa3001e685009" - integrity sha512-moiMzNuUpWaIcoEqZP4FzFGk4j8Gg/fYJYc9lpTWZplsy4GswGZw150rPuFcZ1lW65kuKVeGqu/E60JG37AX5Q== +"@docusaurus/eslint-plugin@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/eslint-plugin/-/eslint-plugin-3.9.2.tgz#0635668f78d5d74e506681442221a1043aacff27" + integrity sha512-LnCrmrR4EtzpSiq6aoSfiY0Lf8P0WslGbBFZJ0olKXJIMxey8dpKevT1K/+tN87Lbn2H/VrdGGSPGlfVKmihAQ== dependencies: "@typescript-eslint/utils" "^5.62.0" tslib "^2.6.0" -"@docusaurus/faster@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/faster/-/faster-3.8.1.tgz#4db2d426f2caa754b12fa4c1264c82ab16618685" - integrity sha512-XYrj3qnTm+o2d5ih5drCq9s63GJoM8vZ26WbLG5FZhURsNxTSXgHJcx11Qo7nWPUStCQkuqk1HvItzscCUnd4A== +"@docusaurus/faster@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/faster/-/faster-3.9.2.tgz#47b69f39ed935fdcc8dc03896274fca29056e962" + integrity sha512-DEVIwhbrZZ4ir31X+qQNEQqDWkgCJUV6kiPPAd2MGTY8n5/n0c4B8qA5k1ipF2izwH00JEf0h6Daaut71zzkyw== dependencies: - "@docusaurus/types" "3.8.1" - "@rspack/core" "^1.3.15" + "@docusaurus/types" "3.9.2" + "@rspack/core" "^1.5.0" "@swc/core" "^1.7.39" - "@swc/html" "^1.7.39" + "@swc/html" "^1.13.5" browserslist "^4.24.2" lightningcss "^1.27.0" swc-loader "^0.2.6" tslib "^2.6.0" webpack "^5.95.0" -"@docusaurus/logger@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.8.1.tgz#45321b2e2e14695d0dbd8b4104ea7b0fbaa98700" - integrity sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww== +"@docusaurus/logger@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.9.2.tgz#6ec6364b90f5a618a438cc9fd01ac7376869f92a" + integrity sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA== dependencies: chalk "^4.1.2" tslib "^2.6.0" -"@docusaurus/mdx-loader@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz#74309b3614bbcef1d55fb13e6cc339b7fb000b5f" - integrity sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w== +"@docusaurus/mdx-loader@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz#78d238de6c6203fa811cc2a7e90b9b79e111408c" + integrity sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@mdx-js/mdx" "^3.0.0" "@slorber/remark-comment" "^1.0.0" escape-html "^1.0.3" @@ -1691,12 +1712,12 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz#454de577bd7f50b5eae16db0f76b49ca5e4e281a" - integrity sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg== +"@docusaurus/module-type-aliases@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz#993c7cb0114363dea5ef6855e989b3ad4b843a34" + integrity sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew== dependencies: - "@docusaurus/types" "3.8.1" + "@docusaurus/types" "3.9.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1704,19 +1725,19 @@ react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" react-loadable "npm:@docusaurus/react-loadable@6.0.0" -"@docusaurus/plugin-content-blog@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz#88d842b562b04cf59df900d9f6984b086f821525" - integrity sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-content-blog@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz#d5ce51eb7757bdab0515e2dd26a793ed4e119df9" + integrity sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" cheerio "1.0.0-rc.12" feed "^4.2.2" fs-extra "^11.1.1" @@ -1728,20 +1749,20 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz#40686a206abb6373bee5638de100a2c312f112a4" - integrity sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-content-docs@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz#cd8f2d1c06e53c3fa3d24bdfcb48d237bf2d6b2e" + integrity sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@types/react-router-config" "^5.0.7" combine-promises "^1.1.0" fs-extra "^11.1.1" @@ -1752,128 +1773,128 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-pages@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz#41b684dbd15390b7bb6a627f78bf81b6324511ac" - integrity sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w== +"@docusaurus/plugin-content-pages@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz#22db6c88ade91cec0a9e87a00b8089898051b08d" + integrity sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" fs-extra "^11.1.1" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/plugin-css-cascade-layers@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz#cb414b4a82aa60fc64ef2a435ad0105e142a6c71" - integrity sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw== +"@docusaurus/plugin-css-cascade-layers@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz#358c85f63f1c6a11f611f1b8889d9435c11b22f8" + integrity sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-debug@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz#45b107e46b627caaae66995f53197ace78af3491" - integrity sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw== +"@docusaurus/plugin-debug@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz#b5df4db115583f5404a252dbf66f379ff933e53c" + integrity sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" fs-extra "^11.1.1" react-json-view-lite "^2.3.0" tslib "^2.6.0" -"@docusaurus/plugin-google-analytics@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz#64a302e62fe5cb6e007367c964feeef7b056764a" - integrity sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q== +"@docusaurus/plugin-google-analytics@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz#857fe075fdeccdf6959e62954d9efe39769fa247" + integrity sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-google-gtag@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz#8c76f8a1d96448f2f0f7b10e6bde451c40672b95" - integrity sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg== +"@docusaurus/plugin-google-gtag@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz#df75b1a90ae9266b0471909ba0265f46d5dcae62" + integrity sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@types/gtag.js" "^0.0.12" tslib "^2.6.0" -"@docusaurus/plugin-google-tag-manager@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz#88241ffd06369f4a4d5fb982ff3ac2777561ae37" - integrity sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw== +"@docusaurus/plugin-google-tag-manager@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz#d1a3cf935acb7d31b84685e92d70a1d342946677" + integrity sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz#3aebd39186dc30e53023f1aab44625bc0bdac892" - integrity sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-sitemap@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz#e1d9f7012942562cc0c6543d3cb2cdc4ae713dc4" + integrity sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" fs-extra "^11.1.1" sitemap "^7.1.1" tslib "^2.6.0" -"@docusaurus/plugin-svgr@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz#6f340be8eae418a2cce540d8ece096ffd9c9b6ab" - integrity sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw== +"@docusaurus/plugin-svgr@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz#62857ed79d97c0150d25f7e7380fdee65671163a" + integrity sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@svgr/core" "8.1.0" "@svgr/webpack" "^8.1.0" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/preset-classic@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz#bb79fd12f3211363720c569a526c7e24d3aa966b" - integrity sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/plugin-css-cascade-layers" "3.8.1" - "@docusaurus/plugin-debug" "3.8.1" - "@docusaurus/plugin-google-analytics" "3.8.1" - "@docusaurus/plugin-google-gtag" "3.8.1" - "@docusaurus/plugin-google-tag-manager" "3.8.1" - "@docusaurus/plugin-sitemap" "3.8.1" - "@docusaurus/plugin-svgr" "3.8.1" - "@docusaurus/theme-classic" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-search-algolia" "3.8.1" - "@docusaurus/types" "3.8.1" - -"@docusaurus/remark-plugin-npm2yarn@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/remark-plugin-npm2yarn/-/remark-plugin-npm2yarn-3.8.1.tgz#148f2f28d6b04fe3f9a8f027f45f7259b916a65d" - integrity sha512-lrws3n7jyJrDKqpdFiEX0ZIwVOgGj9z+ZXf0k/rXrftcNh06Y+cEMnNVoNpO3EJKiLDXmTWoxGf/I1qWb/WV6g== +"@docusaurus/preset-classic@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz#85cc4f91baf177f8146c9ce896dfa1f0fd377050" + integrity sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/plugin-content-blog" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/plugin-content-pages" "3.9.2" + "@docusaurus/plugin-css-cascade-layers" "3.9.2" + "@docusaurus/plugin-debug" "3.9.2" + "@docusaurus/plugin-google-analytics" "3.9.2" + "@docusaurus/plugin-google-gtag" "3.9.2" + "@docusaurus/plugin-google-tag-manager" "3.9.2" + "@docusaurus/plugin-sitemap" "3.9.2" + "@docusaurus/plugin-svgr" "3.9.2" + "@docusaurus/theme-classic" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-search-algolia" "3.9.2" + "@docusaurus/types" "3.9.2" + +"@docusaurus/remark-plugin-npm2yarn@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/remark-plugin-npm2yarn/-/remark-plugin-npm2yarn-3.9.2.tgz#3c79c149a7868be5b872aa98368515e0a3985d9e" + integrity sha512-Upr5W5Yvg97fD9ozDYgHBY0PPi80/1fbqW47v+yY/4o+Fiwwq9m/E5yuTNN3rO9h4+ueO/jrDMOFI/cG/mOV+A== dependencies: mdast-util-mdx "^3.0.0" npm-to-yarn "^3.0.0" @@ -1881,27 +1902,26 @@ unified "^11.0.3" unist-util-visit "^5.0.0" -"@docusaurus/theme-classic@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz#1e45c66d89ded359225fcd29bf3258d9205765c1" - integrity sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/theme-classic@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz#6e514f99a0ff42b80afcf42d5e5d042618311ce0" + integrity sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/plugin-content-blog" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/plugin-content-pages" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-translations" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@mdx-js/react" "^3.0.0" clsx "^2.0.0" - copy-text-to-clipboard "^3.2.0" infima "0.2.0-alpha.45" lodash "^4.17.21" nprogress "^0.2.0" @@ -1913,15 +1933,15 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.8.1.tgz#17c23316fbe3ee3f7e707c7298cb59a0fff38b4b" - integrity sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw== +"@docusaurus/theme-common@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.9.2.tgz#487172c6fef9815c2746ef62a71e4f5b326f9ba5" + integrity sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag== dependencies: - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1931,34 +1951,34 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-mermaid@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.8.1.tgz#2b73b5e90057bd9fb46f267aeb2d3470b168a7c8" - integrity sha512-IWYqjyTPjkNnHsFFu9+4YkeXS7PD1xI3Bn2shOhBq+f95mgDfWInkpfBN4aYvx4fTT67Am6cPtohRdwh4Tidtg== +"@docusaurus/theme-mermaid@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.9.2.tgz#f065e4b4b319560ddd8c3be65ce9dd19ce1d5cc8" + integrity sha512-5vhShRDq/ntLzdInsQkTdoKWSzw8d1jB17sNPYhA/KvYYFXfuVEGHLM6nrf8MFbV8TruAHDG21Fn3W4lO8GaDw== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" mermaid ">=11.6.0" tslib "^2.6.0" -"@docusaurus/theme-search-algolia@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz#3aa3d99c35cc2d4b709fcddd4df875a9b536e29b" - integrity sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ== - dependencies: - "@docsearch/react" "^3.9.0" - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" - algoliasearch "^5.17.1" - algoliasearch-helper "^3.22.6" +"@docusaurus/theme-search-algolia@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz#420fd5b27fc1673b48151fdc9fe7167ba135ed50" + integrity sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw== + dependencies: + "@docsearch/react" "^3.9.0 || ^4.1.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-translations" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" + algoliasearch "^5.37.0" + algoliasearch-helper "^3.26.0" clsx "^2.0.0" eta "^2.2.0" fs-extra "^11.1.1" @@ -1966,26 +1986,27 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz#4b1d76973eb53861e167c7723485e059ba4ffd0a" - integrity sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g== +"@docusaurus/theme-translations@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz#238cd69c2da92d612be3d3b4f95944c1d0f1e041" + integrity sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA== dependencies: fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/tsconfig@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz#a1f7daadfc93455289200647f4ee10cdca540f7b" - integrity sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A== +"@docusaurus/tsconfig@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz#7f440e0ae665b841e1d487749037f26a0275f9c1" + integrity sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ== -"@docusaurus/types@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.8.1.tgz#83ab66c345464e003b576a49f78897482061fc26" - integrity sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg== +"@docusaurus/types@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.9.2.tgz#e482cf18faea0d1fa5ce0e3f1e28e0f32d2593eb" + integrity sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q== dependencies: "@mdx-js/mdx" "^3.0.0" "@types/history" "^4.7.11" + "@types/mdast" "^4.0.2" "@types/react" "*" commander "^5.1.0" joi "^17.9.2" @@ -1994,36 +2015,36 @@ webpack "^5.95.0" webpack-merge "^5.9.0" -"@docusaurus/utils-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.8.1.tgz#c369b8c3041afb7dcd595d4172beb1cc1015c85f" - integrity sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg== +"@docusaurus/utils-common@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.9.2.tgz#e89bfcf43d66359f43df45293fcdf22814847460" + integrity sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw== dependencies: - "@docusaurus/types" "3.8.1" + "@docusaurus/types" "3.9.2" tslib "^2.6.0" -"@docusaurus/utils-validation@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz#0499c0d151a4098a0963237057993282cfbd538e" - integrity sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA== +"@docusaurus/utils-validation@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz#04aec285604790806e2fc5aa90aa950dc7ba75ae" + integrity sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" fs-extra "^11.2.0" joi "^17.9.2" js-yaml "^4.1.0" lodash "^4.17.21" tslib "^2.6.0" -"@docusaurus/utils@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.8.1.tgz#2ac1e734106e2f73dbd0f6a8824d525f9064e9f0" - integrity sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ== +"@docusaurus/utils@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.9.2.tgz#ffab7922631c7e0febcb54e6d499f648bf8a89eb" + integrity sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-common" "3.9.2" escape-string-regexp "^4.0.0" execa "5.1.1" file-loader "^6.2.0" @@ -2043,25 +2064,25 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@emnapi/core@^1.4.5": - version "1.4.5" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.5.tgz#bfbb0cbbbb9f96ec4e2c4fd917b7bbe5495ceccb" - integrity sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q== +"@emnapi/core@^1.5.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" + integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== dependencies: - "@emnapi/wasi-threads" "1.0.4" + "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" -"@emnapi/runtime@^1.4.5": - version "1.4.5" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.5.tgz#c67710d0661070f38418b6474584f159de38aba9" - integrity sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg== +"@emnapi/runtime@^1.5.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" + integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== dependencies: tslib "^2.4.0" -"@emnapi/wasi-threads@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz#703fc094d969e273b1b71c292523b2f792862bf4" - integrity sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g== +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== dependencies: tslib "^2.4.0" @@ -2082,14 +2103,7 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/eslint-utils@^4.8.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.8.0": version "4.9.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== @@ -2101,31 +2115,33 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/config-array@^0.21.0": - version "0.21.0" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.0.tgz#abdbcbd16b124c638081766392a4d6b509f72636" - integrity sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ== +"@eslint/config-array@^0.21.1": + version "0.21.1" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713" + integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== dependencies: - "@eslint/object-schema" "^2.1.6" + "@eslint/object-schema" "^2.1.7" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/config-helpers@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.3.1.tgz#d316e47905bd0a1a931fa50e669b9af4104d1617" - integrity sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA== +"@eslint/config-helpers@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda" + integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== + dependencies: + "@eslint/core" "^0.17.0" -"@eslint/core@^0.15.2": - version "0.15.2" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.2.tgz#59386327d7862cc3603ebc7c78159d2dcc4a868f" - integrity sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg== +"@eslint/core@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c" + integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@3.3.1", "@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== +"@eslint/eslintrc@3.3.3", "@eslint/eslintrc@^3.3.1": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac" + integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -2133,26 +2149,26 @@ globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^4.1.0" + js-yaml "^4.1.1" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.36.0": - version "9.36.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.36.0.tgz#b1a3893dd6ce2defed5fd49de805ba40368e8fef" - integrity sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw== +"@eslint/js@9.39.2": + version "9.39.2" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.2.tgz#2d4b8ec4c3ea13c1b3748e0c97ecd766bdd80599" + integrity sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA== -"@eslint/object-schema@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" - integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== +"@eslint/object-schema@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad" + integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== -"@eslint/plugin-kit@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz#fd8764f0ee79c8ddab4da65460c641cefee017c5" - integrity sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w== +"@eslint/plugin-kit@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2" + integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== dependencies: - "@eslint/core" "^0.15.2" + "@eslint/core" "^0.17.0" levn "^0.4.1" "@exodus/schemasafe@^1.0.0-rc.2": @@ -2258,6 +2274,18 @@ local-pkg "^1.0.0" mlly "^1.7.4" +"@isaacs/balanced-match@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" + integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== + +"@isaacs/brace-expansion@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz#0ef5a92d91f2fff2a37646ce54da9e5f599f6eff" + integrity sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ== + dependencies: + "@isaacs/balanced-match" "^4.0.1" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2341,16 +2369,6 @@ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== -"@jsep-plugin/assignment@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@jsep-plugin/assignment/-/assignment-1.3.0.tgz#fcfc5417a04933f7ceee786e8ab498aa3ce2b242" - integrity sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ== - -"@jsep-plugin/regex@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@jsep-plugin/regex/-/regex-1.0.4.tgz#cb2fc423220fa71c609323b9ba7f7d344a755fcc" - integrity sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg== - "@json-schema-spec/json-pointer@^0.1.2": version "0.1.2" resolved "https://registry.yarnpkg.com/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz#5153d5d01b94134015ee829deca5a970cf0406fd" @@ -2391,6 +2409,51 @@ resolved "https://registry.yarnpkg.com/@json-schema-tools/traverse/-/traverse-1.10.4.tgz#44037fd334068aa1de77bfa829b66e884ffc26e2" integrity sha512-9e42zjhLIxzBONroNC4SGsTqdB877tzwH2S6lqgTav9K24kWJR9vNieeMVSuyqnY8FlclH21D8wsm/tuD9WA9Q== +"@jsonjoy.com/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/buffers@^1.0.0", "@jsonjoy.com/buffers@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz#8d99c7f67eaf724d3428dfd9826c6455266a5c83" + integrity sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== + +"@jsonjoy.com/codegen@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" + integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== + +"@jsonjoy.com/json-pack@^1.11.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz#93f8dd57fe3a3a92132b33d1eb182dcd9e7629fa" + integrity sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== + dependencies: + "@jsonjoy.com/base64" "^1.1.2" + "@jsonjoy.com/buffers" "^1.2.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/json-pointer" "^1.0.2" + "@jsonjoy.com/util" "^1.9.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pointer@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" + integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== + dependencies: + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/util" "^1.9.0" + +"@jsonjoy.com/util@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" + integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== + dependencies: + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@juggle/resize-observer@^3.3.1": version "3.4.0" resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" @@ -2431,20 +2494,13 @@ unist-util-visit "^5.0.0" vfile "^6.0.0" -"@mdx-js/react@3.1.1": +"@mdx-js/react@3.1.1", "@mdx-js/react@^3.0.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.1.tgz#24bda7fffceb2fe256f954482123cda1be5f5fef" integrity sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw== dependencies: "@types/mdx" "^2.0.0" -"@mdx-js/react@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" - integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== - dependencies: - "@types/mdx" "^2.0.0" - "@mermaid-js/parser@^0.6.2": version "0.6.2" resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.6.2.tgz#6d505a33acb52ddeb592c596b14f9d92a30396a9" @@ -2452,57 +2508,62 @@ dependencies: langium "3.3.1" -"@module-federation/error-codes@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.18.0.tgz#00830ece3b5b6bcda0a874a8426bcd94599bf738" - integrity sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ== +"@module-federation/error-codes@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.21.6.tgz#d0c9fa71f9469b2150165ef4461dfd5be0e7f79b" + integrity sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ== -"@module-federation/runtime-core@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.18.0.tgz#d696bce1001b42a3074613a9e51b1f9e843f5492" - integrity sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ== +"@module-federation/runtime-core@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.21.6.tgz#2bcd24db2192179c96ce49772b09d72820ab9ea3" + integrity sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw== dependencies: - "@module-federation/error-codes" "0.18.0" - "@module-federation/sdk" "0.18.0" + "@module-federation/error-codes" "0.21.6" + "@module-federation/sdk" "0.21.6" -"@module-federation/runtime-tools@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.18.0.tgz#8eddf50178974e0b2caaf8ad42e798eff3ab98e2" - integrity sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA== +"@module-federation/runtime-tools@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.21.6.tgz#40cbcc16af4c597169834a2d8b71a9d31779ab0c" + integrity sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q== dependencies: - "@module-federation/runtime" "0.18.0" - "@module-federation/webpack-bundler-runtime" "0.18.0" + "@module-federation/runtime" "0.21.6" + "@module-federation/webpack-bundler-runtime" "0.21.6" -"@module-federation/runtime@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.18.0.tgz#875486c67a0038d474a7efc890be5ee6f579ad38" - integrity sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw== +"@module-federation/runtime@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.21.6.tgz#8d4a29a792ed4a94e5a811fe097d314a6f9dcab7" + integrity sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ== dependencies: - "@module-federation/error-codes" "0.18.0" - "@module-federation/runtime-core" "0.18.0" - "@module-federation/sdk" "0.18.0" + "@module-federation/error-codes" "0.21.6" + "@module-federation/runtime-core" "0.21.6" + "@module-federation/sdk" "0.21.6" -"@module-federation/sdk@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.18.0.tgz#47bdbc23768fc2b9aae4f70bad47d6454349c1c1" - integrity sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A== +"@module-federation/sdk@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.21.6.tgz#8aac1159ff37f418ed72bc79afccbbfb025f847a" + integrity sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw== -"@module-federation/webpack-bundler-runtime@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.18.0.tgz#ba81a43800e6ceaff104a6956d9088b84df5a496" - integrity sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ== +"@module-federation/webpack-bundler-runtime@0.21.6": + version "0.21.6" + resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.21.6.tgz#6831eaf147356fe5b096d24c7a902c323e810bb9" + integrity sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ== dependencies: - "@module-federation/runtime" "0.18.0" - "@module-federation/sdk" "0.18.0" + "@module-federation/runtime" "0.21.6" + "@module-federation/sdk" "0.21.6" -"@napi-rs/wasm-runtime@^1.0.1": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.3.tgz#24593dbd6fd1454b0b9c8b73bf7ac62d92a6bf63" - integrity sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q== +"@napi-rs/wasm-runtime@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz#dcfea99a75f06209a235f3d941e3460a51e9b14c" + integrity sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw== dependencies: - "@emnapi/core" "^1.4.5" - "@emnapi/runtime" "^1.4.5" - "@tybys/wasm-util" "^0.10.0" + "@emnapi/core" "^1.5.0" + "@emnapi/runtime" "^1.5.0" + "@tybys/wasm-util" "^0.10.1" + +"@noble/hashes@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2556,126 +2617,114 @@ is-url "^1.2.4" isomorphic-fetch "^3.0.0" -"@opentelemetry/api-logs@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz#c478cbd8120ec2547b64edfa03a552cfe42170be" - integrity sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw== +"@opentelemetry/api-logs@0.202.0": + version "0.202.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.202.0.tgz#78ddb3b4a30232fd0916b99f27777b1936355d03" + integrity sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw== dependencies: - "@opentelemetry/api" "^1.0.0" + "@opentelemetry/api" "^1.3.0" -"@opentelemetry/api@1.9.0", "@opentelemetry/api@^1.0.0": +"@opentelemetry/api@1.9.0", "@opentelemetry/api@^1.3.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== -"@opentelemetry/context-async-hooks@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.26.0.tgz#fa92f722cf685685334bba95f258d3ef9fce60f6" - integrity sha512-HedpXXYzzbaoutw6DFLWLDket2FwLkLpil4hGCZ1xYEIMTcivdfwEOISgdbLEWyG3HW52gTq2V9mOVJrONgiwg== - -"@opentelemetry/core@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.26.0.tgz#7d84265aaa850ed0ca5813f97d831155be42b328" - integrity sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ== - dependencies: - "@opentelemetry/semantic-conventions" "1.27.0" - -"@opentelemetry/exporter-trace-otlp-http@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.53.0.tgz#48e46c4573a35d31c14e6bc44635923e32970b9a" - integrity sha512-m7F5ZTq+V9mKGWYpX8EnZ7NjoqAU7VemQ1E2HAG+W/u0wpY1x0OmbxAXfGKFHCspdJk8UKlwPGrpcB8nay3P8A== - dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/otlp-exporter-base" "0.53.0" - "@opentelemetry/otlp-transformer" "0.53.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/sdk-trace-base" "1.26.0" - -"@opentelemetry/otlp-exporter-base@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.53.0.tgz#dfe51874b869c687c3cb463b70cddda7de282762" - integrity sha512-UCWPreGQEhD6FjBaeDuXhiMf6kkBODF0ZQzrk/tuQcaVDJ+dDQ/xhJp192H9yWnKxVpEjFrSSLnpqmX4VwX+eA== - dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/otlp-transformer" "0.53.0" - -"@opentelemetry/otlp-transformer@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.53.0.tgz#55d435db5ed5cf56b99c010827294dd4921c45c2" - integrity sha512-rM0sDA9HD8dluwuBxLetUmoqGJKSAbWenwD65KY9iZhUxdBHRLrIdrABfNDP7aiTjcgK8XFyTn5fhDz7N+W6DA== - dependencies: - "@opentelemetry/api-logs" "0.53.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/sdk-logs" "0.53.0" - "@opentelemetry/sdk-metrics" "1.26.0" - "@opentelemetry/sdk-trace-base" "1.26.0" - protobufjs "^7.3.0" +"@opentelemetry/context-async-hooks@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-2.0.1.tgz#4416bc2df780c1dda1129afb9392d55831dd861d" + integrity sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw== -"@opentelemetry/propagator-b3@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.26.0.tgz#3ebbeff26a3fb81e8be011666ea6d07ff3e4fba7" - integrity sha512-vvVkQLQ/lGGyEy9GT8uFnI047pajSOVnZI2poJqVGD3nJ+B9sFGdlHNnQKophE3lHfnIH0pw2ubrCTjZCgIj+Q== - dependencies: - "@opentelemetry/core" "1.26.0" +"@opentelemetry/core@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.0.1.tgz#44e1149d5666a4743cde943ef89841db3ce0f8bc" + integrity sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw== + dependencies: + "@opentelemetry/semantic-conventions" "^1.29.0" + +"@opentelemetry/exporter-trace-otlp-http@0.202.0": + version "0.202.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.202.0.tgz#5587696379696bf14f6bfb3ad63e489ac56d9e13" + integrity sha512-/hKE8DaFCJuaQqE1IxpgkcjOolUIwgi3TgHElPVKGdGRBSmJMTmN/cr6vWa55pCJIXPyhKvcMrbrya7DZ3VmzA== + dependencies: + "@opentelemetry/core" "2.0.1" + "@opentelemetry/otlp-exporter-base" "0.202.0" + "@opentelemetry/otlp-transformer" "0.202.0" + "@opentelemetry/resources" "2.0.1" + "@opentelemetry/sdk-trace-base" "2.0.1" + +"@opentelemetry/otlp-exporter-base@0.202.0": + version "0.202.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.202.0.tgz#f5d9904c2f37a6eed31d73178485138dbe6cb1f1" + integrity sha512-nMEOzel+pUFYuBJg2znGmHJWbmvMbdX5/RhoKNKowguMbURhz0fwik5tUKplLcUtl8wKPL1y9zPnPxeBn65N0Q== + dependencies: + "@opentelemetry/core" "2.0.1" + "@opentelemetry/otlp-transformer" "0.202.0" + +"@opentelemetry/otlp-transformer@0.202.0": + version "0.202.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.202.0.tgz#0df9b419e68b726f6de9b85ee3ba3e373ef041b7" + integrity sha512-5XO77QFzs9WkexvJQL9ksxL8oVFb/dfi9NWQSq7Sv0Efr9x3N+nb1iklP1TeVgxqJ7m1xWiC/Uv3wupiQGevMw== + dependencies: + "@opentelemetry/api-logs" "0.202.0" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/resources" "2.0.1" + "@opentelemetry/sdk-logs" "0.202.0" + "@opentelemetry/sdk-metrics" "2.0.1" + "@opentelemetry/sdk-trace-base" "2.0.1" + protobufjs "^7.3.0" -"@opentelemetry/propagator-jaeger@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.26.0.tgz#096ac03d754204921cd5a886c77b5c9bd4677cd7" - integrity sha512-DelFGkCdaxA1C/QA0Xilszfr0t4YbGd3DjxiCDPh34lfnFr+VkkrjV9S8ZTJvAzfdKERXhfOxIKBoGPJwoSz7Q== +"@opentelemetry/resources@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.0.1.tgz#0365d134291c0ed18d96444a1e21d0e6a481c840" + integrity sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw== dependencies: - "@opentelemetry/core" "1.26.0" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/resources@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.26.0.tgz#da4c7366018bd8add1f3aa9c91c6ac59fd503cef" - integrity sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw== +"@opentelemetry/sdk-logs@0.202.0": + version "0.202.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.202.0.tgz#7caab8f764d5c95e5809a42f5df3ff1ad5ebd862" + integrity sha512-pv8QiQLQzk4X909YKm0lnW4hpuQg4zHwJ4XBd5bZiXcd9urvrJNoNVKnxGHPiDVX/GiLFvr5DMYsDBQbZCypRQ== dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/semantic-conventions" "1.27.0" + "@opentelemetry/api-logs" "0.202.0" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/resources" "2.0.1" -"@opentelemetry/sdk-logs@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.53.0.tgz#ec8b69278c4e683c13c58ed4285a47c27f5799c6" - integrity sha512-dhSisnEgIj/vJZXZV6f6KcTnyLDx/VuQ6l3ejuZpMpPlh9S1qMHiZU9NMmOkVkwwHkMy3G6mEBwdP23vUZVr4g== +"@opentelemetry/sdk-metrics@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-2.0.1.tgz#efb6e9349e8a9038ac622e172692bfcdcad8010b" + integrity sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g== dependencies: - "@opentelemetry/api-logs" "0.53.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/resources" "2.0.1" -"@opentelemetry/sdk-metrics@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.26.0.tgz#37bb0afb1d4447f50aab9cdd05db6f2d8b86103e" - integrity sha512-0SvDXmou/JjzSDOjUmetAAvcKQW6ZrvosU0rkbDGpXvvZN+pQF6JbK/Kd4hNdK4q/22yeruqvukXEJyySTzyTQ== +"@opentelemetry/sdk-trace-base@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.0.1.tgz#25808bb6a3d08a501ad840249e4d43d3493eb6e5" + integrity sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ== dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/resources" "2.0.1" + "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/sdk-trace-base@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz#0c913bc6d2cfafd901de330e4540952269ae579c" - integrity sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw== +"@opentelemetry/sdk-trace-node@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.0.1.tgz#bbb9bdb4985d7930941b3d4023e1661ba46f60c1" + integrity sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA== dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/semantic-conventions" "1.27.0" + "@opentelemetry/context-async-hooks" "2.0.1" + "@opentelemetry/core" "2.0.1" + "@opentelemetry/sdk-trace-base" "2.0.1" -"@opentelemetry/sdk-trace-node@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.26.0.tgz#169ef4fc058e82a12460da18cedaf6e4615fc617" - integrity sha512-Fj5IVKrj0yeUwlewCRwzOVcr5avTuNnMHWf7GPc1t6WaT78J6CJyF3saZ/0RkZfdeNO8IcBl/bNcWMVZBMRW8Q== - dependencies: - "@opentelemetry/context-async-hooks" "1.26.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/propagator-b3" "1.26.0" - "@opentelemetry/propagator-jaeger" "1.26.0" - "@opentelemetry/sdk-trace-base" "1.26.0" - semver "^7.5.2" +"@opentelemetry/semantic-conventions@1.34.0": + version "1.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.34.0.tgz#8b6a46681b38a4d5947214033ac48128328c1738" + integrity sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA== -"@opentelemetry/semantic-conventions@1.27.0": - version "1.27.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c" - integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg== +"@opentelemetry/semantic-conventions@^1.29.0": + version "1.38.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.38.0.tgz#8b5f415395a7ddb7c8e0c7932171deb9278df1a3" + integrity sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg== "@parcel/watcher-android-arm64@2.5.1": version "2.5.1" @@ -2951,46 +3000,47 @@ dependencies: "@react-types/shared" "^3.9.0" -"@redocly/ajv@8.11.2", "@redocly/ajv@^8.11.2": - version "8.11.2" - resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.11.2.tgz#46e1bf321ec0ac1e0fd31dea41a3d1fcbdcda0b5" - integrity sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg== +"@redocly/ajv@8.17.1", "@redocly/ajv@^8.11.2", "@redocly/ajv@^8.17.1": + version "8.17.1" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.17.1.tgz#e2b1722cbc8b4cd7e05da14a745d3ddd03293734" + integrity sha512-EDtsGZS964mf9zAUXAl9Ew16eYbeyAFWhsPr0fX6oaJxgd8rApYlPBf0joyhnUHz88WxrigyFtTaqqzXNzPgqw== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js-replace "^1.0.1" -"@redocly/cli@1.34.5": - version "1.34.5" - resolved "https://registry.yarnpkg.com/@redocly/cli/-/cli-1.34.5.tgz#c5e04915ef35ccd3b09d52f8add524ecc9a784a7" - integrity sha512-5IEwxs7SGP5KEXjBKLU8Ffdz9by/KqNSeBk6YUVQaGxMXK//uYlTJIPntgUXbo1KAGG2d2q2XF8y4iFz6qNeiw== - dependencies: - "@opentelemetry/api" "1.9.0" - "@opentelemetry/exporter-trace-otlp-http" "0.53.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/sdk-trace-node" "1.26.0" - "@opentelemetry/semantic-conventions" "1.27.0" - "@redocly/config" "^0.22.0" - "@redocly/openapi-core" "1.34.5" - "@redocly/respect-core" "1.34.5" +"@redocly/cli@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@redocly/cli/-/cli-2.14.1.tgz#11960d5099df26a9aea8d9e98f4b642b928bfcbd" + integrity sha512-Fz9qSkUz/CZgO4xnlPiRBMjwTqH1VxKlO3y8gOrEHOtr2v4peO2Fvbpz30iipTHkbrCt8UorZelXM1TEqkYHSQ== + dependencies: + "@opentelemetry/exporter-trace-otlp-http" "0.202.0" + "@opentelemetry/resources" "2.0.1" + "@opentelemetry/sdk-trace-node" "2.0.1" + "@opentelemetry/semantic-conventions" "1.34.0" + "@redocly/openapi-core" "2.14.1" + "@redocly/respect-core" "2.14.1" abort-controller "^3.0.0" chokidar "^3.5.1" colorette "^1.2.0" - core-js "^3.32.1" + cookie "^0.7.2" dotenv "16.4.7" form-data "^4.0.4" - get-port-please "^3.0.1" - glob "^7.1.6" + glob "^11.0.1" handlebars "^4.7.6" + https-proxy-agent "^7.0.5" mobx "^6.0.4" pluralize "^8.0.0" - react "^17.0.0 || ^18.2.0 || ^19.0.0" - react-dom "^17.0.0 || ^18.2.0 || ^19.0.0" - redoc "2.5.0" + react "^17.0.0 || ^18.2.0 || ^19.2.1" + react-dom "^17.0.0 || ^18.2.0 || ^19.2.1" + redoc "2.5.1" semver "^7.5.2" + set-cookie-parser "^2.3.5" simple-websocket "^9.0.0" styled-components "^6.0.7" + ulid "^3.0.1" + undici "^6.21.3" yargs "17.0.1" "@redocly/config@^0.22.0": @@ -2998,18 +3048,25 @@ resolved "https://registry.yarnpkg.com/@redocly/config/-/config-0.22.1.tgz#e14461c009ac53b74f82c9788f9c43fc2c718f24" integrity sha512-1CqQfiG456v9ZgYBG9xRQHnpXjt8WoSnDwdkX6gxktuK69v2037hTAR1eh0DGIqpZ1p4k82cGH8yTNwt7/pI9g== -"@redocly/openapi-core@1.34.5": - version "1.34.5" - resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.34.5.tgz#9c2cf901d1098ceb626e789e2065c762fe63727f" - integrity sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA== +"@redocly/config@^0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@redocly/config/-/config-0.41.1.tgz#2e79d647fc291253e065068102eabb22bf8440c1" + integrity sha512-LcMCzFbP/sqkCLSG3YswmeScP4fM5SjDCQizwa+psZ0PhYrKOMF7azZ6ZBkWs115uv5RfOk+jYAWLdKkZGGGXg== dependencies: - "@redocly/ajv" "^8.11.2" - "@redocly/config" "^0.22.0" + json-schema-to-ts "2.7.2" + +"@redocly/openapi-core@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-2.14.1.tgz#7b4f5e316451dff322ab51b5c87df1d2333283db" + integrity sha512-WKjfdnUalQfNnQfbkCg+uXEDydq7/g8t1VbzK6Nm6M/4JBjQlnUdo5kV9CLWM3IcdVHm9idovIW6cej2NRb2eA== + dependencies: + "@redocly/ajv" "^8.17.1" + "@redocly/config" "^0.41.1" + ajv-formats "^3.0.1" colorette "^1.2.0" - https-proxy-agent "^7.0.5" js-levenshtein "^1.1.6" js-yaml "^4.1.0" - minimatch "^5.0.1" + picomatch "^4.0.3" pluralize "^8.0.0" yaml-ast-parser "0.0.43" @@ -3028,30 +3085,21 @@ pluralize "^8.0.0" yaml-ast-parser "0.0.43" -"@redocly/respect-core@1.34.5": - version "1.34.5" - resolved "https://registry.yarnpkg.com/@redocly/respect-core/-/respect-core-1.34.5.tgz#16ff435659a16e27deb5258b0d213ba98cba7657" - integrity sha512-GheC/g/QFztPe9UA9LamooSplQuy9pe0Yr8XGTqkz0ahivLDl7svoy/LSQNn1QH3XGtLKwFYMfTwFR2TAYyh5Q== +"@redocly/respect-core@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@redocly/respect-core/-/respect-core-2.14.1.tgz#e8dd0eb5913c7312ce67730a4c42740ef2835a0d" + integrity sha512-WhAvjiEAbfd1unNAqVCTFny2PkuVOAK1eZ5JE6p1iHgLIoLZX0tdjM1+ht56AWE2hZ/TkcKDDP45GDqfBymi0w== dependencies: "@faker-js/faker" "^7.6.0" - "@redocly/ajv" "8.11.2" - "@redocly/openapi-core" "1.34.5" + "@noble/hashes" "^1.8.0" + "@redocly/ajv" "8.17.1" + "@redocly/openapi-core" "2.14.1" better-ajv-errors "^1.2.0" colorette "^2.0.20" - concat-stream "^2.0.0" - cookie "^0.7.2" - dotenv "16.4.7" - form-data "^4.0.4" - jest-diff "^29.3.1" - jest-matcher-utils "^29.3.1" - js-yaml "4.1.0" json-pointer "^0.6.2" - jsonpath-plus "^10.0.6" - open "^10.1.0" + jsonpath-rfc9535 "1.3.0" openapi-sampler "^1.6.1" outdent "^0.8.0" - set-cookie-parser "^2.3.5" - undici "^6.21.1" "@reduxjs/toolkit@^1.7.1": version "1.9.7" @@ -3100,87 +3148,87 @@ lodash "^4.17.21" lodash-es "^4.17.21" -"@rspack/binding-darwin-arm64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.5.1.tgz#c758ca2b81f87e3f9614da0e079a108aee257586" - integrity sha512-iPQUqNrwmr3IH451EOrmAnADEwkxMnM83VnG3opzYMu2ipuWQdJXcnQ0m/qzoKeoNQ9zhLfdGdMQqvP5pV/Tlg== - -"@rspack/binding-darwin-x64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.5.1.tgz#8df44d83b456d31f6be591637246920a7d591224" - integrity sha512-Kcx8bTDdKqOe5sDUw+NFF+GzRgBHRYVs0NlVKlvKW59EIw0PEvcs0GKL0wDwkFuTL3+GRk4Uec+qHyIkv50SNA== - -"@rspack/binding-linux-arm64-gnu@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.5.1.tgz#211f930fa7ad1aae43305e88eb4a8a8d16b83908" - integrity sha512-6TeGUOy9De3E/XcbmcPW9YkAK2wfB7/K6UAtXp4oWiVjueQJj3FMFnRkzatagOUDoSRASqz2JiQKiMDvQpGu+g== - -"@rspack/binding-linux-arm64-musl@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.5.1.tgz#55ea8651d402c48407e01cf01dda8be6e2ae804a" - integrity sha512-qHXHDG+5z2zZ2CYYisvmLQQ6f8E1yiP/lyfGTpOF8KGz5eZEWkSdYXUdctE9PWW9lVkapWcuz9eP1Nt74KSvvA== - -"@rspack/binding-linux-x64-gnu@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.5.1.tgz#675f2f844cd3ea814a773ac66335c4ef1f58c653" - integrity sha512-ywQcyc3s0XNspkbsN+glrnSoyWJOcaLDr536kY5SoAgfiaKlg9Fmg42jAwEv9SUSx3jRxyqaFCsSjNv5/mvBsA== - -"@rspack/binding-linux-x64-musl@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.5.1.tgz#8c1e8d9e25e865609232404f2010ffdedda1273c" - integrity sha512-0nF959K2pZMdRQewohjHxWSD97lIXlOh/xznr0f3zpFv2M/cB1HjHqD/yvZNgU+/hDdEeXplJp7WpD+/tJzX3w== - -"@rspack/binding-wasm32-wasi@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.5.1.tgz#2f2a79c5b7be708c0894d4fb5d36c43baed7d98b" - integrity sha512-iM+p8qIWH1uYxKh+MfNyCQ5Ia2QaGeKaGYPzikKakLAK2XaUCflmWP8fGppVUYxX0+b1a4tBOZveN8g1QeZsXw== - dependencies: - "@napi-rs/wasm-runtime" "^1.0.1" - -"@rspack/binding-win32-arm64-msvc@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.5.1.tgz#5964386ff30896599c7218be261279620c9f36a8" - integrity sha512-vTbYk5wixqTNs7DE+HHYYol1bl1wg8vkvShdnWFV8kQ8PPwZymNuLbuLng7yp8tN2FKWaQ5YTuhmIrzF3dLuzw== - -"@rspack/binding-win32-ia32-msvc@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.5.1.tgz#1c6aba76d12eb75ca508d55d247906b199b88601" - integrity sha512-QPUy14Lu4CVpnarGhLoe0Dg+zF1bUAonVdEZSP9DttI1NOBkvl39c1WnnY33c1nwps0n/EQBoGJXDaTVuZfS+Q== - -"@rspack/binding-win32-x64-msvc@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.5.1.tgz#7c24f3b317949a2cb5579c325e4f39c279e737e9" - integrity sha512-Qxl/P2NPYhKM1RqQZtSNauYIvTXb4G4gPOFRHc8iLZRnjN0cxRxJcoonz/hBX436qnv5ZYs7wEqZe2HQCBUtmw== - -"@rspack/binding@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.5.1.tgz#4a9614076f65c30a744e13420ce63d051c0dc0d2" - integrity sha512-/RdQwmnXNjUG1ysf63R/tdWCyDQ5GSqbvOMsTuBd+3r3qnyCCAEPg6ed3vwI+GvnRXw1QzOXF98b+tkt0eFESA== +"@rspack/binding-darwin-arm64@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.6.7.tgz#3011b09024172f1454491acbbbec445712d87cbb" + integrity sha512-QiIAP8JTAtht0j8/xZZEQTJRB9e+KrOm9c7JJm73CewVg55rDWRrwopiVfBNlTu1coem1ztUHJYdQhg2uXfqww== + +"@rspack/binding-darwin-x64@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.6.7.tgz#c94eb4894a633d37330dd6fd413e0d1b4823a195" + integrity sha512-DpQRxxTXkMMNPmBXeJBaAB8HmWKxH2IfvHv7vU+kBhJ3xdPtXU4/xBv1W3biluoNRG11gc1WLIgjzeGgaLCxmw== + +"@rspack/binding-linux-arm64-gnu@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.6.7.tgz#71143ab5967a6c99b28a793467c0f0d09bb256ea" + integrity sha512-211/XoBiooGGgUo/NxNpsrzGUXtH1d7g/4+UTtjYtfc8QHwu7ZMHcsqg0wss53fXzn/yyxd0DZ56vBHq52BiFw== + +"@rspack/binding-linux-arm64-musl@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.6.7.tgz#f58e787becf14a44f022f31710398588727e899d" + integrity sha512-0WnqAWz3WPDsXGvOOA++or7cHpoidVsH3FlqNaAfRu6ni6n7ig/s0/jKUB+C5FtXOgmGjAGkZHfFgNHsvZ0FWw== + +"@rspack/binding-linux-x64-gnu@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.6.7.tgz#5332c234ee95cb2ffaf6399da0f5c8839c76ac82" + integrity sha512-iMrE0Q4IuYpkE0MjpaOVaUDYbQFiCRI9D3EPoXzlXJj4kJSdNheODpHTBVRlWt8Xp7UAoWuIFXCvKFKcSMm3aQ== + +"@rspack/binding-linux-x64-musl@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.6.7.tgz#cec5698385ef7337711d13e2d72c40e8adc0c4a5" + integrity sha512-e7gKFxpdEQwYGk7lTC/hukTgNtaoAstBXehnZNk4k3kuU6+86WDrkn18Cd949iNqfIPtIG/wIsFNGbkHsH69hQ== + +"@rspack/binding-wasm32-wasi@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.6.7.tgz#c9691d254b4b1f663fc5cb75925ab83986a0df75" + integrity sha512-yx88EFdE9RP3hh7VhjjW6uc6wGU0KcpOcZp8T8E/a+X8L98fX0aVrtM1IDbndhmdluIMqGbfJNap2+QqOCY9Mw== + dependencies: + "@napi-rs/wasm-runtime" "1.0.7" + +"@rspack/binding-win32-arm64-msvc@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.6.7.tgz#23ebf53964a4d234e55312cf5a0fc0edf635d917" + integrity sha512-vgxVYpFK8P5ulSXQQA+EbX78R/SUU+WIf0JIY+LoUoP89gZOsise/lKAJMAybzpeTJ1t0ndLchFznDYnzq+l4Q== + +"@rspack/binding-win32-ia32-msvc@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.6.7.tgz#0063fc50c7b4691ece5e744307e92b7a55eb705a" + integrity sha512-bV5RTW0Va0UQKJm9HWLt7fWNBPaBBBxCJOA2pJT3nGGm6CCXKnZSyEiVbFUk4jI/uiwBfqenlLkzaGoMRbeDhA== + +"@rspack/binding-win32-x64-msvc@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.6.7.tgz#2e81beac138e562a94a3f54c8fc2ac7e5329f23c" + integrity sha512-8xlbuJQtYktlBjZupOHlO8FeZqSIhsV3ih7xBSiOYar6LI6uQzA7XiO3I5kaPSDirBMMMKv1Z4rKCxWx10a3TQ== + +"@rspack/binding@1.6.7": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.6.7.tgz#d80930e2f89c40f2579a924002e3dbb460e559d3" + integrity sha512-7ICabuBN3gHc6PPN52+m1kruz3ogiJjg1C0gSWdLRk18m/4jlcM2aAy6wfXjgODJdB0Yh2ro/lIpBbj+AYWUGA== optionalDependencies: - "@rspack/binding-darwin-arm64" "1.5.1" - "@rspack/binding-darwin-x64" "1.5.1" - "@rspack/binding-linux-arm64-gnu" "1.5.1" - "@rspack/binding-linux-arm64-musl" "1.5.1" - "@rspack/binding-linux-x64-gnu" "1.5.1" - "@rspack/binding-linux-x64-musl" "1.5.1" - "@rspack/binding-wasm32-wasi" "1.5.1" - "@rspack/binding-win32-arm64-msvc" "1.5.1" - "@rspack/binding-win32-ia32-msvc" "1.5.1" - "@rspack/binding-win32-x64-msvc" "1.5.1" - -"@rspack/core@^1.3.15": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.5.1.tgz#6f889108722f82fb02c533ec54ff16ffab7ac03e" - integrity sha512-/zWrSNFfdTFKyZP1X3Hhg7kcEsd5//GUABbVvr3P5z4HO+gYEnnaXP1Ciu0wlYke+c3M0b5pvnqB+ka0YbYeTg== - dependencies: - "@module-federation/runtime-tools" "0.18.0" - "@rspack/binding" "1.5.1" - "@rspack/lite-tapable" "1.0.1" - -"@rspack/lite-tapable@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz#d4540a5d28bd6177164bc0ba0bee4bdec0458591" - integrity sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w== + "@rspack/binding-darwin-arm64" "1.6.7" + "@rspack/binding-darwin-x64" "1.6.7" + "@rspack/binding-linux-arm64-gnu" "1.6.7" + "@rspack/binding-linux-arm64-musl" "1.6.7" + "@rspack/binding-linux-x64-gnu" "1.6.7" + "@rspack/binding-linux-x64-musl" "1.6.7" + "@rspack/binding-wasm32-wasi" "1.6.7" + "@rspack/binding-win32-arm64-msvc" "1.6.7" + "@rspack/binding-win32-ia32-msvc" "1.6.7" + "@rspack/binding-win32-x64-msvc" "1.6.7" + +"@rspack/core@^1.5.0": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.6.7.tgz#4c3e70bc482834c5ebc02662d2b83b2e10982759" + integrity sha512-tkd4nSzTf+pDa9OAE4INi/JEa93HNszjWy5C9+trf4ZCXLLHsHxHQFbzoreuz4Vv2PlCWajgvAdiPMV1vGIkuw== + dependencies: + "@module-federation/runtime-tools" "0.21.6" + "@rspack/binding" "1.6.7" + "@rspack/lite-tapable" "1.1.0" + +"@rspack/lite-tapable@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz#3cfdafeed01078e116bd4f191b684c8b484de425" + integrity sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw== "@sentry/browser@6.19.7": version "6.19.7" @@ -3287,6 +3335,11 @@ micromark-util-character "^1.1.0" micromark-util-symbol "^1.0.1" +"@standard-schema/spec@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.0.0.tgz#f193b73dc316c4170f2e82a881da0f550d551b9c" + integrity sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA== + "@stellar/open-rpc-docs-react@^0.2.1": version "0.2.1" resolved "https://registry.yarnpkg.com/@stellar/open-rpc-docs-react/-/open-rpc-docs-react-0.2.1.tgz#46c267a08d5cbff0aef39fc9386ad042626aeb46" @@ -3701,73 +3754,73 @@ resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== -"@swc/html-darwin-arm64@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.10.16.tgz#f54be00bf14344a693568d71674749b7da1691ff" - integrity sha512-bNWt5I0K8AoiMCPraAfUwg2qsnrQzh3II2zHHrhSoRm075SfFwZFASaUaUV9zgMwZpsBdoXtdpMpBnqLHZgyOQ== - -"@swc/html-darwin-x64@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.10.16.tgz#9ada95d8c259a7564d2263ebf652b75943d633d0" - integrity sha512-9kH7dV4ey8/b1wtHGhpfAEPGvAqAZKlhQAchqsWJ2KtWbkA9aqovWUzt/igMpQLH6bOZUJBZwDRVcfhz+CsjQQ== - -"@swc/html-linux-arm-gnueabihf@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.10.16.tgz#9fc629652e0db824374350cb9cd05feb8db3a870" - integrity sha512-Aj1GwnjfIXggJY4H/lJBRf663dc45dKHvV8vPNIjt+tZP3CiT4+U10p8K5fuYZ4VjThiGXn5a+YKaCpdxUBP8g== - -"@swc/html-linux-arm64-gnu@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.10.16.tgz#3b15ffc2d79a5ecc04cbbc5f711b0d2ff586b765" - integrity sha512-yxMF7v6xuP8+kCn8cFbkUQ2aW/WfFhf2QD2aN/CNpjtQZ9r87A5SNUVHRUvQRJJTTLKZksJbpCgI7ouOqyTqhg== - -"@swc/html-linux-arm64-musl@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.10.16.tgz#cb120c15719cd5b2c4dec82c6cb5d5e5cb1690d4" - integrity sha512-brCHDR1xOjVuQQXwuYOpVW17TchMGXY6amzdW77lBEstPxzyyb+0Lz3FDXPz8cHlqcxb/U7DNFIecjhMnoozvQ== - -"@swc/html-linux-x64-gnu@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.10.16.tgz#9ee8b4fba4b675c447aa16ad810dae20dd6b3a0f" - integrity sha512-PIUe4Ae4NVQ9l6datlxRs8MI+3abIIJIxb90lI8oASy84UKXyGtM1FP2/6Qy9ZfUHvTlBbTh0RUBqPGx0acq7w== - -"@swc/html-linux-x64-musl@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.10.16.tgz#23a1fc4ddc12f1d74239b2885afbf3fea1ea5b2b" - integrity sha512-XFABps9BWhwf9GJpOsv8ygqTofTPzW8T7/yNw/5AZgwLkhPJ6AouW8lRbS1fBK8NUvjsufipi8xdckUdPP9LzA== - -"@swc/html-win32-arm64-msvc@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.10.16.tgz#d616d7508c540a2a0f534493b954d19ef7192871" - integrity sha512-6M96UEnadmb/90U3LA2wLDYALk3XnRmIabS4gwLLuKz6JK58yKE+1t1e699dcKgHMf/oYo8IcbnnfQVy4fGGBQ== - -"@swc/html-win32-ia32-msvc@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.10.16.tgz#484cb99608f4c66c80e322d748acae58f9c7a7da" - integrity sha512-gP+1xj+0lmjp2+Bln9HtvmIeybTPZAFgfNSmodb8BBfkQj0NjkbW1jThvrfbmSer7y1/nQ+RLuogeL13qaJJ8A== - -"@swc/html-win32-x64-msvc@1.10.16": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.10.16.tgz#6bbb80c59b087cf624d69b390a790da379993969" - integrity sha512-b4ckVCDnhsyd5WI3qP4+rpM5H9/Nyp8UcYXbMV25r2C0axXrgNl3qpHMEQiq1reuQdLZmB09AV+eKEDyMAFYhQ== - -"@swc/html@^1.7.39": - version "1.10.16" - resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.10.16.tgz#b159d91504aefa32908e5029beecf4d85985954a" - integrity sha512-WEx5/GGbr0zRpm4u/GYMyM1tMZvdEWiu1+kSDkj+Qp97HtXGPa7Np6cRUksqlXnKHOtq3gCfJe+jPvEmuxfVYg== +"@swc/html-darwin-arm64@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.15.3.tgz#87811153f2ebcb761d72553e3fe804f0ac0aa825" + integrity sha512-IIVuFRTr1exOX29lZ3RApa+5RYWSJir65eWKOM5OhqpBWlzdYVnbHaObrBCOYrIBL+BXGYySnbp72b79NggXDg== + +"@swc/html-darwin-x64@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.15.3.tgz#e7dd5bb256c52df999c6f5f309ee935b79f143f7" + integrity sha512-gW1fu0etuFLQ23i5fm2XDc4xjOMXm0wi+EjezFzYooAvSyC5On0KCveTIxeXNnYKk2Q85IOC03PTjmVwkVKqeg== + +"@swc/html-linux-arm-gnueabihf@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.15.3.tgz#2e1c0738dc13ae4d9dd00c1b881427cd7776e9e3" + integrity sha512-JztA9n1zMM3kJKp99U2rRnXUfzTeETEgyeu+VArtaG0KXoP08tUVMC5QYCYOBW4vTBbs5SiLN+FCzB65y7UKLQ== + +"@swc/html-linux-arm64-gnu@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.15.3.tgz#369cb5eb38fa62589d4a16ddc87545d2726dca36" + integrity sha512-9dikO1z0IdfiB+gYXEReeUvurao7pruAVUB+lvn0824IoGFutUinLUnRJPqCDMT4f70J8xBZkHC4QIfO0N1lZQ== + +"@swc/html-linux-arm64-musl@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.15.3.tgz#78308b017b6db32e508dc145fbf0eb2a98e1c17f" + integrity sha512-ZmVYAP2xuzc8RN+jwJR84eMjgoWA0r20YL5Sb+hMo8p4+piOLPif0FjfTbRGy0iwz/lFY7Ml8Fent3I8kXjGig== + +"@swc/html-linux-x64-gnu@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.15.3.tgz#355e829ae20d8862881e667069e8770a48e20603" + integrity sha512-QqHhNedxWps0nzam5aNJ+vHet+EsFYW3FkjdqyUnfpJZdrvVudzfyNd4yxjo/nMeb5RsOb/fZlfp1cx26XB2LQ== + +"@swc/html-linux-x64-musl@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.15.3.tgz#973fcd401cbc1439e1ba1ab3b6b5bfdf0af78417" + integrity sha512-gwowjNEHMflw3Nu1P4MPpUHCeBbEWW8uwDtMsWARPGb9onBCyzMr7Z3m1jvuRVd/kd44o9VwWfh0AB4j26Y12w== + +"@swc/html-win32-arm64-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.15.3.tgz#578a4fc8c8f9e8411f8ebc270c2a81c0a8d69b9a" + integrity sha512-rxxvpXER5KuKSN6bI5zU3RXMu5jpTIgQdWLzBlMVjuhRWRNk14LMaoxKSRxGJ3k/i0qwQWaMA+8oPpcsTVguKw== + +"@swc/html-win32-ia32-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.15.3.tgz#0f2284141c7ee16b99d614caeaef34c13360da53" + integrity sha512-eWGVaOwksC9eJ7409DNgCWp0O4YmlO8OgToMWFozTzG3zEDCHpKjVhD/Fi8zUtdFkc/cuXrHmunmTfh62XTvZg== + +"@swc/html-win32-x64-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.15.3.tgz#7fdda93a64908e20237b8c62f06cac1c79ad1e22" + integrity sha512-PdTREP0388VJjgwoN/LbkZkfGkSFR7k7n4PMqpV7PHy8Gri8kOYewExlyxyLJ+lYi1MXZMkMUI8VJbZZFnaxIw== + +"@swc/html@^1.13.5": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.15.3.tgz#60c58b38f70b8fdde116e417b95f187f4b91e7c6" + integrity sha512-3LnbQ0UGJPfVunEB4n+0zbmd1+jRa2o4ZVofnyM5SKAB1anP70B04k3lEMs2lFDp1TksJIld2Y8h+RhB1PhKEw== dependencies: "@swc/counter" "^0.1.3" optionalDependencies: - "@swc/html-darwin-arm64" "1.10.16" - "@swc/html-darwin-x64" "1.10.16" - "@swc/html-linux-arm-gnueabihf" "1.10.16" - "@swc/html-linux-arm64-gnu" "1.10.16" - "@swc/html-linux-arm64-musl" "1.10.16" - "@swc/html-linux-x64-gnu" "1.10.16" - "@swc/html-linux-x64-musl" "1.10.16" - "@swc/html-win32-arm64-msvc" "1.10.16" - "@swc/html-win32-ia32-msvc" "1.10.16" - "@swc/html-win32-x64-msvc" "1.10.16" + "@swc/html-darwin-arm64" "1.15.3" + "@swc/html-darwin-x64" "1.15.3" + "@swc/html-linux-arm-gnueabihf" "1.15.3" + "@swc/html-linux-arm64-gnu" "1.15.3" + "@swc/html-linux-arm64-musl" "1.15.3" + "@swc/html-linux-x64-gnu" "1.15.3" + "@swc/html-linux-x64-musl" "1.15.3" + "@swc/html-win32-arm64-msvc" "1.15.3" + "@swc/html-win32-ia32-msvc" "1.15.3" + "@swc/html-win32-x64-msvc" "1.15.3" "@swc/types@^0.1.17": version "0.1.17" @@ -3788,10 +3841,10 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@tybys/wasm-util@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.0.tgz#2fd3cd754b94b378734ce17058d0507c45c88369" - integrity sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ== +"@tybys/wasm-util@^0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" + integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== dependencies: tslib "^2.4.0" @@ -3810,14 +3863,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": +"@types/bonjour@^3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@^1.3.5": +"@types/connect-history-api-fallback@^1.5.4": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -4087,10 +4140,10 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== +"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": + version "4.19.7" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz#f1d306dcc03b1aafbfb6b4fe684cce8a31cffc10" + integrity sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -4107,15 +4160,15 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== +"@types/express@^4.17.21": + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^1" "@types/gensync@^1.0.0": version "1.0.4" @@ -4256,14 +4309,7 @@ dependencies: "@types/node" "*" -"@types/node@*": - version "22.13.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.2.tgz#6f401c5ccadac75354f5652128e9fcc3b0cf23b7" - integrity sha512-Z+r8y3XL9ZpI2EY52YYygAFmo2/oWfNSj4BCpAXE2McAexDk8VcnBMGC9Djn9gTKt4d2T/hhXqmPzo4hfIXtTg== - dependencies: - undici-types "~6.20.0" - -"@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=13.7.0": version "22.13.10" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4" integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw== @@ -4357,10 +4403,10 @@ "@types/scheduler" "^0.16" csstype "^3.0.2" -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== "@types/sax@^1.2.1": version "1.2.7" @@ -4379,31 +4425,31 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== +"@types/send@*", "@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== dependencies: "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.1": +"@types/serve-index@^1.9.4": version "1.9.4" resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== +"@types/serve-static@*", "@types/serve-static@^1", "@types/serve-static@^1.15.5": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== dependencies: "@types/http-errors" "*" "@types/node" "*" - "@types/send" "*" + "@types/send" "<1" -"@types/sockjs@^0.3.33": +"@types/sockjs@^0.3.36": version "0.3.36" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== @@ -4430,10 +4476,10 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== -"@types/ws@^8.5.5": - version "8.5.14" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.14.tgz#93d44b268c9127d96026cf44353725dd9b6c3c21" - integrity sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw== +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" @@ -4502,6 +4548,11 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== +"@vercel/oidc@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vercel/oidc/-/oidc-3.0.5.tgz#bd8db7ee777255c686443413492db4d98ef49657" + integrity sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw== + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -4670,12 +4721,7 @@ acorn-walk@^8.0.0: dependencies: acorn "^8.11.0" -acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== - -acorn@^8.15.0: +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.15.0, acorn@^8.8.2: version "8.15.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== @@ -4698,6 +4744,16 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ai@5.0.108, ai@^5.0.30: + version "5.0.108" + resolved "https://registry.yarnpkg.com/ai/-/ai-5.0.108.tgz#b1b6e66b705baabcf98370336b03ebaacbf1874f" + integrity sha512-Jex3Lb7V41NNpuqJHKgrwoU6BCLHdI1Pg4qb4GJH4jRIDRXUBySJErHjyN4oTCwbiYCeb/8II9EnqSRPq9EifA== + dependencies: + "@ai-sdk/gateway" "2.0.18" + "@ai-sdk/provider" "2.0.0" + "@ai-sdk/provider-utils" "3.0.18" + "@opentelemetry/api" "1.9.0" + ajv-draft-04@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" @@ -4710,6 +4766,13 @@ ajv-formats@2.1.1, ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" +ajv-formats@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -4752,31 +4815,32 @@ ajv@^8.0.0, ajv@^8.12.0, ajv@^8.17.1, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" -algoliasearch-helper@^3.22.6: - version "3.24.1" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.24.1.tgz#763115d81fc56518bff36b7c707967f70d8fdf45" - integrity sha512-knYRACqLH9UpeR+WRUrBzBFR2ulGuOjI2b525k4PNeqZxeFMHJE7YcL7s6Jh12Qza0rtHqZdgHMfeuaaAkf4wA== +algoliasearch-helper@^3.26.0: + version "3.26.1" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.26.1.tgz#5b7f0874a2751c3d6de675d5403d8fa2f015023f" + integrity sha512-CAlCxm4fYBXtvc5MamDzP6Svu8rW4z9me4DCBY1rQ2UDJ0u0flWmusQ8M3nOExZsLLRcUwUPoRAPMrhzOG3erw== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1: - version "5.20.2" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.20.2.tgz#e1df37b02a4cf0f7031ff729ee9b35a7b43eeea6" - integrity sha512-8evxG++iWyWnhng3g5RP+kwn6j+2vKLfew8pVoekn87FcfsDm92zJXKwSrU6pl+m5eAbGFhFF/gCYEQiRdbPlA== - dependencies: - "@algolia/client-abtesting" "5.20.2" - "@algolia/client-analytics" "5.20.2" - "@algolia/client-common" "5.20.2" - "@algolia/client-insights" "5.20.2" - "@algolia/client-personalization" "5.20.2" - "@algolia/client-query-suggestions" "5.20.2" - "@algolia/client-search" "5.20.2" - "@algolia/ingestion" "1.20.2" - "@algolia/monitoring" "1.20.2" - "@algolia/recommend" "5.20.2" - "@algolia/requester-browser-xhr" "5.20.2" - "@algolia/requester-fetch" "5.20.2" - "@algolia/requester-node-http" "5.20.2" +algoliasearch@^5.28.0, algoliasearch@^5.37.0: + version "5.46.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.46.0.tgz#109e8976a4aee611112306de735c8c205e7e6bf8" + integrity sha512-7ML6fa2K93FIfifG3GMWhDEwT5qQzPTmoHKCTvhzGEwdbQ4n0yYUWZlLYT75WllTGJCJtNUI0C1ybN4BCegqvg== + dependencies: + "@algolia/abtesting" "1.12.0" + "@algolia/client-abtesting" "5.46.0" + "@algolia/client-analytics" "5.46.0" + "@algolia/client-common" "5.46.0" + "@algolia/client-insights" "5.46.0" + "@algolia/client-personalization" "5.46.0" + "@algolia/client-query-suggestions" "5.46.0" + "@algolia/client-search" "5.46.0" + "@algolia/ingestion" "1.46.0" + "@algolia/monitoring" "1.46.0" + "@algolia/recommend" "5.46.0" + "@algolia/requester-browser-xhr" "5.46.0" + "@algolia/requester-fetch" "5.46.0" + "@algolia/requester-node-http" "5.46.0" allof-merge@^0.6.6: version "0.6.6" @@ -4821,11 +4885,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" @@ -4896,19 +4955,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.19: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== - dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" - fraction.js "^4.3.7" - normalize-range "^0.1.2" - picocolors "^1.0.1" - postcss-value-parser "^4.2.0" - -autoprefixer@^10.4.21: +autoprefixer@^10.4.19, autoprefixer@^10.4.21: version "10.4.21" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== @@ -5013,25 +5060,25 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.3: + version "1.20.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" + integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.14.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" -bonjour-service@^1.0.11: +bonjour-service@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== @@ -5094,17 +5141,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.2, browserslist@^4.24.3, browserslist@^4.24.4: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== - dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" - -browserslist@^4.25.1: +browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.2, browserslist@^4.24.3, browserslist@^4.24.4, browserslist@^4.25.1: version "4.25.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.3.tgz#9167c9cbb40473f15f75f85189290678b99b16c5" integrity sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ== @@ -5144,7 +5181,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2: +bytes@3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -5236,7 +5273,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001735: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001735: version "1.0.30001739" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz" integrity sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA== @@ -5353,7 +5390,7 @@ chevrotain@~11.0.3: "@chevrotain/utils" "11.0.3" lodash-es "4.17.21" -chokidar@^3.5.1, chokidar@^3.5.3: +chokidar@^3.5.1, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -5596,16 +5633,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - confbox@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" @@ -5645,7 +5672,7 @@ content-disposition@0.5.2: resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -5662,22 +5689,17 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@^0.7.2: +cookie@^0.7.2, cookie@~0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== -copy-text-to-clipboard@^3.1.0, copy-text-to-clipboard@^3.2.0: +copy-text-to-clipboard@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== @@ -5713,7 +5735,7 @@ core-js-pure@^3.30.2: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.40.0.tgz#d9a019e9160f9b042eeb6abb92242680089d486e" integrity sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A== -core-js@^3.31.1, core-js@^3.32.1: +core-js@^3.31.1: version "3.40.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.40.0.tgz#2773f6b06877d8eda102fc42f828176437062476" integrity sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ== @@ -5747,7 +5769,7 @@ cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: parse-json "^5.2.0" path-type "^4.0.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.3, cross-spawn@^7.0.6: +cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -6338,25 +6360,18 @@ deepmerge@^4.2.2, deepmerge@^4.3.1: integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" + integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + version "5.4.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.4.0.tgz#b55cf335bb0b465dd7c961a02cd24246aa434287" + integrity sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg== dependencies: bundle-name "^4.1.0" default-browser-id "^5.0.0" -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -6402,7 +6417,7 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -6412,12 +6427,12 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== @@ -6454,15 +6469,10 @@ devlop@^1.0.0, devlop@^1.1.0: dependencies: dequal "^2.0.0" -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + version "5.2.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.2.tgz#0a4742797281d09cfa699b79ea32d27723623bad" + integrity sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A== dir-glob@^3.0.1: version "3.0.1" @@ -6478,10 +6488,10 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -docusaurus-plugin-openapi-docs@4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.3.7.tgz#fbc0e944b50845eaac04d73a4ed41426f2fc662b" - integrity sha512-wCXuHniG108OGCj6qKtTOFLgyhnlztMegj63BbEyHC/OgM7PDL2Yj2VFkWsU3eCmJKI+czahanztFMhVLFD67w== +docusaurus-plugin-openapi-docs@4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.5.1.tgz#b1133b0e03e284a6ade47fa2c3fcf5eab8ec6911" + integrity sha512-3I6Sjz19D/eM86a24/nVkYfqNkl/zuXSP04XVo7qm/vlPeCpHVM4li2DLj7PzElr6dlS9RbaS4HVIQhEOPGBRQ== dependencies: "@apidevtools/json-schema-ref-parser" "^11.5.4" "@redocly/openapi-core" "^1.10.5" @@ -6511,10 +6521,10 @@ docusaurus-plugin-sentry@^2.1.0: resolved "https://registry.yarnpkg.com/docusaurus-plugin-sentry/-/docusaurus-plugin-sentry-2.1.0.tgz#950b9e8b644c0bc9679c6f0a81a93ff6241b9556" integrity sha512-tBDPEF4AukkKiJx/J/Ur+CSDen1MXzqoSWCSnMFN+xyHJBUgM3ghEe5w2JjBiAcWPai3Wyt4Y8rxahhMhKEmnQ== -docusaurus-theme-openapi-docs@4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.3.7.tgz#0fd8b27c3a5f8dacf2246a1d70b65b15d03e6b12" - integrity sha512-VRKA8gFVIlSBUu7EAYOY3JDF2WetCSVsYx5WeFo8g6/7LJWHhX7/A7Wo2fJ0B61VE/c53BSdbmvVWSJoUqnkoA== +docusaurus-theme-openapi-docs@4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.5.1.tgz#861b402343de889098e6e8e299c5eab250e97b16" + integrity sha512-C7mYh9JC3l9jjRtqJVu0EIyOgxHB08jE0Tp5NSkNkrrBak4A13SrXCisNjvt1eaNjS+tsz7qD0bT3aI5hsRvWA== dependencies: "@hookform/error-message" "^2.0.1" "@reduxjs/toolkit" "^1.7.1" @@ -6595,20 +6605,13 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -dompurify@^3.2.4: +dompurify@^3.2.4, dompurify@^3.2.5: version "3.2.7" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.7.tgz#721d63913db5111dd6dfda8d3a748cfd7982d44a" integrity sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw== optionalDependencies: "@types/trusted-types" "^2.0.7" -dompurify@^3.2.5: - version "3.2.6" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.6.tgz#ca040a6ad2b88e2a92dc45f38c79f84a714a1cad" - integrity sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ== - optionalDependencies: - "@types/trusted-types" "^2.0.7" - domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" @@ -6676,11 +6679,6 @@ electron-to-chromium@^1.5.204: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.211.tgz#749317bf9cf894c06f67980940cf8074e5eb08ca" integrity sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw== -electron-to-chromium@^1.5.73: - version "1.5.99" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.99.tgz#4817c7526d71b66e6c56c3e5231fe1113653a85d" - integrity sha512-77c/+fCyL2U+aOyqfIFi89wYLBeSTCs55xCZL0oFH0KjqsvSvyh6AdQ+UIl1vgpnQQE6g+/KK8hOIupH6VwPtg== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -6856,34 +6854,28 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint-visitor-keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" - integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== - eslint-visitor-keys@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@9.36.0: - version "9.36.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.36.0.tgz#9cc5cbbfb9c01070425d9bfed81b4e79a1c09088" - integrity sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ== +eslint@9.39.2: + version "9.39.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.2.tgz#cb60e6d16ab234c0f8369a3fe7cc87967faf4b6c" + integrity sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.21.0" - "@eslint/config-helpers" "^0.3.1" - "@eslint/core" "^0.15.2" + "@eslint/config-array" "^0.21.1" + "@eslint/config-helpers" "^0.4.2" + "@eslint/core" "^0.17.0" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.36.0" - "@eslint/plugin-kit" "^0.3.5" + "@eslint/js" "9.39.2" + "@eslint/plugin-kit" "^0.4.1" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" - "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.6" @@ -6907,16 +6899,7 @@ eslint@9.36.0: natural-compare "^1.4.0" optionator "^0.9.3" -espree@^10.0.1: - version "10.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" - integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== - dependencies: - acorn "^8.14.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.0" - -espree@^10.4.0: +espree@^10.0.1, espree@^10.4.0: version "10.4.0" resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== @@ -7058,7 +7041,12 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@5.1.1, execa@^5.0.0, execa@^5.1.1: +eventsource-parser@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz#292e165e34cacbc936c3c92719ef326d4aeb4e90" + integrity sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg== + +execa@5.1.1, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -7078,39 +7066,39 @@ exenv@^1.2.0: resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== -express@^4.17.3: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== +express@^4.21.2: + version "4.22.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" + integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.3" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.12" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.14.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -7132,7 +7120,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== @@ -7254,17 +7242,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -7331,12 +7319,12 @@ foreach@^2.0.4: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e" integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg== -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== +foreground-child@^3.1.0, foreground-child@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.6" signal-exit "^4.0.1" form-data-encoder@^2.1.2: @@ -7370,12 +7358,12 @@ fraction.js@^4.3.7: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fresh@0.5.2: +fresh@0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-extra@^10.1.0: +fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -7393,7 +7381,7 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: +fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -7403,11 +7391,6 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" - integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -7454,11 +7437,6 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-port-please@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" - integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== - get-proto@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" @@ -7491,12 +7469,17 @@ glob-parent@^6.0.1, glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-to-regex.js@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz#2b323728271d133830850e32311f40766c5f6413" + integrity sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ== + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^10.3.10, glob@^10.3.7: +glob@^10.3.10: version "10.4.5" resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -7508,7 +7491,28 @@ glob@^10.3.10, glob@^10.3.7: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: +glob@^11.0.1: + version "11.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.1.0.tgz#4f826576e4eb99c7dad383793d2f9f08f67e50a6" + integrity sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw== + dependencies: + foreground-child "^3.3.1" + jackspeak "^4.1.1" + minimatch "^10.1.1" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + +glob@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.1.tgz#c59a2500c9a5f1ab9cdd370217ced63c2aa81e60" + integrity sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w== + dependencies: + minimatch "^10.1.2" + minipass "^7.1.2" + path-scurry "^2.0.0" + +glob@^7.0.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -8008,11 +8012,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.3.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== - html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -8121,12 +8120,23 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-parser-js@>=0.5.1: version "0.5.9" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec" integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== -http-proxy-middleware@^2.0.3: +http-proxy-middleware@^2.0.9: version "2.0.9" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== @@ -8182,18 +8192,16 @@ husky@^9.1.7: resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + hyphenate-style-name@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@0.6, iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -8201,6 +8209,13 @@ iconv-lite@0.6, iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -8267,7 +8282,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -8331,10 +8346,10 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz#71dce70e1398122208996d1c22f2ba46a24b1abc" + integrity sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg== is-alphabetical@^1.0.0: version "1.0.4" @@ -8460,6 +8475,11 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-network-error@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.0.tgz#2ce62cbca444abd506f8a900f39d20b898d37512" + integrity sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw== + is-npm@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" @@ -8588,30 +8608,12 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jest-diff@^29.3.1, jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-matcher-utils@^29.3.1: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== +jackspeak@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" + integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" + "@isaacs/cliui" "^8.0.2" jest-util@^29.7.0: version "29.7.0" @@ -8680,7 +8682,7 @@ js-levenshtein@^1.1.6: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -8695,10 +8697,12 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsep@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsep/-/jsep-1.4.0.tgz#19feccbfa51d8a79f72480b4b8e40ce2e17152f0" - integrity sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw== +js-yaml@^4.1.0, js-yaml@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" jsesc@^3.0.2: version "3.1.0" @@ -8748,6 +8752,15 @@ json-schema-merge-allof@0.8.1, json-schema-merge-allof@^0.8.1: json-schema-compare "^0.2.2" lodash "^4.17.20" +json-schema-to-ts@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-2.7.2.tgz#e8df41d7153e5517f0e68dbe57be12bb3609d6d5" + integrity sha512-R1JfqKqbBR4qE8UyBR56Ms30LL62/nlhoz+1UkfI/VE7p54Awu919FZ6ZUPG8zIa3XB65usPJgr1ONVncUGSaQ== + dependencies: + "@babel/runtime" "^7.18.3" + "@types/json-schema" "^7.0.9" + ts-algebra "^1.2.0" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -8758,6 +8771,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -8798,28 +8816,17 @@ jsonify@^0.0.1: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -jsonpath-plus@^10.0.6: - version "10.3.0" - resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-10.3.0.tgz#59e22e4fa2298c68dfcd70659bb47f0cad525238" - integrity sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA== - dependencies: - "@jsep-plugin/assignment" "^1.3.0" - "@jsep-plugin/regex" "^1.0.4" - jsep "^1.4.0" +jsonpath-rfc9535@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsonpath-rfc9535/-/jsonpath-rfc9535-1.3.0.tgz#b8c6e845a92f09feee221022dd70f6e70e26b196" + integrity sha512-3jFHya7oZ45aDxIIdx+/zQARahHXxFSMWBkcBUldfXpLS9VCXDJyTKt35kQfEXLqh0K3Ixw/9xFnvcDStaxh7Q== jsonpointer@^5.0.0, jsonpointer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== -katex@^0.16.0: - version "0.16.21" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.21.tgz#8f63c659e931b210139691f2cc7bb35166b792a3" - integrity sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A== - dependencies: - commander "^8.3.0" - -katex@^0.16.22: +katex@^0.16.0, katex@^0.16.22: version "0.16.22" resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.22.tgz#d2b3d66464b1e6d69e6463b28a86ced5a02c5ccd" integrity sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg== @@ -8883,13 +8890,13 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -launch-editor@^2.6.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" - integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== +launch-editor@^2.6.1: + version "2.12.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.12.0.tgz#cc740f4e0263a6b62ead2485f9896e545321f817" + integrity sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg== dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" + picocolors "^1.1.1" + shell-quote "^1.8.3" layout-base@^1.0.0: version "1.0.2" @@ -9115,6 +9122,11 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +lru-cache@^11.0.0: + version "11.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.4.tgz#ecb523ebb0e6f4d837c807ad1abaea8e0619770d" + integrity sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -9159,10 +9171,10 @@ markdown-to-jsx@^7.4.1: resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.7.3.tgz#c75927252592696e9e8b2a9557628749d8ab023e" integrity sha512-o35IhJDFP6Fv60zPy+hbvZSQMmgvSGdK5j8NRZ7FeZMY+Bgqw+dSg7SC1ZEzC26++CiOUCqkbq96/c3j/FfTEQ== -marked@^16.0.0: - version "16.2.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-16.2.1.tgz#f4b82ffa8e6201bafebc59249492b88b2dcc949f" - integrity sha512-r3UrXED9lMlHF97jJByry90cwrZBBvZmjG1L68oYfuPMW+uDTnuMbyJDymCWwbTE+f+3LhpNDKfpR3a3saFyjA== +marked@^16.0.0, marked@^16.3.0: + version "16.4.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-16.4.2.tgz#4959a64be6c486f0db7467ead7ce288de54290a3" + integrity sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA== marked@^4.3.0: version "4.3.0" @@ -9669,12 +9681,17 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== +memfs@^4.43.1: + version "4.51.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.51.1.tgz#25945de4a90d1573945105e187daa9385e1bca73" + integrity sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ== dependencies: - fs-monkey "^1.0.4" + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.0.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" merge-descriptors@1.0.3: version "1.0.3" @@ -10473,10 +10490,10 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -"mime-db@>= 1.43.0 < 2": - version "1.53.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" - integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== +"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== mime-db@~1.33.0: version "1.33.0" @@ -10497,13 +10514,20 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mime-types@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== + dependencies: + mime-db "^1.54.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -10544,6 +10568,13 @@ minimatch@3.1.2, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^10.1.1, minimatch@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.2.tgz#6c3f289f9de66d628fa3feb1842804396a43d81c" + integrity sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw== + dependencies: + "@isaacs/brace-expansion" "^5.0.1" + minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -10568,18 +10599,12 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" - integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== +minizlib@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.1.0.tgz#6ad76c3a8f10227c9b51d1c9ac8e30b27f5a251c" + integrity sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== dependencies: - minipass "^7.0.4" - rimraf "^5.0.5" - -mkdirp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + minipass "^7.1.2" mlly@^1.7.3, mlly@^1.7.4: version "1.7.4" @@ -10598,7 +10623,7 @@ mobx-react-lite@^4.1.0: dependencies: use-sync-external-store "^1.4.0" -mobx-react@^9.1.1: +mobx-react@9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-9.2.0.tgz#c1e4d1ed406f6664d9de0787c948bac3a7ed5893" integrity sha512-dkGWCx+S0/1mfiuFfHRH8D9cplmwhxOV5CkXMp38u6rQGG2Pv3FWYztS0M7ncR6TyPRQKaTG/pnitInoYE9Vrw== @@ -10671,16 +10696,11 @@ nano-memoize@^1.2.1: resolved "https://registry.yarnpkg.com/nano-memoize/-/nano-memoize-1.3.1.tgz#4039b154e70f4c1f53d61f0416538aea069b2f94" integrity sha512-wQiW3xHptgGlec/Zbo7oq6Zz4kKoK8TaIIs1irTO9iJOGTIG3lnQRUJfH73bJ/rn7MOE4sTdSU+ALPGEidaijQ== -nanoid@^3.3.11: +nanoid@^3.3.11, nanoid@^3.3.7: version "3.3.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== -nanoid@^3.3.7, nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -10744,9 +10764,9 @@ node-fetch@2.7.0, node-fetch@^2.6.1: whatwg-url "^5.0.0" node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz#0ad80f6333b3a0045e827ac20b7f735f93716751" + integrity sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg== node-readfiles@^0.2.0: version "0.2.0" @@ -10902,7 +10922,7 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@2.4.1, on-finished@^2.4.1, on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -10928,15 +10948,15 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" - integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== +open@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" + integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== dependencies: default-browser "^5.2.1" define-lazy-prop "^3.0.0" is-inside-container "^1.0.0" - is-wsl "^3.1.0" + wsl-utils "^0.1.0" open@^7.4.2: version "7.4.2" @@ -10946,7 +10966,7 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^8.0.9, open@^8.4.0: +open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -11004,11 +11024,6 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - outdent@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.8.0.tgz#2ebc3e77bf49912543f1008100ff8e7f44428eb0" @@ -11067,12 +11082,13 @@ p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== dependencies: - "@types/retry" "0.12.0" + "@types/retry" "0.12.2" + is-network-error "^1.0.0" retry "^0.13.1" p-timeout@^3.2.0: @@ -11195,25 +11211,24 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -patch-package@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" - integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== +patch-package@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.1.tgz#79d02f953f711e06d1f8949c8a13e5d3d7ba1a60" + integrity sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw== dependencies: "@yarnpkg/lockfile" "^1.1.0" chalk "^4.1.2" ci-info "^3.7.0" cross-spawn "^7.0.3" find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" + fs-extra "^10.0.0" json-stable-stringify "^1.0.2" klaw-sync "^6.0.0" minimist "^1.2.6" open "^7.4.2" - rimraf "^2.6.3" semver "^7.5.3" slash "^2.0.0" - tmp "^0.0.33" + tmp "^0.2.4" yaml "^2.2.2" path-browserify@1.0.1, path-browserify@^1.0.1: @@ -11264,10 +11279,13 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== +path-scurry@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" path-to-regexp@3.3.0: version "3.3.0" @@ -11281,6 +11299,11 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@~0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -11309,7 +11332,7 @@ perfect-scrollbar@^1.5.5: resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.6.tgz#f1aead2588ba896435ee41b246812b2080573b7c" integrity sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -11319,6 +11342,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pirates@^4.0.1: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" @@ -11924,16 +11952,7 @@ postcss@8.4.49: picocolors "^1.1.1" source-map-js "^1.2.1" -postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33: - version "8.5.2" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.2.tgz#e7b99cb9d2ec3e8dd424002e7c16517cb2b846bd" - integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA== - dependencies: - nanoid "^3.3.8" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -postcss@^8.5.4: +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.5.4: version "8.5.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== @@ -11983,10 +12002,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== +prettier@3.7.4: + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== pretty-error@^4.0.0: version "4.0.0" @@ -11996,15 +12015,6 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" @@ -12120,17 +12130,10 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -qs@^6.11.1, qs@^6.12.3: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== +qs@^6.11.1, qs@^6.12.3, qs@~6.14.0: + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: side-channel "^1.1.0" @@ -12161,15 +12164,15 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" rc@1.2.8: version "1.2.8" @@ -12181,19 +12184,12 @@ rc@1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -"react-dom@^17.0.0 || ^18.2.0 || ^19.0.0": - version "19.0.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" - integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== - dependencies: - scheduler "^0.25.0" - -react-dom@^19.1.1: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.1.tgz#2daa9ff7f3ae384aeb30e76d5ee38c046dc89893" - integrity sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw== +"react-dom@^17.0.0 || ^18.2.0 || ^19.2.1", react-dom@^19.2.3: + version "19.2.3" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.3.tgz#f0b61d7e5c4a86773889fcc1853af3ed5f215b17" + integrity sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg== dependencies: - scheduler "^0.26.0" + scheduler "^0.27.0" react-fast-compare@^3.2.0: version "3.2.2" @@ -12399,15 +12395,10 @@ react-use@^17.3.1: ts-easing "^0.2.0" tslib "^2.1.0" -"react@^17.0.0 || ^18.2.0 || ^19.0.0": - version "19.0.0" - resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" - integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== - -react@^19.1.1: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af" - integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ== +"react@^17.0.0 || ^18.2.0 || ^19.2.1", react@^19.2.3: + version "19.2.3" + resolved "https://registry.yarnpkg.com/react/-/react-19.2.3.tgz#d83e5e8e7a258cf6b4fe28640515f99b87cd19b8" + integrity sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA== readable-stream@^2.0.1: version "2.3.8" @@ -12422,7 +12413,7 @@ readable-stream@^2.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -12490,10 +12481,10 @@ recma-stringify@^1.0.0: unified "^11.0.0" vfile "^6.0.0" -redoc@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.5.0.tgz#6b44c55f705e13a57272c5a227cc3fd0d1a06495" - integrity sha512-NpYsOZ1PD9qFdjbLVBZJWptqE+4Y6TkUuvEOqPUmoH7AKOmPcE+hYjotLxQNTqVoWL4z0T2uxILmcc8JGDci+Q== +redoc@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.5.1.tgz#12f57c08c460178c06a6440222f111fe69ee2b4f" + integrity sha512-LmqA+4A3CmhTllGG197F0arUpmChukAj9klfSdxNRemT9Hr07xXr7OGKu4PHzBs359sgrJ+4JwmOlM7nxLPGMg== dependencies: "@redocly/openapi-core" "^1.4.0" classnames "^2.3.2" @@ -12504,7 +12495,7 @@ redoc@2.5.0: lunr "^2.3.9" mark.js "^8.11.1" marked "^4.3.0" - mobx-react "^9.1.1" + mobx-react "9.2.0" openapi-sampler "^1.5.0" path-browserify "^1.0.1" perfect-scrollbar "^1.5.5" @@ -12887,27 +12878,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^5.0.5: - version "5.0.10" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" - integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== - dependencies: - glob "^10.3.7" - robust-predicates@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" @@ -12941,9 +12911,9 @@ rtlcss@^4.1.0: strip-json-comments "^3.1.1" run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + version "7.1.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" + integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== run-parallel@^1.1.9: version "1.2.0" @@ -12991,21 +12961,10 @@ sass-loader@^16.0.2: dependencies: neo-async "^2.6.2" -sass@^1.80.4: - version "1.86.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.86.0.tgz#f49464fb6237a903a93f4e8760ef6e37a5030114" - integrity sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -sass@^1.93.0: - version "1.93.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.1.tgz#94bf77eeef5fba022c7316515327e275e46b654e" - integrity sha512-wLAeLB7IksO2u+cCfhHqcy7/2ZUMPp/X2oV6+LjmweTqgjhOKrkaE/Q1wljxtco5EcOcupZ4c981X0gpk5Tiag== +sass@^1.80.4, sass@^1.97.1: + version "1.97.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.1.tgz#f36e492baf8ccdd08d591b58d3d8b53ea35ab905" + integrity sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -13018,15 +12977,10 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== -scheduler@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" - integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== - -scheduler@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" - integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== +scheduler@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd" + integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== schema-dts@^1.1.2: version "1.1.5" @@ -13042,10 +12996,10 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" - integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== +schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.2.0, schema-utils@^4.3.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -13070,7 +13024,7 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.1.1: +selfsigned@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== @@ -13119,6 +13073,25 @@ send@0.19.0: range-parser "~1.2.1" statuses "2.0.1" +send@~0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.1.tgz#1c2563b2ee4fe510b806b21ec46f355005a369f9" + integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" @@ -13152,7 +13125,7 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.16.2: +serve-static@~1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== @@ -13189,7 +13162,7 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -13218,12 +13191,12 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== +shell-quote@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== -shelljs@0.8.5, shelljs@^0.8.5: +shelljs@0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== @@ -13232,6 +13205,14 @@ shelljs@0.8.5, shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" +shelljs@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.10.0.tgz#e3bbae99b0f3f0cc5dce05b46a346fae2090e883" + integrity sha512-Jex+xw5Mg2qMZL3qnzXIfaxEtBaC4n7xifqaqtrZDdlheR70OGkydrPJWT0V1cA1k3nanC86x9FwAmQl6w3Klw== + dependencies: + execa "^5.1.1" + fast-glob "^3.3.2" + should-equal@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" @@ -13305,7 +13286,7 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.6, side-channel@^1.1.0: +side-channel@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== @@ -13525,6 +13506,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + std-env@^3.7.0: version "3.8.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" @@ -13760,21 +13746,28 @@ swc-loader@^0.2.6: dependencies: "@swc/counter" "^0.1.3" +swr@^2.2.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/swr/-/swr-2.3.7.tgz#93ca89c9c06a6a8dab72e9d8e85a687123f40356" + integrity sha512-ZEquQ82QvalqTxhBVv/DlAg2mbmUjF4UgpPg9wwk4ufb9rQnZXh1iKyyKBqV6bQGu1Ie7L1QwSYO07qFIa1p+g== + dependencies: + dequal "^2.0.3" + use-sync-external-store "^1.4.0" + tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar@^7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" - integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== +tar@^7.5.2: + version "7.5.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.6.tgz#2db7a210748a82f0a89cc31527b90d3a24984fb7" + integrity sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA== dependencies: "@isaacs/fs-minipass" "^4.0.0" chownr "^3.0.0" minipass "^7.1.2" - minizlib "^3.0.1" - mkdirp "^3.0.1" + minizlib "^3.1.0" yallist "^5.0.0" terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: @@ -13812,11 +13805,21 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +thingies@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.5.0.tgz#5f7b882c933b85989f8466b528a6247a6881e04f" + integrity sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw== + throttle-debounce@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== +throttleit@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-2.1.0.tgz#a7e4aa0bf4845a5bd10daa39ea0c783f631a07b4" + integrity sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -13842,12 +13845,10 @@ tinypool@^1.0.2: resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" +tmp@^0.2.4: + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== to-regex-range@^5.0.1: version "5.0.1" @@ -13861,7 +13862,7 @@ toggle-selection@^1.0.6: resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== -toidentifier@1.0.1: +toidentifier@1.0.1, toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -13876,6 +13877,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +tree-dump@^1.0.3, tree-dump@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" + integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" @@ -13891,6 +13897,11 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== +ts-algebra@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ts-algebra/-/ts-algebra-1.2.2.tgz#b75d301c28cd4126cd344760a47b43e48e2872e0" + integrity sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA== + ts-dedent@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" @@ -13921,7 +13932,7 @@ tslib@^1.8.1, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.6.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.6.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -13970,15 +13981,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@5.9.2: - version "5.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6" - integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A== +typescript@5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== ufo@^1.5.4: version "1.5.4" @@ -13990,15 +13996,20 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== +ulid@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/ulid/-/ulid-3.0.2.tgz#b6a1f2a3de7852e39aa86bf497a8e33b1867c984" + integrity sha512-yu26mwteFYzBAot7KVMqFGCVpsF6g8wXfJzQUHvu1no3+rRRSFcSV2nKeYvNPLD2J4b08jYBDhHUjeH0ygIl9w== + undici-types@~6.20.0: version "6.20.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== -undici@^6.21.1: - version "6.21.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.2.tgz#49c5884e8f9039c65a89ee9018ef3c8e2f1f4928" - integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g== +undici@^6.21.3: + version "6.22.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.22.0.tgz#281adbc157af41da8e75393c9d75a1b788811bc3" + integrity sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -14236,19 +14247,11 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" - integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - update-browserslist-db@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" @@ -14277,11 +14280,6 @@ update-notifier@^6.0.2: semver-diff "^4.0.0" xdg-basedir "^5.1.0" -uri-js-replace@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uri-js-replace/-/uri-js-replace-1.0.1.tgz#c285bb352b701c9dfdaeffc4da5be77f936c9048" - integrity sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g== - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -14568,52 +14566,51 @@ webpack-bundle-analyzer@^4.10.2: sirv "^2.0.3" ws "^7.3.1" -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@^7.4.2: + version "7.4.5" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz#d4e8720aa29cb03bc158084a94edb4594e3b7ac0" + integrity sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== dependencies: colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" + memfs "^4.43.1" + mime-types "^3.0.1" + on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.15.2: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" +webpack-dev-server@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz#96a143d50c58fef0c79107e61df911728d7ceb39" + integrity sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" + bonjour-service "^1.2.1" + chokidar "^3.6.0" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" + express "^4.21.2" graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^2.4.1" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.4" - ws "^8.13.0" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" webpack-merge@^5.9.0: version "5.10.0" @@ -14789,10 +14786,17 @@ ws@^7.3.1, ws@^7.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@^8.13.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +ws@^8.18.0: + version "8.18.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + +wsl-utils@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" + integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== + dependencies: + is-wsl "^3.1.0" xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" @@ -14907,6 +14911,11 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== +zod@^4.1.8: + version "4.1.13" + resolved "https://registry.yarnpkg.com/zod/-/zod-4.1.13.tgz#93699a8afe937ba96badbb0ce8be6033c0a4b6b1" + integrity sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig== + zustand@^3.5.2: version "3.7.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d"